使用PHP& SQL登录失败?

时间:2015-05-28 11:54:17

标签: php sql-server

我发现处理基本登录页面时出现问题,但是这里没有显示任何登录信息,而且我对PHP& SQL因此无法正确修复它。不知道错过了哪里:

 <?php

session_start();
include("require_pro.php");

if($_SERVER["REQUEST_METHOD"]=="POST")
{
    $myusername=addslashes($_POST['username']);
    $mypassword=md5(addslashes($_POST['password']));

     $sql=" SELECT * FROM user 
            WHERE username='$myusername' and password='$mypassword'

    ";

    $result=mysql_query($sql);
    $count=mysql_num_rows($result);



    if($count==1)
    {
        echo "Login Successfully";


    } 


}


?>

<!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang='en' xml:lang='en'>
    <head>
    <meta http-equiv="Content-Type" content=”text/html; charset=ISO-8859-1" /> 
    </head>
<html>
<title>Login-In</title>
<body>
<fieldset style="border:2px groove; border-color:blue; padding:15px 30px 15px;margin-right:5px;width:350px;height:150px">
<form action="login1.php" method="post">
<p><b>User Name </b>  <input type="text" name="username" size="20px" maxlength="15"></p>
<p><b>Password  </b> <input type="password" name="password" size="20px" maxlength="15"></p>
<div align="left"> <input type="submit" name="submit" value=login></div>
</form>
</fieldset>
</body>

我的require.php文件:

<?php
$server="localhost";
$username="rgun";
$password="";
$database="rgun";

$dbc=@mysql_connect($server,$username,$mysql_user,$mysql_password) or die("Database connection failed");
mysql_select_db($database,$dbc) or die("Can't select the database");





?>

USER SQL:

http://www.codeply.com/go/6eBfBskTsV

3 个答案:

答案 0 :(得分:1)

您的连接字符串中存在问题。您的连接字符串应为:

<?php 
$server="localhost";
$username="rgun";
$password="";
$database="rgun";

$dbc=mysql_connect($server,$username,$password) or die("Database connection failed");

if($_SERVER["REQUEST_METHOD"]=="POST")
{
    $myusername=addslashes($_POST['username']);
    $mypassword=addslashes($_POST['password']);

  $sql=" SELECT * FROM user 
            WHERE username='$myusername' and password='$mypassword'";

    $result=mysql_query($sql);
    $count=mysql_num_rows($result);



    if($count == 1)
    {
        echo "Login Successfully";


    } 


}

我已更新我的代码。还有一个错误,你的数据库中你的密码没有保存在md5中,但是你正在添加md5

$mypassword=md5(addslashes($_POST['password']));

所以在这里删除md5或在数据库中以md5格式插入密码,然后你的脚本就会运行。我已经测试了我在这个答案中发布的代码,它执行完美并给出了期望的结果,所以请尝试使用此代码。

mysql_ *已被正式弃用,因此请使用mysqli_ *或PDO。

答案 1 :(得分:1)

您共享的代码和数据库存在两个问题。

  1. 缺少密码哈希:您已将密码存储为未加密/纯文本。
  2. 在变量赋值期间使用MD5:在“mypassword”变量赋值期间使用了md5()函数。
  3. 因此,您可以更新'用户'表并通过以下方式加密密码:UPDATE USER SET password = MD5(password); 或者,从mypassword变量赋值中删除md5()函数。从“$ mypassword = md5(addslashes($ _ POST ['password']));” to“$ mypassword = addslashes($ _ POST ['password']);”

    提醒:

    1. 不要以纯文本或非加密方式存储密码。
    2. “user”,“password”等是MySql中的关键字,尽量不要使用数据库/表模式中的那些。

答案 2 :(得分:0)

试试这个,看看你收到了什么输出:

$this->add(array(
            'name' => 'year',
            'type' => 'select',
            'attributes' => array(
                'id' => 'yearSelect',
            ),
            'options' => array(
                'label' => 'Op welke datum wilt u arriveren?',
                'label_attributes' => array(
                    'class' => 'testFieldset',
                )
            )
        ));