Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154

    [PHP] $_POST nella stessa pagina del form

    Ciao a tutti,

    ho un problemino con il php. Dovrei prendere dei dati da un form e restituirli alla pagina stessa quindi nella pagina index.php ho scritto <form id=lol action = "index.php" method = "POST"> . Tuttavia nella pagina poi non riesce a recuperare le variabili $_POST['....'] . Da il seguente errore: " Notice: Undefined index: " e poi il nome della variabile. Idee?

    Grazie mille!
    Mess with the best die like the rest.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,469
    Posta il codice della pagina, perché a parole il sistema è corretto.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ...o forse l'errore te lo da all'apertura della pagina (cioè prima dell'invio del form)? In questo caso il problema è che la prima volta le variabili non sono ancora state inviate... se è così devi solo aggiungere un controllo (p.es. if isset($_POST['...'])))...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154
    Bho guarda non so. Posto il codice della pagina che sarà sicuramente più chiaro di me.

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Guestbook</title> <body> <link rel="stylesheet" href="guestbook.css" type="text/css" /> <form id=lol action = "post.php" method = "POST"> <div id="form"> <label for="Nickname">Nickname</label> <input id="Nickname" name="Nickname" type="name" required="required" /> <label for="Messaggio">Messaggio</label> <textarea name="Messaggio" id="messaggio" cols="30" rows="50"></textarea> <center><input type="submit" id="submit" name="submit" value="Invia" /></center> </div> </form> <?php function scrivi($file$var) { $txt fopen($file"a"); fwrite($txt"$var"); fwrite($txt"\r\n"); fclose($txt); } function emoticons($msg$emoticon$url) { $img '[img]'.$url.'[/img]'; if (strpos($msg$emoticon) == FALSE) { return $msg ; } else { $msg_new str_replace($emoticon$img$msg); return $msg_new ; } } function id($n) { $string "v".$n$ids fopen("id.txt""a"); fwrite($ids"$string"); fwrite($ids"\r\n"); fclose($ids); } function txt_is_better_then_MySQL($linea) { $ip file("ip.txt"); $id file("id.txt"); $nick file("nick.txt"); $msg file("msg.txt"); $ora file("ora.txt"); $n $linea $linea = array() ; $linea[] = $nick[$n]; $linea[] = $msg[$n] ; $linea[] = $ora[$n] ; $linea[] = $ip[$n] ; $linea[] = $id[$n] ; return ($linea) ; } $smile ":)"$smile_url "smile.png"$sad ":(" $sad_url "sad.png" $piange ":'(" $piange_url "piange.png"$D "D:" $D_url "D.png"$so_smile ":D" $so_smile_url "so_smile.png"$heart "(l)" $heart_url "heart.png"$nick strip_tags($_POST[Nickname] ); $msg strip_tags($_POST[Messaggio], "<img>" ); $hour date("H.i"); //assegno l'ora $date = date("d/m/Y"); $clock = $hour." ".$date ; $ip = $_SERVER[REMOTE_ADDR] ; $s_1 = "

    "; $s_2 = '<table border="0" widht="40px" id="box" > '; $s_3 = '<tr><td>[img]User.png[/img]</td>  <td>'; $s_4 = '</td><tr><td>[img]message.png[/img]  </td><td>' ; $s_5 = '</td><tr><td>[img]clock.png[/img]  </td><td>' ; $s_6 = '</div></td><tr><td>[img]net.png[/img]  </td><td>'; $s_7 = "</td></tr><tr></tr><tr></tr><tr></tr></table></br></br></div>"; $new_msg = emoticons(emoticons(emoticons(emoticons(emoticons(emoticons($msg$smile$smile_url), $sad$sad_url), $D$D_url), $heart$heart_url), $so_smile$so_smile_url), $piange$piange_url); scrivi("ip.txt", $ip); scrivi("nick.txt",$nick); scrivi("msg.txt", $new_msg); scrivi("ora.txt", $clock); scrivi("s_1.txt", $s_1); scrivi("s_2.txt", $s_2); scrivi("s_3.txt", $s_3); scrivi("s_4.txt", $s_4); scrivi("s_5.txt", $s_5); scrivi("s_6.txt", $s_6); scrivi("s_7.txt", $s_7); $ips = array(); $ora = file("ora.txt"); $ips = file("ip.txt") ; id(count($ips)); $nicks = file("nick.txt"); $msgs = file("msg.txt"); $ids = file("id.txt"); $ss_1 = file("s_1.txt"); $ss_2 = file("s_2.txt"); $ss_3 = file("s_3.txt"); $ss_4 = file("s_4.txt"); $ss_5 = file("s_5.txt"); $ss_6 = file("s_6.txt"); $ss_7 = file("s_7.txt"); $db = txt_is_better_then_MySQL(count($ora)); scrivi("db.txt", $db[4] ); $p = count($ips)-1; echo $ss_1[$p].$ss_2[$p].$ss_3[$p].$nicks[$p].$ss_4[$p].$msgs[$p].$ss_5[$p].$ora[$p].$ss_6[$p].$ips[$p].$ss_7[$p] ; ?> <script language="JavaScript"> function Notifiche() { var button = document.getElementById('button'); var e = document.getElementById("notifiche"); if (e.style.visibility == 'hidden') { e.style.visibility = 'visible'; e.style.display = 'block'; var num = "0" ; button.value= num; button.style.background = '#1C1C1C'; button.style.color = '#FFFFFF'; } else { e.style.visibility = 'hidden'; e.style.display = 'none'; var num = "0" ; button.value= num; } } var ids=new Array(); <?php for($i=0;$i< count($ips) ;$i++) { ?> ids[<?php echo $i; ?>]="<?php echo $ids[$i]; ?>"; <?php ?> var ips=new Array(); <?php for($i=0;$icount($ips) ;$i++) { ?> ips[<?php echo $i?>]="<?php echo $ips[$i]; ?>"; <?php ?> var msgs=new Array(); <?php for($i=0;$icount($ips) ;$i++) { ?> msgs[<?php echo $i?>]="<?php echo $msg[$i]; ?>"; <?php ?> var nicks=new Array(); <?php for($i=0;$icount($ips) ;$i++) { ?> nicks[<?php echo $i?>]="<?php echo $nicks[$i]; ?>"; <?php ?> var ora=new Array(); <?php for($i=0;$icount($ips) ;$i++) { ?> ora[<?php echo $i?>]="<?php echo $ora[$i]; ?>"; <?php ?> var ip = <?php echo $ip?>; //alert(ip); </script> <hr style="layout-flow:vertical-ideographic; position:relative;"> <?php $file fopen ("post.html""a+"); while (!feof ($file)) { $linea fgets ($file1024); echo $linea; } fclose($file); ?>  </td></tr></table> </body> </html>
    Mess with the best die like the rest.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    è un po' lungo e dovresti "formattarlo"... cmq ho visto che c'è ad esempio a un certo punto $_POST[Nickname]... intanto meglio mettere gli apici nell'indice (quindi $_POST['Nickname']) e poi cambia tutti questi riferimenti con un controllo... penso sia vero quello che ho ipotizzato nel mio post precedente (DOMANDA: l'errore esce all'apertura solo, vero? se compili il form e lo invii non compare più?).

    Per il controllo potresti semplicemente cambiare tutti i riferimenti così:
    da $_POST['Nickname'] a (isset($_POST['Nickname'])?($_POST['Nickname']):(''))

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    154
    Bho guarda non so. Posto il codice della pagina che sarà sicuramente più chiaro di me.

    Codice PHP:
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Guestbook</title> 
    <body> 
    <link rel="stylesheet" href="guestbook.css" type="text/css" /> 
    <form id=lol action = "post.php" method = "POST"> 
    <div id="form"> 
    <label for="Nickname">Nickname</label> 
    <input id="Nickname" name="Nickname" type="name" required="required" /> 
    <label for="Messaggio">Messaggio</label> 
    <textarea name="Messaggio" id="messaggio" cols="30" rows="50"></textarea> <center><input type="submit" id="submit" name="submit" value="Invia" /></center> 
    </div> 
    </form> 

    <?php 

    function scrivi($file$var

    $txt fopen($file"a"); 
    fwrite($txt"$var"); 
    fwrite($txt"\r\n"); 
    fclose($txt); 


    function 
    emoticons($msg$emoticon$url

    $img '[img]'.$url.'[/img]'
    if (
    strpos($msg$emoticon) == FALSE

    return 
    $msg 

    else 

    $msg_new str_replace($emoticon$img$msg); 
    return 
    $msg_new 



    function 
    id($n

    $string "v".$n
    $ids fopen("id.txt""a"); 
    fwrite($ids"$string"); 
    fwrite($ids"\r\n"); 
    fclose($ids); 


    function 
    txt_is_better_then_MySQL($linea

    $ip file("ip.txt"); 
    $id file("id.txt"); 
    $nick file("nick.txt"); 
    $msg file("msg.txt"); 
    $ora file("ora.txt"); 
    $n $linea 
    $linea = array() ; 
    $linea[] = $nick[$n]; 
    $linea[] = $msg[$n] ; 
    $linea[] = $ora[$n] ; 
    $linea[] = $ip[$n] ; 
    $linea[] = $id[$n] ; 
    return (
    $linea) ; 


    $smile ":)"
    $smile_url "smile.png"
    $sad ":(" 
    $sad_url "sad.png" 
    $piange ":'(" 
    $piange_url "piange.png"
    $D "D:" 
    $D_url "D.png";
     
    $so_smile ":D" 
    $so_smile_url "so_smile.png"
    $heart "(l)" 
    $heart_url "heart.png"
    $nick strip_tags($_POST[Nickname] ); 
    $msg strip_tags($_POST[Messaggio], "<img>" ); 
    $hour date("H.i"); //assegno l'ora $date = date("d/m/Y"); 
    $clock $hour." ".$date 
    $ip $_SERVER[REMOTE_ADDR] ; 
    $s_1 "

    "

    $s_2 '<table border="0" widht="40px" id="box" > '
    $s_3 '<tr><td>[img]User.png[/img]</td>  <td>'
    $s_4 '</td><tr><td>[img]message.png[/img]  </td><td>' 
    $s_5 '</td><tr><td>[img]clock.png[/img]  </td><td>' 
    $s_6 '</div></td><tr><td>[img]net.png[/img]  </td><td>'
    $s_7 "</td></tr><tr></tr><tr></tr><tr></tr></table></br></br></div>"
    $new_msg emoticons(emoticons(emoticons(emoticons(emoticons(emoticons($msg$smile$smile_url), $sad$sad_url), $D$D_url), $heart$heart_url), $so_smile$so_smile_url), $piange$piange_url); 
    scrivi("ip.txt"$ip); 
    scrivi("nick.txt",$nick);
    scrivi("msg.txt"$new_msg); 
    scrivi("ora.txt"$clock); 
    scrivi("s_1.txt"$s_1); 
    scrivi("s_2.txt"$s_2); 
    scrivi("s_3.txt"$s_3); 
    scrivi("s_4.txt"$s_4); 
    scrivi("s_5.txt"$s_5); 
    scrivi("s_6.txt"$s_6); 
    scrivi("s_7.txt"$s_7); 
    $ips = array(); $ora file("ora.txt"); 
    $ips file("ip.txt") ; 
    id(count($ips)); 
    $nicks file("nick.txt"); 
    $msgs file("msg.txt"); 
    $ids file("id.txt"); 
    $ss_1 file("s_1.txt"); 
    $ss_2 file("s_2.txt"); 
    $ss_3 file("s_3.txt"); 
    $ss_4 file("s_4.txt"); 
    $ss_5 file("s_5.txt"); 
    $ss_6 file("s_6.txt"); 
    $ss_7 file("s_7.txt"); 
    $db txt_is_better_then_MySQL(count($ora)); scrivi("db.txt"$db[4] ); 
    $p count($ips)-1
    echo 
    $ss_1[$p].$ss_2[$p].$ss_3[$p].$nicks[$p].$ss_4[$p].$msgs[$p].$ss_5[$p].$ora[$p].$ss_6[$p].$ips[$p].$ss_7[$p] ; ?> 
    ?>
    </html>
    Mess with the best die like the rest.

  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,469
    Formatta il codice, tutto su una riga non si capisce niente, nessuno lo leggerà.

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ??? vedi mio post precedente...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.