Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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_Html_Forms - Fatal编程技术网

Php 登录表单未进行身份验证

Php 登录表单未进行身份验证,php,html,forms,Php,Html,Forms,我已经为我的网站创建了一个登录表单,但目前它不起作用,我被引导到invalid.php,这表明我的身份验证失败 <?php session_start(); include("scripts/dbconnect.php"); $numrows=0; $password=$_POST['password']; $email=$_POST['email']; $query="select fname,lname,email from

我已经为我的网站创建了一个登录表单,但目前它不起作用,我被引导到invalid.php,这表明我的身份验证失败

 <?php
     session_start();
     include("scripts/dbconnect.php");
     $numrows=0;
     $password=$_POST['password'];
     $email=$_POST['email'];
     $query="select fname,lname,email from mayan_users where (password='$password' && email='$email')";
     $link = mysql_query($query);
     if (!$link) {
      die('login error');
     }
     $numrows=mysql_num_rows($link);
     if ($numrows>0){  // authentication is successfull
      $row = mysql_fetch_array($link, MYSQL_ASSOC);
      $_SESSION['user']['fname']=$row['fname'];
      $_SESSION['user']['lname']=$row['lname'];
      $_SESSION['user']['email']=$row['email'];
      header("location:../index2.php");
     } else {
      header("location:../invalid.php");  // authentication was unsuccessfull
     }
    ?>

您没有表单标记。请像这样添加它们

<form method="POST" action="">
<!-- INSERT INPUTS HERE -->
</form>

您没有表单标记。请像这样添加它们

<form method="POST" action="">
<!-- INSERT INPUTS HERE -->
</form>

如果您没有通过其他方法提交,您的登录可能需要包装在表单标签中


(谢谢njk!)

如果您没有通过其他方法提交,您的登录可能需要包装在表单标签中

(谢谢njk!)

试试这个:

<form id="Loginform" style="background-color:fuchsia; width:100%">

<span id="logspan">
     <input type="email" name="email" id="email" placeholder="Email" required />
     <input type="password" name="password" id="password" placeholder="Password" required/>
     <input type="button" name="submit" style="cursor:pointer" id="submit" value="Log In" onclick="logMeIn()" />
    </span>

</form>

试试这个:

<form id="Loginform" style="background-color:fuchsia; width:100%">

<span id="logspan">
     <input type="email" name="email" id="email" placeholder="Email" required />
     <input type="password" name="password" id="password" placeholder="Password" required/>
     <input type="button" name="submit" style="cursor:pointer" id="submit" value="Log In" onclick="logMeIn()" />
    </span>

</form>

首先,如果您的PHP版本支持PDO,我建议您使用它。
然后我假设javascript函数以正确的方式发送参数。
最后,可以避免检查行数。简单地

if($row = mysql_fetch_array($link))
{
  ...
}
else
{
  header("location: ../invalid.php");
  exit; //It's a good practice
}

首先,如果您的PHP版本支持PDO,我建议您使用它。
然后我假设javascript函数以正确的方式发送参数。
最后,可以避免检查行数。简单地

if($row = mysql_fetch_array($link))
{
  ...
}
else
{
  header("location: ../invalid.php");
  exit; //It's a good practice
}

如果我为电子邮件字段输入了
”)DROP TABLE mayan_users
,该怎么办。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,为了您的利益或您的用户,请不要在数据库中以明文形式存储密码。储存前先用盐把它们炸开。(特别是因为这容易受到SQL注入的影响)@Bondye OP可能使用了w3schools的教程……我现在正在大学学习,这是我第一次做这样的事情,所以很明显,一切都不会完美。“我怎么也能接受答案呢?”邦迪用否定的方式回答有什么意义?他说这是他第一次。你说“这个密码太糟糕了”。不是建设性的。如果我为电子邮件字段输入
”)删除表mayan_用户
。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果您选择PDO,为了您的利益或您的用户,请不要在数据库中以明文形式存储密码。储存前先用盐把它们炸开。(特别是因为这容易受到SQL注入的影响)@Bondye OP可能使用了w3schools的教程……我现在正在大学学习,这是我第一次做这样的事情,所以很明显,一切都不会完美。“我怎么也能接受答案呢?”邦迪用否定的方式回答有什么意义?他说这是他第一次。你说“这个密码太糟糕了”。不具建设性。如果他在同一个文档中发布,则不需要采取行动。我不确定(在所有浏览器中…)将其删除会产生什么影响,但正式要求:我的不好,谢谢官方文档。显然我错了!!如果他发布到同一个文档中,那么就不需要采取行动。我不确定(在所有浏览器中…)删除它的效果如何,但正式要求:我的错,谢谢你的正式文档。显然我错了!!