Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.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 ($user == $email && $pass = $password) { session_start(); $_SESSION['myses

我的登录表单有问题,因为如果我在密码字段中输入一些文本,在用户/电子邮件字段中输入空文本,表单将执行并重定向到索引页面

这是一个网站

其他验证是可以的,我只是想让它安全。 谢谢

这是我的代码

                    if ($user == $email && $pass = $password) {
                        session_start();
                        $_SESSION['mysesi'] = $name;
                        $_SESSION['user'] = $user;
                        echo "<script>window.location.assign('index.php')</script>";
                    } elseif (empty($email) || empty($password)) {
                        ?>
                        <div class="alert alert-danger alert-dismissible" role="alert">
                            <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
                            <strong>Warning!</strong> Please fill out all fields.
                        </div>
                        <?php
                    } else {
                        ?>
                        <div class="alert alert-danger alert-dismissible" role="alert">
                            <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
                            <strong>Warning!</strong> Incorrect combination of Email Address and Password.
                        </div>
        <?php
    }
}
if($user==$email&&$pass=$password){
会话_start();
$\会话['mysesi']=$name;
$\会话['user']=$user;
echo“window.location.assign('index.php')”;
}elseif(空($email)| |空($password)){
?>
×闭合
警告!请填写所有字段。
×闭合
警告!电子邮件地址和密码组合不正确。

我明白了,也许你的问题就在这里

if ($user == $email && $pass = $password) {
应该是:

if ($user == $email && $pass =**=** $password) {

我明白了,也许你的问题就在这里

if ($user == $email && $pass = $password) {
应该是:

if ($user == $email && $pass =**=** $password) {
使用&(和)代替| |(或)

这里

用这个 elseif(空($email)和空($password))

而不是 elseif(空($email)| |空($password))

因为在您的条件下,若用户输入用户名或密码中的任何一个,则您的条件变为真

因此您必须使用&&(AND)运算符而不是| |(OR)

使用&(AND)而不是| |(OR)

这里

用这个 elseif(空($email)和空($password))

而不是 elseif(空($email)| |空($password))

因为在您的条件下,若用户输入用户名或密码中的任何一个,则您的条件变为真

因此,您必须使用&(AND)运算符而不是| |(OR)

更改

 if ($user == $email && $pass = $password) 

你已经得到了答案,但这里有一些对你有好处的建议

像客户端一样进行基本表单验证

<input type="email" required >

将为您进行电子邮件验证

<input type="password" required minlength="6" >

将使用最小长度为6个字符的密码。您不必检查它。 另外,“必填”字段确保用户可以将这些字段留空。HTML5浏览器是这些字段所必需的,但我认为世界上大多数地方都有

在php中,在执行数据库查询之前进行输入验证。

更改

 if ($user == $email && $pass = $password) 

你已经得到了答案,但这里有一些对你有好处的建议

像客户端一样进行基本表单验证

<input type="email" required >

将为您进行电子邮件验证

<input type="password" required minlength="6" >

将使用最小长度为6个字符的密码。您不必检查它。 另外,“必填”字段确保用户可以将这些字段留空。HTML5浏览器是这些字段所必需的,但我认为世界上大多数地方都有


在您的php中,在执行数据库查询之前进行输入验证。

我假设您的表单中没有必需的属性,因此$user==$email可以相等&&$pass=$password将始终相等,因为这是一个赋值。很抱歉,我将更新代码,因为$user和$pass是数据库中的数据。另一个假设是使用数据库时,不需要检查是否提供了电子邮件和密码是空的,因为无论如何数据库查询都会失败。您可能会考虑它在搜索数据库之前或在客户端SIDENOWO中实现,我非常感谢SyrIT现在完美地工作……谢谢您假设您的表单中没有必需的属性,所以$Auth==$email。因为$$和$PASS是来自数据库的另一个假设的数据,如果您使用的是数据库,那么不需要检查是否提供的电子邮件和密码是空的,因为无论如何数据库查询都会失败。在搜索数据库之前或在客户端执行现在我意识到,非常感谢Sir它现在工作得很好…感谢但使用required可以由用户通过inspect元素进行编辑。此外,密码是由系统自动生成的。我并不是说你应该只使用它。这是一个验证层。大多数基本用户在spect元素。对于那些这样做的人,你也可以在php中检查验证。所以这不是问题。试着使用浏览器功能让你的生活更简单,但使用必需的可以由用户通过inspect元素编辑。密码也是由系统自动生成的。我不是说你应该只有这个密码。这是一个验证层。大多数基本用户不做这种检查元素的事情。对于那些做的用户,你也在用php检查验证。所以这不是问题。只要试着使用浏览器功能让你的生活变得简单就行了