2013-06-09 8 views
6

il mio problema è:PHP: ottenere il valore di TEXTBOX poi passarlo ad una variabile

voglio ottenere il valore di TextBox1 poi trasferirlo ad un'altra pagina in cui sarà apparso il valore di TextBox1 nella TextBox2.

Sotto è il mio codici per PHP:

<html> 
<body> 

<form name='form' method='post' action="testing2.php"> 

Name: <input type="text" name="name" id="name" ><br/> 

<input type="submit" name="submit" value="Submit"> 

</form> 
</body> 
</html> 

ho anche aggiungere il codice qui sotto e l'errore è "Notice: Undefined index: nome"

<?php 
$name = $_GET['name']; 
echo $name; 
?> 

o

<?php 
$name = $_POST['name']; 
echo $name; 
?> 
+0

wrap it 'if (isset ($ _ POST ['name']))' –

+0

Nel tuo modulo hai specificato il metodo 'post', quindi nel tuo codice php dovresti cercare il valore in' $ _POST' array, quindi '$ _POST ['name']' – Havelock

+0

E non usare 'isset' come raccomandato da Dave Chen, usare' if (! vuoto ($ _ POST ['nome']) 'invece. –

risposta

10

Nel testing2.php utilizzare il seguente codice per ottenere il nome:

if (! empty($_POST['name'])){ 
    $name = $_POST['name']); 
} 

Quando si crea la pagina successiva, utilizzare il valore della $name per precompilare il campo di modulo:

Name: <input type="text" name="name" id="name" value="<?php echo $name; ?>"><br/> 

Tuttavia , prima di farlo, assicurati di utilizzare espressioni regolari per verificare che il nome $ contenga solo caratteri validi, come ad esempio:

$pattern = '/^[0-9A-Za-zÁ-Úá-úàÀÜü]+$/';//integers & letters 
if (preg_match($pattern, $name) == 1){ 
    //continue 
} else { 
    //reload form with error message 
} 
+0

Grazie per le informazioni sui caratteri validi. Posso usarlo in futuro :) e funziona anche! –

+0

Prego. –

+0

Questa risposta è buona, incoraggia i principianti a rendere i loro siti Web più sicuri! –

1

Stai pubblicando i dati, quindi dovrebbe essere $ _POST. Ma "nome" non è il nome migliore da usare.

name = "name" 

causerà solo confusione IMO.

+0

Oh. Scusa ... Grazie per l'informazione :) –

+0

'+ 1' - hai un punto. –

3

Penso che dovresti controllare per isset e non il valore vuoto, come il modulo è stato inviato senza dati di input quindi isset sarà true Questo ti impedirà di avere qualsiasi errore o avviso.

if((isset($_POST['name'])) && !empty($_POST['name'])) 
{ 
    $name = $_POST['name']; //note i used $_POST since you have a post form **method='post'** 
    echo $name; 
} 
+0

'empty() non genera un avviso se la variabile non esiste. Quindi è sufficiente solo' empty' o solo 'isset'. –

+1

@DaveChen Questo è un altro problema: l'OP dovrebbe immergersi nei tutorial e imparare come guadagna. ;-) In questa equazione, '$ guadagna =" Conoscenza ";' –

+0

Oh. grazie mille .. Funziona! Ho l'ultima domanda ... come posso trasferire la variabile di $ name in una casella di testo? –

0

All'interno testing2.php si dovrebbe stampare la matrice $_POST che contiene tutti i dati della posta. Inoltre, dovrebbe essere disponibile $_POST['name']. Per maggiori informazioni, controllare $_POST su php.net.

Problemi correlati