Variabile $_POST risulta indefinita. Perchè?

IerardiMario

Nuovo Utente
19 Ott 2011
7
0
0
Salve a tutti, sono nuovo nel forum e vorrei ringraziare anticipatamente per tutte le risposte vogliate darmi.

Il codice seguente rappresenta un classico modulo i quali dati inseriti vengono, al momento dell'invio, trasmessi alla pagina stessa.
La pagina ha estensione php e contiene, oltre il codice che vi mostro, anche il resto della pagina.
L'interpretazione del php è "garantita" da un software (lavoro in locale) chiamato EasyPHP 5.4alpha3.
Volendo distinguere i testi stampati da php dal resto del documento faccio avvolgere i risultati da un tag div. Questo per spiegare la presenza delle variabili
$replyHead, $replyBody e $replyFoot rispettivamente contenenti l'html che verrà prima, insieme e dopo la risposta dello script.

Purtroppo nel momento dell'invio e l'avvenuto caricamento della pagina di risposta il testo "errore" sta ad indicarmi che almeno una delle variabili necessarie
non è definita.

Ho provato a fare un controllo singolo su ogni variabile e risultano tutte non definite. Questo problema non si presenta nel caso
usi il metodo GET invece di POST. Perchè?

Codice:
 <?php
            <?php
            $replyHead="<div>";
            $replyBody="";
            $replyFoot="</div>";

            if(isset($_POST["pagefrom"])&&isset($_POST["name_surname"])&&isset($_POST["email"])&&isset($_POST["message"])&&isset($_POST["sec_code"]))
            {
                if(($_POST["pagefrom"]!="")&&($_POST["name_surname"]!="")&&($_POST["email"]!="")&&($_POST["message"]!="")&&($_POST["sec_code"]!=""))
                {
                    $replyBody = "";
                }
                else
                {
                    $replyBody = "";
                }

                print($replyHead.$replyBody.$replyFoot);
            }else{print "errore";}
        ?>

        <form id="message_form" name="messageForm" action="contacts.php" method="POST" enctype="text/plain" />

            <p>
            <label>Name and surname<br /></label>
                <input type="text" name="name_surname" value=""/>
            <br />  
            </p>
            <p>
            <label>E-mail<br /></label>
                <input type="text" name="email" value=""/>
            <br />
            </p>
            <p>
            <label>Message<br /></label>
                <textarea name="message" rows="7" cols="40"  value=""></textarea>
            <br />
            </p>
            <p>
            <label>Codice di sicurezza<br /></label>
                <input type="text" name="sec_code"  value=""/><img src="" />
            <br />
            </p>
            <p>
            <input type="submit" value="Send" />
            </p>
            <input type="hidden" name="pagefrom" value="contacts"/></input>
        </form>="<div>";
            $replyBody="";
            $replyFoot="</div>";

            if(isset($_POST["pagefrom"])&&isset($_POST["name_surname"])&&isset($_POST["email"])&&isset($_POST["message"])&&isset($_POST["sec_code"]))
            {
                if(($_POST["pagefrom"]!="")&&($_POST["name_surname"]!="")&&($_POST["email"]!="")&&($_POST["message"]!="")&&($_POST["sec_code"]!=""))
                {
                    $replyBody = "";
                }
                else
                {
                    $replyBody = "";
                }

                print($replyHead.$replyBody.$replyFoot);
            }else{print "errore";}
        ?>

        <form id="message_form" name="messageForm" action="contacts.php" method="POST" enctype="text/plain" />

            <p>
            <label>Name and surname<br /></label>
                <input type="text" name="name_surname" value=""/>
            <br />  
            </p>
            <p>
            <label>E-mail<br /></label>
                <input type="text" name="email" value=""/>
            <br />
            </p>
            <p>
            <label>Message<br /></label>
                <textarea name="message" rows="7" cols="40"  value=""></textarea>
            <br />
            </p>
            <p>
            <label>Codice di sicurezza<br /></label>
                <input type="text" name="sec_code"  value=""/><img src="" />
            <br />
            </p>
            <p>
            <input type="submit" value="Send" />
            </p>
            <input type="hidden" name="pagefrom" value="contacts"/></input>
        </form>
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
24
Roma
alessandro1997.netsons.org
Sia il codice HTML che PHP avevano diversi problemi... Ho corretto così e funziona:
PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $replyHead = "<div>";
    $replyBody = "";
    $replyFoot = "</div>";

    $required = array('pagefrom', 'name_surname', 'email', 'message', 'sec_code');
    foreach ($required as $field) {
        if (!isset($_POST[$field])) {
            die('Errore!');
        }
    }

    print_r($_POST);
}
else {
    echo <<<EOF
<form id="message_form" name="messageForm" action="{$_SERVER['PHP_SELF']}" method="POST">
    <p>
        <label>Name and surname<br /></label>
        <input type="text" name="name_surname" value="" />
    </p>

    <p>
        <label>E-mail<br /></label>
        <input type="text" name="email" value="" />
    </p>

    <p>
        <label>Message<br /></label>
        <textarea name="message" rows="7" cols="40"  value=""></textarea>
    </p>

    <p>
        <label>Codice di sicurezza<br /></label>
        <input type="text" name="sec_code"  value="" />
    </p>

    <p>
        <input type="submit" value="Send" />
    </p>

    <input type="hidden" name="pagefrom" value="contacts" />
</form>
EOF;
}
 

IerardiMario

Nuovo Utente
19 Ott 2011
7
0
0
Sia il codice HTML che PHP avevano diversi problemi... Ho corretto così e funziona:
PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $replyHead = "<div>";
    $replyBody = "";
    $replyFoot = "</div>";

    $required = array('pagefrom', 'name_surname', 'email', 'message', 'sec_code');
    foreach ($required as $field) {
        if (!isset($_POST[$field])) {
            die('Errore!');
        }
    }

    print_r($_POST);
}
else {
    echo <<<EOF
<form id="message_form" name="messageForm" action="{$_SERVER['PHP_SELF']}" method="POST">
    <p>
        <label>Name and surname<br /></label>
        <input type="text" name="name_surname" value="" />
    </p>

    <p>
        <label>E-mail<br /></label>
        <input type="text" name="email" value="" />
    </p>

    <p>
        <label>Message<br /></label>
        <textarea name="message" rows="7" cols="40"  value=""></textarea>
    </p>

    <p>
        <label>Codice di sicurezza<br /></label>
        <input type="text" name="sec_code"  value="" />
    </p>

    <p>
        <input type="submit" value="Send" />
    </p>

    <input type="hidden" name="pagefrom" value="contacts" />
</form>
EOF;
}

Grazie della giga-correzione alessndro1997!
Però correggendo il codice come hai fatto tu mi da questo errore:
"Parse error: syntax error, unexpected '<<' (T_SL) in C:\Program Files\EasyPHP-5.4alpha3\www\contacts.php on line 73"
Sarebbe la riga dove c'è "echo <<<EOF"
 

IerardiMario

Nuovo Utente
19 Ott 2011
7
0
0
Probabilmente è un problema di copia-incolla: devi eliminare tutti gli spazi bianchi alla fine delle righe, e la riga:
PHP:
EOF;
Non deve avere indentazione.

Niente, le ho provate tutte. Via l'indentazione... rimosso e rimesso degli spazi... :dipser:
Alla fine ho tolto gli EOF e ho trattato l'html come una stringa concatenando $_SERVER['PHP_SELF'] con i punti.
Va bene lo stesso o è sbagliato scrivere così? Grazie per la pazienza. :D
 
Ultima modifica:

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Niente, le ho provate tutte. Via l'indentazione... rimosso e rimesso degli spazi... :dipser:
Alla fine ho tolto gli EOF e ho trattato l'html come una stringa concatenando $_SERVER['PHP_SELF'] con i punti.
Va bene lo stesso ho è sbagliato scrivere così? Grazie per la pazienza. :D

Non è sbagliato, è solo un altro metodo.
 
Discussioni simili
Autore Titolo Forum Risposte Data
S Variabile in post su altra pagina PHP 2
T [php]Variabile in textbox via post PHP 9
E Trasmissione valore di una checkbox con post e assegnazione di una variabile PHP 3
neo996sps passare variabile su link tramite post PHP 4
E Inviare variabile a PHP da ciclo in JS Javascript 0
F Passare variabile a pulsante in finestra modale PHP 2
R Nome input testo+variabile PHP 1
A inserire variabile php colore in div html PHP 2
N Variabile di sessione è un array PHP7 PHP 3
A variabile non riconosciuta PHP 0
K Cambiare font size su echo stringa variabile PHP 24
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M Inserire variabile nella value di una hidden PHP 3
A Problema nel passare la variabile PHP 0
C variabile in img Javascript 9
C [RISOLTO]Inserimento variabile php in input html PHP 20
N PDF fpdi passare variabile PHP 4
F Come passare una variabile al modal di bootstrap PHP 1
F Passare una variabile php dal DB mysql alla pagina PHP 3
M [PHP] Passare variabile di sessione con metodo GET PHP 10
S [PHP] Rendere visibile variabile di un costrutto if in un altro costrutto if PHP 1
T PHP: variabile che cambia ogni 5 giorni... PHP 3
Tommy03 Variabile PHP per impostare una proprietà CSS PHP 2
L [PHP] Passare variabile PHP 3
J Passaggio variabile tra 2 file php PHP 15
Tommy03 Variabile PHP dentro a JQuery PHP 3
A [PHP] Scopo di una variabile PHP 4
M [PHP] Salvare campo di una tabella in una variabile PHP 14
B [PHP] Valore variabile non riconosciuto PHP 1
AMONRA75 [PHP] passare una variabile in una finestra MODAL PHP 1
P [PHP] $_GET non preleva variabile nell’URL PHP 4
A Php variabile immagine inesistente PHP 4
Shyson [PHP] Personalizzare variabile PHP 0
Monital Funzione php e campo database come variabile PHP 6
N [Javascript] For-loop su thead: tempo di esecuzione variabile Javascript 1
R Come creare report dinamico/variabile in Access Presentati al Forum 1
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
E assegnare a una variabile il contenuto di un url (javascript) Javascript 0
V [PHP] Variabile modificata in un if non mantiene quel valore PHP 5
Elena Lazzarini [Magento] Prezzo variabile in base alla priorità di spedizione Magento 0
K [PHP] Paginazione Wordpress: passare variabile PHP 6
A [PHP] Passaare una variabile ad un PHP 2
A [PHP] Non prende variabile $provincia ma tutte le altre si PHP 6
P [PHP] Query con variabile PHP 2
napuleone scrivere in un file <?php $variabile PHP 1
A [PHP] Widget Meteo con località variabile PHP 0
paloppa [PHP] Dubbio print variabile PHP 27
paloppa [PHP] Dubbio valore variabile PHP 16
B Scrivere in una casella di testo una variabile PHP PHP 9
T [PHP] passare una variabile in una finestra MODAL di bootstrap PHP 3

Discussioni simili