【问题标题】:PHP script doesnt redirect to "header" pagePHP脚本不会重定向到“标题”页面
【发布时间】:2015-07-10 11:33:01
【问题描述】:

这就是问题所在。我正在尝试解决我的 PHP 脚本中的一个问题,该问题阻止它通过电子邮件发送我们的客户输入的信息。

<?php    
session_start();    
if($_SERVER["REQUEST_METHOD"] == "POST")
{
$recaptcha=$_POST['g-recaptcha-response'];
if(!empty($recaptcha))
{
include("getCurlData.php");
$google_url="https://www.google.com/recaptcha/api/siteverify";
$secret='6LegpgYTAAAAABK9Nd45_DfAPu7_gwHro9pj902B';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$res=getCurlData($url);
$res= json_decode($res, true);
//reCaptcha success check
if($res['success'])
{

  $headers  = 'MIME-Version: 1.0' . "\r\n";
  $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

  if(isset($_POST['submit'])) {
  $to = "denislav@svishtov.net";
  $subject = "New opinion post";

  // data the visitor provided
  $name_field = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
  $phone_field = filter_var($_POST['number']);
  $address_field = filter_var($_POST['address'], FILTER_SANITIZE_STRING);
  $comment = filter_var($_POST['comment'], FILTER_SANITIZE_STRING);

  //constructing the message
  $body = "
  From: $name_field <br/>
  Email Address: $address_field <br/>
  Phone number: $phone_field <br/>
  Message:<br/> $comment ";

  // ...and away we go!
  mail($to, $subject, $body, $headers);

  // redirect to confirmation
  header("Location: confirmation2.html");
  }

  else {
  // handle the error somehow
  echo "Error accessing the file";
  }

  }
  else
  {
  echo "Въвели сте грешен код за потвърждаване (reCAPTCHA)! Натиснете "назад" и опитайте отново";
  }

  }
  else
  {
  echo "Не сте въвели код за потвърждаване (reCAPTCHA)! Натиснете "назад" и опитайте отново";
  }
 }

  ?>

更糟糕的是,它曾经可以工作,然后我打开它,编辑了一些东西,现在它不起作用,尝试了备份副本,它仍然不起作用!? 在 CMS MadeSimple 中工作。 URL 是正确的,confirmation2.html 是一个文件,而不是在 CMS 中制作的页面,它与 php 脚本位于同一文件夹中,如果我尝试直接访问它(而不是通过联系人),我有尝试了 ' ' 和 " " 引号,仍然没有变化。

可能是一个简单的错误,我确实尝试在这里(*.com)寻找其他解决方案,但没有解决我当前的问题。我知道我不应该在标题之前有任何输出,但是......好吧我没有任何输出,所以我很困惑。 提前感谢那些想要提供帮助的人!

【问题讨论】:

  • 您在使用header("Location: confirmation2.html"); 重定向后忘记了exit();
  • 已添加,不起作用:/以前没有它也可以!?
  • 使用header("Location: /uploads/doc/Online_Request/confirmation2.html"); exit(); 如果它仍然不起作用(无论doesn't work 可能意味着btw)然后确保在这种情况下执行您的代码步骤if($res['success'])
  • ' doesn't work ' 意味着我得到一个空白页,就好像我试图直接打开脚本而不是通过表单一样。是的,它仍然“不起作用”......而且我不知道如何对代码进行故障排除和调试。

标签: php redirect header


【解决方案1】:

更新: 似乎 reCAPTCHA 让我大吃一惊,在我删除它之后 - 工作。 暂时让它毫无防备。感谢所有愿意提供帮助的人。

【讨论】:

    最近更新 更多