首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP -登录表单

PHP -登录表单
EN

Stack Overflow用户
提问于 2016-04-01 22:25:37
回答 2查看 380关注 0票数 2

我是PHP新手,我创建了一个登录表单和主页。我遵循了教程中所说的相同的方法,但是尽管我提供了正确的凭据,但我仍然收到“错误的详细信息”的错误。

//登录页面

代码语言:javascript
复制
    **Login.php**

        <?php
        session_start();
        include_once 'database1.php';

        if(isset($_SESSION['user'])!="")
        {
         header("Location: index1.php");
        }
        if(isset($_POST['login']))
        {
         $email = mysql_real_escape_string($_POST['email']);
         $pass = mysql_real_escape_string($_POST['password']);
         $result=mysql_query("SELECT * FROM users WHERE email='$email'");
         $row=mysql_fetch_array($result);
         if($row['password']==md5($pass))
         {
          $_SESSION['user'] = $row['number'];
          header("Location: index1.php");
          ?>
        <script> alert ('haii'); </script>
        <?php
         }
         else
         {
          ?>
                <script>alert('wrong details');</script>
                <?php
         }

        }
        ?>
      <html>


    <body>


            <form  method="post" >
         <label><center>EMAIL</center> <input type="text" name="email" placeholder="Your Email" required /> </label> </br>

         <label>PASSWORD <input type="password" name="password" placeholder="Your Password" required /></label> </br>


    <button type="submit" name="login">login</button> </br>
    </br>

    </form>    

    </html>

//索引页

代码语言:javascript
复制
**index1.php**

<?php
session_start();
include_once 'database1.php';

if(!isset($_SESSION['user']))
{
 header("Location: login.php");
}
$result=mysql_query("SELECT * FROM users WHERE number=".$_SESSION['user']);
$userRow=mysql_fetch_array($result);
?>
<html>
<body>
<p> welcome </p>

</body>
</html>
EN

回答 2

Stack Overflow用户

发布于 2016-04-03 14:02:10

通常,md5字符串有32个字符。

代码语言:javascript
复制
echo md5(77); // Result: 28dd2c7955ce926456240b2ff0100bde

但在您的示例中,数据库返回20个字符的截断md5字符串。

代码语言:javascript
复制
28dd2c7955ce92645624

问题是您的数据库密码字段长度只有20个字符。请更改您的表,并将密码字段长度设置为32个字符,以便它可以保存完整且正确的md5字符串。

票数 1
EN

Stack Overflow用户

发布于 2016-04-01 23:25:48

代码语言:javascript
复制
session_start();
include_once 'database1.php';
if(isset($_SESSION['user'])!="") {
    header("Location: index1.php");
}
if(isset($_POST['login'])){
    $email = mysql_real_escape_string($_POST['email']);
    $pass = mysql_real_escape_string($_POST['password']);
    $result=mysql_query("SELECT * FROM users WHERE email='$email'");
    $row=mysql_fetch_array($result);
    if($row['password']==md5($pass)) {
        $_SESSION['user'] = $row['number'];
        echo "<script>alert('logged in');</script>"
        header("Location: index1.php");

    }
     else {  
     echo "<script>alert('wrong credentials');</script>"
    } 
}    
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36358858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档