Php将数据保存到.csv然后重定向

时间:2018-04-03 19:33:46

标签: php html redirect web

就像标题所说,我正在尝试创建一个将脚本保存到csv的php脚本,然后将它们重定向到我网站上的另一个URL。所有发生的事情是当我点击提交按钮时,我收到错误,说它无法处理请求。

这是我的表格

<form action="submit.php" method="post">

    <h1 style="text-align: center;">Register</h1><br>

    <fieldset>
     <legend>Your registration info</legend>
     <label for="name">Name:</label>
     <input type="text" id="name" name="user_name" required="">

     <label for="mail">Email:</label>
     <input type="email" id="mail" name="user_email" required="">

     <label for="phone">Phone:</label>
     <input type="phone" id="phone" name="phone">

     <label for="guest">Guest or Spouse:</label>
     <input type="text" id="gsname" name="gsname">

     <label>Date Attending:</label>
     <input type="radio" id="tuesday" value="tuesday" name="date"><label 
for="tuesday" class="light">Tuesday, May #, 2018 10 AM - 11:30 AM</label> 
<br>
     <input type="radio" id="thursday" value="thursday" name="date"><label 
for="thursday" class="light">Thursday, May #, 2018 10 AM - 11:30 AM</label>
    </fieldset>


     <button type="submit" name="submit">Register Now</button>
    </form>

这是我的php脚本。     

if (isset($_POST['submit'])){
// Fetching variables of the form which travels in URL
$name = $_POST['user_name'];
$email = $_POST['user_email'];
$phone = $_POST['phone'];
$gsname = $_POST['gsname'];
$date = $POST['date'];
$open = fopen("formdata.csv", "a");
$csvData = $name. "," $email. "," $phone. "," $gsname. "," $date. "n";
fwrite($open,$csvData)
fclose($open)
#if($name !=''&& $email !=''&& $phone !=''&& $gsname
//  To redirect form on a particular page
header("Location:https://www.google.com/");
}
else (
header("Location:https://www.charter.com");
)

?>

任何人都可以给我一个想法,我搞砸了吗?我知道数据验证很重要,但如果我在表单上使用它,我是否需要在此处验证它?

1 个答案:

答案 0 :(得分:1)

我会尝试一些事情:

  • 修正拼写错误if (isset($_POST['emailCheckbox'])) {
  • 修复字符串连接$date = $_POST['date'];
  • 检查以确保您的脚本正在接收POST请求。如果没有仔细检查表单操作属性上的路径。
  • 仔细检查您尝试创建/写入formdata.csv的目录是否可写。我建议也使用$name . "," . $email . "," . $phone . "," . $gsname . "," . $date . "\n";

虽然它不是强制性的,但强烈建议您进行服务器端验证。永远不要假设您收到的数据是您想要的。