Salve a tutti!
Sto provando a realizzare un form di contatti e ho bisogno di aiuto: dopo aver cliccato sul submit, infatti, i dati mi vengono cancellati, e io vorrei che rimanessero in memoria.
Non sono praticissimo di PHP quindi ho fatto qualche ricerca in rete, e questo è il mio risultato, tuttavia non funzionante: ho provato a settare con delle variabili le varie voci dell'array di sessione, in modo da utilizzarle come value per i campi, ma non funziona. Qui sotto c'è il mio codice, chi può darmi una mano?
Nella prima riga della pagina imposto la sessione
HTML del form
In questo punto c'è il codice PHP che deve comparire qui sotto. Volevo separare la pagina di action ma non sapevo come far ritornare nella pagina del form il messaggio con gli errori... (qualcuno sa come si può fare? tramite header("location: miosito.it?Variabile); non mi riesce...)
Chiusura del Form
Sto provando a realizzare un form di contatti e ho bisogno di aiuto: dopo aver cliccato sul submit, infatti, i dati mi vengono cancellati, e io vorrei che rimanessero in memoria.
Non sono praticissimo di PHP quindi ho fatto qualche ricerca in rete, e questo è il mio risultato, tuttavia non funzionante: ho provato a settare con delle variabili le varie voci dell'array di sessione, in modo da utilizzarle come value per i campi, ma non funziona. Qui sotto c'è il mio codice, chi può darmi una mano?
Nella prima riga della pagina imposto la sessione
PHP:
<?php
session_start();
$SID = session_id();
$sname = $_SESSION['NOME'];
$ssurname = $_SESSION['COGNOME'];
$smail = $_SESSION['EMAIL'];
$smsg = $_SESSION['MESSAGGIO'];
?>
HTML del form
HTML:
<form id="CONTATTI" name="CONTATTI" method="post">
<fieldset>
<legend>Contattaci!</legend>
<p>Hai un consiglio per noi?
<br />
Vuoi chiederci qualcosa ma vuoi farlo privatamente? <br />
Cerchi un contatto diretto?<br />
Sei nella sezione giusta! Scrivici, e ti risponderemo appena possibile!</p>
<p>
<label for="NOME">Nome</label>
<input type="text" name="NOME" id="NOME" value="<?php echo $sname;?>"/>
</p>
<p>
<label for="COGNOME">Cognome</label>
<input type="text" name="COGNOME" id="COGNOME" value="<?php echo $ssurname;?>" />
</p>
<p>
<label for="EMAIL">eMail</label>
<input type="text" name="EMAIL" id="EMAIL" value="<?php echo $smail;?>" />
</p>
<p>
<label for="MESSAGGIO">Messaggio</label>
<textarea name="MESSAGGIO" id="MESSAGGIO" cols="45" rows="5"><?php echo $smsg;?></textarea>
</p>
<div class="button">
<input type="submit" name="send" id="send" value="Invia" />
</div>
</fieldset>
In questo punto c'è il codice PHP che deve comparire qui sotto. Volevo separare la pagina di action ma non sapevo come far ritornare nella pagina del form il messaggio con gli errori... (qualcuno sa come si può fare? tramite header("location: miosito.it?Variabile); non mi riesce...)
PHP:
<div id="ST_MESS">
<?php
if (isset($_POST["send"]) && $_POST["send"] == "Invia") {
if ($_POST['NOME'] == "" or $_POST['EMAIL'] == "" or $_POST['MESSAGGIO'] == "" or strlen($_POST['MESSAGGIO']) < 10) {
$errori = "<p>Campi mancanti o messaggio troppo corto!</p>";
echo $errori;
echo "<br />";
} else {
// Destinatario
$to = "[email protected]";
// Oggetto
$subject = "Modulo dal sito xxx.it";
// Messaggio
$msg = "Contenuto del modulo:\n\n";
$msg .= "Nome: " . trim(stripslashes($_POST["NOME"])) . "\n";
$msg .= "Cognome: " . trim(stripslashes($_POST["COGNOME"])) . "\n";
$msg .= "Email: " . trim(stripslashes($_POST["EMAIL"])) . "\n";
$msg .= "Messaggio: " . trim(stripslashes($_POST["MESSAGGIO"])) . "\n\n";
$msg .= "IP: {$_SERVER['REMOTE_ADDR']}. \n";
// Invio
if (@mail($to, $subject, $msg)) {
// Inoltro corretto
$send_msg = "<p>Il tuo messaggio è stato inviato con successo, ti risponderemo il prima possibile!</p>";
session_unset();
session_destroy();
} else {
// Inoltro fallito
$send_msg = "<p>Si sono verificati dei problemi nell'inviare il tuo messaggio</p>";
}
echo $send_msg;
echo "<br />";
}
}
?>
</div>
Chiusura del Form
HTML:
</form>