【问题标题】:Redirecting email script to web page将电子邮件脚本重定向到网页
【发布时间】:2023-03-14 22:38:01
【问题描述】:

我目前有以下工作正常的电子邮件/数据库脚本,但重定向似乎不起作用。而不是重定向到 url 它只是显示空白 php 页面。我该如何解决这个问题?

<?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"; 
}
?>

【问题讨论】:

  • 您的 Apache/PHP 日志文件中是否有任何错误?您的代码存在一些问题...
  • 在将 POST 变量插入数据库之前,您绝对应该在 POST 变量上使用 mysql_real_escape_string。并且你应该转移到 mysqli 因为 mysql_ 函数已被弃用。

标签: php email send


【解决方案1】:

试试这个代码:

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

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

【讨论】:

  • 谢谢你,但它只是给了我一个 php 页面的空白页并且不做重定向。
【解决方案2】:
<?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@address.com";
$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"; 
}
?>

【讨论】:

  • 谢谢,但这给了我一个错误,说明没有选择数据库。这需要在哪里添加?
【解决方案3】:

检查 PHP 开头标签前是否有空行),那么 header 指令将不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 2010-10-21
    • 2019-02-12
    • 2018-01-04
    • 1970-01-01
    相关资源
    最近更新 更多