problema pagina mail.php

  • Creatore Discussione Creatore Discussione Zamba
  • Data di inizio Data di inizio

Zamba

Nuovo Utente
11 Ott 2011
5
0
0
ciao a tutti sono nuovo ed ho un problema con la pagina delle mail.php cioe una pagina in php che invia le e mail. posto il codice che ho fatto e l'errore che mi esce. spero mi aiutate a trovare una soluzione perche non so piu dove sbattere la testa.
codice:

PHP:
<?php

$to  = "[email protected]"; 


$subject = "Nuova Andolo - Scuola Italiana Sci - Contatto Sito";


$name=$_POST['name'];
$email=$_POST['email'];
$tele=$_POST['tele'];
$question=$_POST['question'];

$message ="
Nuova Andolo - Scuola Italiana Sci - Contatto Sito

Cliente: $name

Email: $email

Telefono: $tele

Messaggio: $question

";

$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";


$headers .= "From: [email][email protected][/email] <[email protected]>\r\n";


mail($to, $subject, $message, $headers);


header("Location: index.html");
?>

errore :\r\n"; mail($to, $subject, $message, $headers); header("Location: index.html"); ?>
 
Ultima modifica di un moderatore:
ciao
l'istruzione header deve essere la prima istruzione, a meno che tu non metta ob_start() e ob_end_flush()

PHP:
<?php
ob_start();
$to = "[email protected]";
$subject = "Nuova Andolo - Scuola Italiana Sci - Contatto Sito";
$name=$_POST['name'];
$email=$_POST['email'];
$tele=$_POST['tele'];
$question=$_POST['question'];
$message ="
Nuova Andolo - Scuola Italiana Sci - Contatto Sito
Cliente: $name
Email: $email
Telefono: $tele
Messaggio: $question
";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: [email protected] <[email protected]>\r\n";


mail($to, $subject, $message, $headers);


header("Location: index.html");//questa istruzione dovrebbe essere la prima prima 2 di qualsiasi output html
ob_end_flush();
?>
prova e sappimi dire

poi un paio di osservazioni
se ti fai spedire l'email così brutalmente senza alcun controllo dei $_POST corri il rischio come minimo che ti inviino un'email vuota o, peggio, qualche porcheria tipo script malevoli
poi se appena puoi sostituisci la funzione mail con la classe maillerphp (negli articoli di mrwm trovi come si usa)

p.s.
quando posti del codice racchiudolo tra gli appositi tag (nella formattazione seconda riga ultime tre opzioni # o <> o php)
 
grazie ma nn funzia

ti ringrazio per la risposta che mi hai dato ed ho inserito il codice che hai postato ma non funziona ancora....anzi mi da la stessa stringa di prima con aggiunto qualcosa cioè :
\r\n"; mail($to, $subject, $message, $headers); header("Location: index.html"); ob_end_flush(); ?>
 
Strano errore. Giusto per curiosità, sei sicuro di lavorare in un ambiente che supporta PHP?
 
ciao
stavo per esprimere lo stesso dubbio del vampiro.
cerco di provare lo script, anche perchè l'errore mi incuriosice.
talvolta "è una cagatella di mosca" che uno guarda, ma non vede
 
ciao
ho provato lo script copiato pari pari (copia/incolla) dal tuo postato

prima prova senza obj

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\AppServ\www\strano_errore.php on line 21
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\strano_errore.php:21) in C:\AppServ\www\strano_errore.php on line 23
prova con obj

The requested URL //index.html was not found on this server.
sono errorri normali e giusti

nel primo caso (lavorando in locale)
1. non trova l'smtp
2. l'istruzione header deve essere la prima

nel secondo (sempre in locale)
in pratica non si fa in tempo a leggere il primo errore [function.mail] in quanto si attiva comunque l'heder:location
(non è un errore di script) ma avvisa che non trova la pagina index.html, come è giusto che sia nel mio caso (l'errore di hedera con obj è sparito)

concludendo, non vedo l'errore che segnali tu
anche se credo che sia una domanda assurda: hai chiamato la pagina con estensione .php?
 
si si

si si ovvio....anche io sono convinto che sia una cavolata pero non riesco proprio a capire dove sta!!!
 
ciao
ho provato e riprovato lo script e, salvo i logici errori, a me funzia (l'errore che dici non si verifica)
PHP:
<?php
ob_start();
$to = "[email protected]";
$subject = "oggetto: Nuova Andolo - Scuola Italiana Sci - Contatto Sito";
$name=$_POST['name'];
$email=$_POST['email'];
$tele=$_POST['tele'];
$question=$_POST['question'];
//messe le seguenti in quanto post vuoti e non avevo voglia di fare il form
$name="pinco";
$email="[email protected]";
$tele="000 000111222333";
$question="nel mezzo di camin di nostra vita mi ritrovai per una selva oscura che la diritta via era smarrita...";
$message ="
Nuova Andolo - Scuola Italiana Sci - Contatto Sito<br>
Cliente: $name<br>
Email: $email<br>
Telefono: $tele<br>
Messaggio: $question<br>
";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: [email protected] <[email protected]>\r\n";
echo "invio email:<br>$to<br>$subject<br>$message<br>$headers<br>";
mail($to, $subject, $message, $headers);//errore di smtp
//header("Location: index.html");//commentato altrimenti non vedo nulla
ob_end_flush();
?>
questo è l'output
[email protected]
oggetto: Nuova Andolo - Scuola Italiana Sci - Contatto Sito
Nuova Andolo - Scuola Italiana Sci - Contatto Sito
Cliente: pinco
Email: [email protected]
Telefono: 000 000111222333
Messaggio: nel mezzo di camin di nostra vita mi ritrovai per una selva oscura che la diritta via era smarrita...

MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 From: [email protected]

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\AppServ\www\corso\0_protezione\strano_errore.php on line 27
per cui l'echo da quello che dovrebbe dare.
prova a riscriverlo tutto, sempre per assurdo verifica versione php


p.s.
"from" vuol dire "da" quindi
$headers .= "From: $name <$email>\r\n";
 

Discussioni simili