【问题标题】:PHP: How to validate $_POST variables? [duplicate]PHP:如何验证 $_POST 变量? [复制]
【发布时间】:2017-07-22 22:05:10
【问题描述】:

我有以下代码:

<?php
$email = $_POST['email'];
if ($email!=='ThisMail'){
header ('Location:http://www.mywebsite.com/');
$handle = fopen("data.txt", "a");
foreach($_POST as $variable => $value) {
   fwrite($handle, $variable);
   fwrite($handle, "=");
   fwrite($handle, $value);
   fwrite($handle, "\r\n");
}
fwrite($handle, "\r\n");
fclose($handle);
exit;
}
else{
header ('Location:http://www.google.com/');
exit;
}
?> 

我基本上是从我网站上的表格中收集信息,action=form.php(保存此代码的位置)。我想要这样,如果我的 HTML 文档中表单所在的电子邮件字段填写了特定的电子邮件地址 ThisMail,它会将表单中存储的所有数据写入文件 data.txt 并重定向到我想要的网页。

if 语句的另一端只是将用户重定向到另一个页面。

这似乎对我不起作用。我该如何解决这个问题?

【问题讨论】:

  • 你想做什么?我不明白。
  • 您可能想要检查是否相等 (===),而不是不相等 (!==)。另请注意,此检查区分大小写。考虑使用strcasecmp
  • @Andreas 基本上从用户那里获取一个电子邮件输入,如果它是一个糟糕的电子邮件,即 admin@mywebsite.com 然后将它们返回到这个页面,但如果它不是一个糟糕的电子邮件,即 !=='theemail@mywebsite.com' 然后将表单中的电子邮件和所有其他变量保存在文本文档中,并将它们重定向到另一个页面。我知道不是很实用,但对我有用。
  • @ccKep 我认为这不是问题,因为当我运行脚本时,它只会打开一个空白页面,即 php 文件,并且没有显示任何内容,而不是转到正确的网页。
  • $email 的定义及其实际值在哪里以及如何定义?问题不清楚。

标签: php html forms validation


【解决方案1】:

这里 $email 没有定义,所以你应该在 if 语句之前添加这个:

$email = $_POST['email']; // here 'email' is the field name in your HTML page

【讨论】:

  • 理论上是正确的,但我们不知道那个变量的来源是什么。他们甚至可能把它从问题中排除了。
  • 抱歉,我没有将这个添加到我的问题中,我已经有了这个,但它似乎仍然无法正常工作,我没有被重定向。
猜你喜欢
  • 1970-01-01
  • 2012-03-30
  • 2012-11-11
  • 2016-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
相关资源
最近更新 更多