2013-07-12 3 views
0

J'ai actuellement le script email/db ci-dessous qui fonctionne très bien mais la redirection ne semble pas fonctionner. Au lieu de rediriger vers l'URL, il suffit de montrer la page php vide. Comment puis-je réparer cela?Rediriger le script de courrier électronique vers la page Web

<?php 
$con = mysql_connect("localhost","user","pass"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("register", $con); 
$sql="INSERT INTO register_interest (Name, Email, Message, Website) 

VALUES ('$_POST[Name]', '$_POST[Email]', '$_POST[Message]', '$_POST[Website]')"; 

if (!mysql_query($sql,$con)) 
{ 
die('Error: ' . mysql_error()); 
} 
mysql_close($con); 
$to = "email"; 
$subject = "Interest"; 
$email = $_POST['Email'] ; 
$message = $_POST['Message'] ; 
$headers = "From: $email"; 
$sent = mail($to, $subject, $message, $headers) ; 

if ($sent) { 
    header("Location: http://www.url.co.uk"); 
    exit(); 
} else { 
    print "We encountered an error sending your email"; 
} 
?> 
+0

Y at-il des erreurs dans vos fichiers journaux Apache/PHP? Il y a quelques problèmes avec votre code ... – Jon

+0

Vous DEVREZ utiliser mysql_real_escape_string sur vos variables POST avant de les insérer dans la base de données. ET vous devriez passer à mysqli car les fonctions mysql_ sont obsolètes. – Jon

Répondre

0

Essayez ce code:

if(!$sent){ 
    print "We encountered an error sending your email"; 
    exit; 
} 

header("Location: http://www.url.co.uk"); 
+0

Merci pour cela, mais il me donne juste une page blanche de la page php et ne fait pas la redirection. – JohnThomas

0
<?php 
$con = mysqli_connect("localhost","user","pass","register"); 
if (mysqli_connect_errno()) 
{ 
    die('Could not connect: ' . mysqli_connect_error()); 
} 
$name = mysqli_real_escape_string($con, $_POST['Name']); 
$email = mysqli_real_escape_string($con, $_POST['Email']); 
$message = mysqli_real_escape_string($con, $_POST['Message']); 
$website = mysqli_real_escape_string($con, $_POST['Website']); 

$sql = "INSERT INTO register_interest (Name, Email, Message, Website) 
VALUES ('$name', '$email', '$message', '$website')"; 

if (!mysqli_query($con, $sql)) 
{ 
    die('Error: ' . mysqli_error($con)); 
} 
mysqli_close($con); 

$to = "[email protected]"; 
$subject = "Interest"; 
$email = $_POST['Email'] ; 
$message = $_POST['Message'] ; 
$headers = "From: $email\n"; 
$sent = mail($to, $subject, $message, $headers) ; 

if ($sent) { 
    header("Location: http://www.url.co.uk"); 
    exit(); 
} else { 
    print "We encountered an error sending your email"; 
} 
?> 
+0

Merci, mais cela me donne une erreur indiquant qu'aucune base de données sélectionnée. Où cela doit-il être ajouté? – JohnThomas

0

Vérifiez si vous avez des lignes vides avant les balises PHP d'ouverture), la directive d'en-tête ne fonctionnera pas.

Questions connexes