Creare sondaggio

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio
RISOLTO

Ho messo così

PHP:
// Aggiorna la data in tutte le pagine anche se ne modifichi una 
date_default_timezone_set("Europe/Rome");
function ultimo_aggiornamento(){ 
    $file=glob('*');//legge tutti i file 
    $file = array_filter($file, "is_file");//verifica se sono file 
    $mod_time = array_map('filemtime', $file);//legge il tempo  
    return max($mod_time); //estrae il massimo 
}
 
ciao
se non mi sbaglio nella tabella successi inserisci anche la data di inserimento del "successo" (o sbaglio). se è così perchè invece di fare tutto quell'ambaradan con glob non leggi la dataa massima, es

PHP:
$q=mysql_query("SELECT data FROM successi ORDER BY data LIMIT 1");
$d=mysql_fetch_array($q);
echo "Ultimo aggiornamento: ".date("j.m.Y",$d['data']);
 
ciao
se non mi sbaglio nella tabella successi inserisci anche la data di inserimento del "successo" (o sbaglio). se è così perchè invece di fare tutto quell'ambaradan con glob non leggi la dataa massima, es

PHP:
$q=mysql_query("SELECT data FROM successi ORDER BY data LIMIT 1");
$d=mysql_fetch_array($q);
echo "Ultimo aggiornamento: ".date("j.m.Y",$d['data']);

Ora funziona, nel file esterno ho questo

PHP:
// Aggiorna la data in tutte le pagine anche se ne modifichi una
date_default_timezone_set("Europe/Rome");
function ultimo_aggiornamento(){ 
    $file=glob('*');//legge tutti i file 
    $file = array_filter($file, "is_file");//verifica se sono file 
    $mod_time = array_map('filemtime', $file);//legge il tempo  
    return max($mod_time); //estrae il massimo 
}

e richiamo il tutto così in ogni pagina del sito

PHP:
include ("funzioni.php"); 

...

<?php echo "Ultimo aggiornamento: ".date("j.m.Y",ultimo_aggiornamento()); ?>
 
Avevo vuotato la tabella cosi azzerava anche gli id, ora ho inserito questo in SQL e sembra a posto, prova a vedere

PHP:
INSERT INTO sondaggio (id,internet,depliant,casualmente,amici_o_conoscenti,giornali_o_televisione) VALUES (1,0,0,0,0,0);

Questo funziona, e cosa potrei mettere per la tabella successi per azzerarla?
 
Facendo la prova finale, ho notato che non trova "Devi selezionare una risposta!", ho commentato il cookie, ho anche aggiornato la tabella

PHP:
if(isset($_POST['puls_invio'])) { 
//if(!isset($_COOKIE['votato'])) { //Setta il cookie (2/4), il primo si trova in connessione.php
if(isset($_POST['voto'])) {
    $voto=mysql_real_escape_string($_POST['voto']);
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1"; 
    if(mysql_query($q)) { 
    echo "Grazie, il tuo voto è stato inserito!"; 
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    //setcookie("votato", "si", time()+5*365*24*60*60); //Dura 5 anni, setta il cookie (3/4)
       }
  //} 
else { 
     echo "Devi selezionare una risposta!"; 
     echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
   }
}
else { 
    echo "Hai già votato, grazie!";  
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; 
   } 
}
 
Ultima modifica:
Facendo la prova finale, ho notato che non trova "Devi selezionare una risposta!", ho commentato il cookie, ho anche aggiornato la tabella

PHP:
if(isset($_POST['puls_invio'])) { 
//if(!isset($_COOKIE['votato'])) { //Setta il cookie (2/4), il primo si trova in connessione.php
if(isset($_POST['voto'])) {
    $voto=mysql_real_escape_string($_POST['voto']);
    $q="UPDATE sondaggio SET $voto = $voto + 1 WHERE id=1"; 
    if(mysql_query($q)) { 
    echo "Grazie, il tuo voto è stato inserito!"; 
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    //setcookie("votato", "si", time()+5*365*24*60*60); //Dura 5 anni, setta il cookie (3/4)
       }
  //} 
else { 
     echo "Devi selezionare una risposta!"; 
     echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
   }
}
else { 
    echo "Hai già votato, grazie!";  
    echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; 
   } 
}

RISOLTO

Era il cookie che si memorizzava nel browser alla prima votazione e perciò poi dava sempre "Hai già votato, grazie!", l'ho tolto e gli echo funzionano
 
ciao
ma togliendo il cookie uno puo votare quante volte vuole di seguito che era quello che non volevi

edit
Dici una cosa del genere? Clicca su Invia senza riempire i campi Form
mi sembra di si.
comunque un'osservazione: non so se oggi è il mio collegamento, ma mi sembra lentissimo
 
Ultima modifica:
Se si invia il form dei successi, si vedrà a destra 3 avvisi nei sondaggi, ho impostato a 1000 secondi così si può vedere bene.
Nella tabella sondaggio il record c'è ovviamente

PHP:
<?php
...
$q="SELECT * FROM sondaggio WHERE id=1"; 
$risultato = mysql_query($q); 
$riga=mysql_fetch_assoc($risultato);        //RIGA 49
$tot=0;//metto il totale a 0  
foreach($riga as $chiave => $valore) {     //RIGA 51
    if($chiave !="id") {
        ${$chiave}=$valore;//valore del campo 
        $tot=$tot+$valore;//faccio il totale 
    } 
} 
...

e poi non è definito num_archivio

PHP:
<?php
session_start();
$_SESSION['num_successi']=mysql_num_rows(mysql_query("SELECT id FROM successi"));  
$_SESSION['num_archivio']=mysql_num_rows(mysql_query("SELECT id FROM archivio")); 
$_SESSION['totale_successi']=$_SESSION['num_successi']+$_SESSION['num_archivio'];
...
 
Ultima modifica:
Dimenticavo, la linea 144 è questa che si trova nella stessa pagina degli altri 2 errori (Righe 49 e 51)

PHP:
$links = array('http://gruppoalveo.altervista.org/archivio_successi.php' => 'In archivio&nbsp;('.$_SESSION['num_archivio'].')');
 
ciao
si ci sono ancora (l'erba cattiva non muore mai), ma sono un po' di fretta perchè ho un paio di lavori da fare. spero che per fine settimana di essermi liberato.
 
ciao
cerco di riprendere il filo
che cavolo è quell'array?
PHP:
<?php
$links = array('http://gruppoalveo.altervista.org/archivio_successi.php' => 'In archivio&nbsp;('.$_SESSION['num_archivio'].')');
?>
poi che errore ti da?
 
ciao
cerco di riprendere il filo
che cavolo è quell'array?
PHP:
<?php
$links = array('http://gruppoalveo.altervista.org/archivio_successi.php' => 'In archivio&nbsp;('.$_SESSION['num_archivio'].')');
$pagina = basename($_SERVER['PHP_SELF']);   
  foreach($links as $link => $text) { 
    if(basename($link) == $pagina) { 
      echo '<div class="menu1a">' . $text . '</div>'; 
    } 
    else 
    { 
      echo '<a href="' . $link . '">' . $text . '</a>'; 
    } 
  } 
?>
poi che errore ti da?
E' quello che mantiene il conteggio nell'archivio Sito

Per gli errori invia un messaggio dal form Successi e guarda a dx
 
Ultima modifica:
ciao
verifica: quello che vedo sembrerebbe l'output di un var_dump(qaulcosa)
array(8) { ["id"]=> string(1) "1" ["giornali"]=> string(1) "0" ["depliant"]=> string(1) "0" ["televisione"]=> string(1) "0" ["web_banner"]=> string(1) "0" ["casualmente"]=> string(1) "0" ["motori_di_ricerca"]=> string(1) "0" ["amici_o_conoscenti"]=> string(1) "1" }
cercalo e commentalo
 
ciao
verifica: quello che vedo sembrerebbe l'output di un var_dump(qaulcosa)

cercalo e commentalo

Si, ho messo per vedere se è tutto a posto, e difatti sembra a posto.

Ma per vedere gli errori, devi inviare il form e guadare a dx, è in questo frangente di output che appaiono gli errori.
 
ciao
ok
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /membri/gruppoalveo/menuDX.php on line 49
NULL
Warning: Invalid argument supplied for foreach() in /membri/gruppoalveo/menuDX.php on line 52
posta la parte prima della riga 52 dove fai la query sino alla 52 (o qualcuna di più)
 
Ultima modifica:

Discussioni simili