Torna indietro   AlterVista | Spazio web gratis, hosting free php mysql > L'angolo del webmaster > PHP, MySql e Apache (.htaccess)

Rispondi
 
LinkBack Strumenti discussione Modalità visualizzazione
  #1 (permalink)  
Vecchio 04-05-2009, 21.14.07
Neofita
 
Data registrazione: 09-04-2005
Messaggi: 26
Predefinito Invio dati ad un email da una form

Ciao ragazzi...ho due pagine...una con un form e una con lo script php che invia i dati alla mia mail...tuttavia mi da un errore...HELP!
Prima pagina (quella con il form):

Codice:
<html>

<head>
<meta http-equiv="Content-Language" content="it">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>CONTATTI</title>
</head>

<body>

<form method="POST" action="http://xxxxxxxxxx/sendate.php">
	<p><font face="Calibri" style="font-size: 15pt">CONTATTI: </font></p>
	<table border="0" width="46%" id="table1" style="font-family: Calibri; font-size: 12pt; font-style: oblique" height="340">
		<tr>
			<td width="149">Nome</td>
			<td><input type="text" name="name" size="38"></td>
		</tr>
		<tr>
			<td width="149">Cognome</td>
			<td><input type="text" name="lname" size="38"></td>
		</tr>
		<tr>
			<td width="149">Email</td>
			<td><input type="text" name="email" size="38"></td>
		</tr>
		<tr>
			<td width="149">Telefono</td>
			<td><input type="text" name="tel" size="38"></td>
		</tr>
		<tr>
			<td width="149">Motivo del contatto:</td>
	<td>		<select name="motivo">
	<option value="commerciale">Informazioni commerciali</option>
	<option value="preventivo">Richiesta preventivo</option>
	<option value="appuntamento">Prenotazione appuntamento</option>
</select></td>
		</tr>

		<tr>
			<td width="149">Messaggio:</td>
			<td><textarea rows="11" name="mess" cols="29"></textarea></td>
		</tr>
	</table>
<INPUT type="submit" value="Invia">
</form>

</body>

</html>
Seconda pagina (quella che elabora la script php):

Codice:
<?php 
$nome=$_POST['name']; 
$cognome=$_POST['lname']; 
$email=$_POST['email']; 
$telefono=$_POST['tel']; 
$motivo=$_POST['motivo']; 
$messaggio=$_POST['mess']; 


if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){//se tutte le variabili sono state definite propongo il link 
$to = "XXXXXXXX@gmail.com"; 
// IL SOGGETTO DELLA MAIL 
$subject = "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\"><a href="http://www.studio.it" target="_blank">www.studio.it</a></a>"; 


// COSTRUZIONE DEL CORPO DEL MESSAGGIO 
$body = “Contenuto del modulo:nn”; 

$body .= “Dati personali ;<br>nome: ” . trim(stripslashes($_POST["name"])) . “n”; 
$body .= “cognome: ” . trim(stripslashes($_POST["lname"])) . “n”; 
$body .= “email: ” . trim(stripslashes($_POST["email"])) . “n”; 
$body .= “telefono: ” . trim(stripslashes($_POST["tel"])) . “n”; 
$body .= “motivo: ” . trim(stripslashes($_POST["motivo"])) . “n”; 
$body .= “messaggio: ” . trim(stripslashes($_POST["mess"])) . “n”; 

if(@mail($to, $subject, $body)) { // SE L’INOLTRO E’ ANDATO A BUON FINE… 

echo “La mail è stata inoltrata con successo!”; 

} else {// ALTRIMENTI… 

echo “Si sono verificati dei problemi nell’invio della mail.”; 
} 

}else{ 
echo “Invio dati fallito: prego riempire tutti i campi e riprocedere”; 
} 
?>
L'errore che mi da è:

Parse error: syntax error, unexpected T_STRING in /membri/santadown/sendate.php on line 17


In più mi piacerebbe inserire il controllo tramite immagine captcha o tramite la somma di due valori...
Dove posso sistemare il codice??
Dopo che lo script controlla che tutti i campi sono pieni (come ultimo controllo all'invio??)?
Cioè...invece che inviare l'email dopo l'else metto un'altra if???
Aiuttttt!
Rispondi citando
  #2 (permalink)  
Vecchio 04-05-2009, 21.49.31
L'avatar di miki92
AlterGuru 2500
 
Data registrazione: 21-04-2007
Residenza: Procida (NA)
Messaggi: 3,097
Invia un messaggio via ICQ a miki92 Invia un messaggio via AIM a miki92 Invia un messaggio via MSN a miki92 Invia un messaggio via Yahoo a miki92 Manda un messaggio tramite Skype™ a miki92
Predefinito

Sostituisci:
Codice PHP:
$subject "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\"><a href="http://www.studio.it" target="_blank">www.studio.it</a></a>"; 
Con:
Codice PHP:
$subject "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\">www.studio.it</a>"
Comunque a parer mio il codice captcha dovrebbe essere il primo controllo...cioè o fai:

Codice PHP:
if($codice_captcha_inserito == $codice_captcha_vero){

// codice invio mail

}else{

// errore codice captcha errato


Oppure

Aggiungi qui la parte interessata:
Codice PHP:
if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){ 
Ad esempio:
Codice PHP:
if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null and $codice_captcha_inserito == $codice_captcha_vero){ 
Naturalmente poi modificherai anche qui:
Codice PHP:
}else{ 
echo &
#8220;Invio dati fallito: prego riempire tutti i campi e riprocedere”; 

Semmai con:
Codice PHP:
}else{ 
echo &
#8220;Invio dati fallito: prego riempire tutti i campi e/o controllare la correttezza del codice captcha”; 

__________________
Mik92: AlterGuru 2500

Apprezzi l'aiuto? Offrimi un caffè!
Rispondi citando
  #3 (permalink)  
Vecchio 05-05-2009, 13.42.19
Neofita
 
Data registrazione: 09-04-2005
Messaggi: 26
Unhappy

Purtroppo non funziona quello che mi hai suggerito...l'errore è sempre lo stesso...

Parse error: syntax error, unexpected T_STRING in /membri/santadown/sendate.php on line 17

Ho sostituito esattamente ciò che mi ha detto di sostituire ma non va...proprio non capisco...HELP!

(potrebbe essere che la variabile motivo è contenuta in un menù a tendina e non in un campo per scrivere?)

P.S: Grazie per le dritte su captcha

Ultima modifica di santadown : 05-05-2009 alle ore 13.51.53
Rispondi citando
  #4 (permalink)  
Vecchio 05-05-2009, 14.15.25
L'avatar di miki92
AlterGuru 2500
 
Data registrazione: 21-04-2007
Residenza: Procida (NA)
Messaggi: 3,097
Invia un messaggio via ICQ a miki92 Invia un messaggio via AIM a miki92 Invia un messaggio via MSN a miki92 Invia un messaggio via Yahoo a miki92 Manda un messaggio tramite Skype™ a miki92
Predefinito

Già scusa, sul forum non si è salvata l'ultima parte del mio messaggio dove ti dicevo di modificare gli apostrofi in questo modo:
Codice PHP:
<?php 
$nome
=$_POST['name']; 
$cognome=$_POST['lname']; 
$email=$_POST['email']; 
$telefono=$_POST['tel']; 
$motivo=$_POST['motivo']; 
$messaggio=$_POST['mess']; 


if(
$name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){//se tutte le variabili sono state definite propongo il link 
$to "XXXXXXXX@gmail.com"
// IL SOGGETTO DELLA MAIL 
$subject "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\">www.studio.it</a>"


// COSTRUZIONE DEL CORPO DEL MESSAGGIO 
$body "Contenuto del modulo:nn"

$body .= "Dati personali ;<br>nome: " trim(stripslashes($_POST["name"])) . "n"
$body .= "cognome: " trim(stripslashes($_POST["lname"])) . "n"
$body .= "email: " trim(stripslashes($_POST["email"])) . "n"
$body .= "telefono: " trim(stripslashes($_POST["tel"])) . "n"
$body .= "motivo: " trim(stripslashes($_POST["motivo"])) . "n"
$body .= "messaggio: " trim(stripslashes($_POST["mess"])) . "n"

if(@
mail($to$subject$body)) { // SE L’INOLTRO E’ ANDATO A BUON FINE… 

echo "La mail è stata inoltrata con successo!"

} else {
// ALTRIMENTI… 

echo "Si sono verificati dei problemi nell’invio della mail."


}else{ 
echo 
"Invio dati fallito: prego riempire tutti i campi e riprocedere"

?>
Avrò sbagliato a premere l'edit

Questo codice funziona...
__________________
Mik92: AlterGuru 2500

Apprezzi l'aiuto? Offrimi un caffè!
Rispondi citando
  #5 (permalink)  
Vecchio 05-05-2009, 14.21.00
Neofita
 
Data registrazione: 09-04-2005
Messaggi: 26
Predefinito

Errore mio stupido...
Sono le virgolette non riconosciute nel linguaggio ASCII
Allego codice corretto per gli altri utenti e ringrazio tutti:

Codice:
<?php
$nome=$_POST['name'];
$cognome=$_POST['lname'];
$email=$_POST['email'];
$telefono=$_POST['tel'];
$motivo=$_POST['motivo'];
$messaggio=$_POST['mess'];


if($name!=null and $cognome!=null and $email!=null and $telefono!=null and $messaggio!=null){//se tutte le variabili sono state definite propongo il link
 $to = "XXXXXXX@gmail.com"; 
 // IL SOGGETTO DELLA MAIL
$subject = "Modulo proveniente dal sito <a href=\"http://www.studio.it\" target=\"_blank\">www.studio.it</a>";

 
 // COSTRUZIONE DEL CORPO DEL MESSAGGIO
$body = "Contenuto del modulo:\n\n";

$body .= "Dati personali ;nome: " . trim(stripslashes($_POST["name"])) . "\n";
$body .= "cognome: " . trim(stripslashes($_POST["lname"])) . "\n";
$body .= "email: " . trim(stripslashes($_POST["email"])) . "\n";
$body .= "telefono: " . trim(stripslashes($_POST["tel"])) . "\n";
$body .= "motivo: " . trim(stripslashes($_POST["motivo"])) . "\n";
$body .= "messaggio: " . trim(stripslashes($_POST["mess"])) . "\n";



if(@mail($to, $subject, $body)) { // SE L’INOLTRO E’ ANDATO A BUON FINE…

echo "La mail è stata inoltrata con successo!";

} else {// ALTRIMENTI…

echo "Si sono verificati dei problemi nell’invio della mail.";
}

}else{
echo "Invio dati fallito: prego riempire tutti i campi e riprocedere";
}
?>
Rispondi citando
  #6 (permalink)  
Vecchio 05-05-2009, 14.23.04
Neofita
 
Data registrazione: 09-04-2005
Messaggi: 26
Predefinito

Ora passo al captcha...

Esiste un modo di farlo salvando il captcha in un file .txt o meglio .php con un die prima che impedisca di leggere la stringa generata???
Se si è altrettanto sicuro???
Rispondi citando
Rispondi

Strumenti discussione
Modalità visualizzazione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks are Attivato
Pingbacks are Attivato
Refbacks are Disattivato



Tutti gli orari sono GMT +1. Adesso sono le 06.55.20.