Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “始终打印”;请填写所有字段“;即使所有字段都已满?_Php - Fatal编程技术网

Php “始终打印”;请填写所有字段“;即使所有字段都已满?

Php “始终打印”;请填写所有字段“;即使所有字段都已满?,php,Php,在我的代码中,如果您没有填写,它应该打印“请填写所有字段”,但它永远不会像应该的那样继续注册,并且总是打印错误消息;虽然我做了一个测试,它会打印所有变量,以确保它们有一个值,而且它们有,所以我看不出问题 if($_POST['signUp']){ if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDE

在我的代码中,如果您没有填写,它应该打印“请填写所有字段”,但它永远不会像应该的那样继续注册,并且总是打印错误消息;虽然我做了一个测试,它会打印所有变量,以确保它们有一个值,而且它们有,所以我看不出问题

if($_POST['signUp']){
  if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
  } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } else {
    $ip = $_SERVER['REMOTE_ADDR'];
  }

  $display = $_POST['newDisplay'];
  $username = $_POST['newUsername'];
  $pass = $_POST['newPassword'];
  $email = $_POST['newEmail'];

  if ($display && $password && $username && $email) {
    $signedUp = SignUp($username,$pass,$display,$ip,$email);
    echo $signUpCode[$signedUp];
  }
  else {
    echo "<p class='BasicText'>Please fill out all fields.</p>"; 
  }
}
if($\u POST['signUp'])){
如果(!空($\u服务器['HTTP\u客户端\u IP'])){
$ip=$\服务器['HTTP\客户端\ ip'];
}elseif(!empty($_服务器['HTTP\u X\u FORWARDED\u FOR'])){
$ip=$\服务器['HTTP\u X\u FORWARDED\u'];
}否则{
$ip=$\u服务器['REMOTE\u ADDR'];
}
$display=$\u POST['newDisplay'];
$username=$_POST['newUsername'];
$pass=$\u POST['newPassword'];
$email=$_POST['newEmail'];
如果($display&&$password&&&$username&&$email){
$signedUp=SignUp($username、$pass、$display、$ip、$email);
echo$signUpCode[$signedUp];
}
否则{
echo“

请填写所有字段。

”; } }

我知道所有的HTML字段都在工作,因为如果我删除if/else,它可以很好地为您注册。

您的问题是您引用的
$password
,但变量是
$pass

if ($display && $pass && $username && $email) {

您的问题出现在您参考的
$password
条件下,但变量是
$pass

if ($display && $pass && $username && $email) {

执行
var\u dump($\u POST)
并将结果发布到这里(你的验证充其量也很差。你真的可以极大地改进它)。你是真的这样编码(没有缩进),还是只是复制和粘贴的某种问题?试图调试我自己的代码时,我会发疯。@Sam将所有缩进完整地粘贴到您的代码中,然后突出显示并单击
{}
编辑器工具栏按钮以生成代码块或
ctl-k
。您使用$password而不是$pass。这可能是个人偏好,但当$var是字符串时,我倾向于不使用
if($var)
。相反,根据我要做的事情,将其转换为布尔值。如果要确保它已设置,请执行
If(isset($var))
或如果我要确保它已设置且不为空
If(!empty($var))
等。这样可以避免类型转换问题。也许你想确保它是一个非空字符串,但是如果字符串是
“0”
,那么执行
if($var)
将是错误的。执行
var\u dump($\u POST)
并将结果发布在这里(你的验证最好不过是糟糕的。你真的可以极大地改进它)。你真的这样编码吗(没有缩进)或者这只是复制和粘贴的某种问题?试图调试我自己的代码时,我会发疯。@Sam将所有缩进完整地粘贴到您的代码中,然后突出显示并单击
{}
编辑器工具栏按钮以生成代码块或
ctl-k
。您使用$password而不是$pass。这可能是个人偏好,但当$var是字符串时,我倾向于不使用
if($var)
。相反,根据我要做的事情,将其转换为布尔值。如果要确保它已设置,请执行
If(isset($var))
或如果我要确保它已设置且不为空
If(!empty($var))
等。这样可以避免类型转换问题。也许您想确保它是非空字符串,但是如果字符串是
“0”
,那么执行
if($var)
将是错误的。@Sam:调试规则1:始终有。PHP调试规则2:不要只启用
错误报告
,还要在屏幕上显示错误<代码>错误报告(E_全部);ini设置(“显示错误”,1)在运行时,或者在
php.ini
@Sam:Rule#1 of debug:always have.Rule#2 of php debug:不仅启用
错误报告
,还在屏幕上显示错误<代码>错误报告(E_全部);ini设置(“显示错误”,1)在运行时,或在
php.ini
中同时设置。