Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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_Mysql - Fatal编程技术网

php登录页面无法工作

php登录页面无法工作,php,mysql,Php,Mysql,惠。。我是php/mysql的新手。你能帮帮我吗?我一直都在使用“错误的用户名或密码”。 这里是我的login.php <code> <table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> <tr> <form method="post" action="checklogi

惠。。我是php/mysql的新手。你能帮帮我吗?我一直都在使用“错误的用户名或密码”。 这里是我的login.php

<code>
    <table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
        <tr>
            <form method="post" action="checklogin.php">
                <td>
                    <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
                        <tr>
                            <td colspan="3">
                                <strong>Member Login </strong>
                            </td>
                        </tr>
                        <tr>
                            <td width="78">Username</td>
                            <td width="6">:</td>
                            <td width="294">
                                <input name="username" type="text" id="username"/>
                            </td>
                        </tr>
                        <tr>
                            <td>Password</td>
                            <td>:</td>
                            <td>
                                <input name="password" type="password" id="password"/>
                            </td>
                        </tr>
                        <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                            <td>
                                <input type="submit" name="Submit" value="Login"/>
                            </td>
                        </tr>
                    </table>
                </td>
            </form>
        </tr>
    </table>
</code>
我在连接数据库方面没有问题,但我看不出错误在哪里。请帮帮我。

做一个
错误报告(E\u ALL)
ini_集('display_errors','on'),以便php开始对话

您是否有一个名为
user\u id
的表,还是输入错误

$sql="SELECT user, pass FROM user_id WHERE user='$username' and pass='$password'";
$result=mysql_query($sql);
无论如何,作为编程规则,永远不要假设函数的输出。在执行任何其他操作之前,始终检查其返回值
$result

if(!$result) die(mysql_error());
现在您将知道是否有任何sql错误本身。然后你就可以解决你的问题了。其余代码在php中的第一天就可以了。在今天学习之后,您可以在明天学习其他1..4点。

通过查看以下错误消息:

警告:mysqli_query()至少需要2个参数,1个参数在第18行的C:\xampp\htdocs\exa\checklogin.php中给出

警告:mysqli_num_rows()要求参数1为mysqli_结果,在第20行的C:\xampp\htdocs\exa\checklogin.php中为空

您似乎在混合使用
mysqli.*
mysql.*
函数(您的代码>检查登录.php < /c>文件包含<代码> MySqL**<代码>函数,您的错误信息是基于<代码> MySqLI**<代码>,以及<>强>在纯文本中存储密码;这是非常危险的>,您应该考虑使用不同的方法,如PHP的功能。 我已经为您准备了一些版本,但是有一些东西是不推荐的

比如,

从PHP 5.3.0开始,此函数已被弃用,并从PHP 5.4.0开始删除

因此,您可能需要更改:

session_register("username");
session_register("password");
致:

或:

但是,我不能完全确定您是否在另一个文件中使用了
session\u register(“用户名”)
session\u register(“密码”)

MySQL_uuu版本

<?php
session_start();
$con=mysqli_connect("host","username", "password", "database_name");

if (mysqli_connect_errno())   {  
echo "Failed to connect to MySQL: " . mysqli_connect_error(); }

$username = mysqli_real_escape_string($con,$_POST['username']);
$password = mysqli_real_escape_string($con,$_POST['password']);

$sql="SELECT user, pass FROM user_id WHERE user='$username' and pass='$password'";

$result = mysqli_query($con,$sql) or die(mysqli_error($con));

$count=mysqli_num_rows($result);
if($count==1) {
    $_SESSION['username'] = '$username';
    $_SESSION['password'] = '$password';
    header("location:login_success.php");
}
else {
    echo "Wrong Username or Password";
}
假设:

我将
$result=mysql\u query($sql);
更改为
$result=mysql\u query($sql,$con);
以将数据库连接传递到
$result

<?php
session_start();
$db = mysql_connect("host","username", "password");

$db_selected = mysql_select_db('database_name', $db);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

mysql_real_escape_string($_POST['username']);
mysql_real_escape_string($_POST['password']);

$sql="SELECT user, pass FROM user_id WHERE user='$username' and pass='$password'";

if (mysql_query($sql, $con)) {
  echo ("Database query successful");
}else {
     die ("Database query failed: " .mysql_error());
}

$result=mysql_query($sql,$con);
$count=mysql_num_rows($result);
if($count==1) {
    $_SESSION['username'] = '$username';
    $_SESSION['password'] = '$password';
    header("location:login_success.php");
}
else {
    echo "Wrong Username or Password";
}

登录成功

这段代码已经过时多年了。1.mysql_*已被弃用。2.会话_register()不推荐使用。3.不需要带斜杠,因为不推荐使用魔术引号。4.引入长缩进ago@Bojangles可能只是SO的格式。您确定数据库中有匹配的用户名密码吗?不推荐意味着停止使用它,因为它的旧用户id是我的表名。感谢“错误报告(E_ALL)”和ini_设置('display_errors','on');'提示,现在我可以看到问题行了。但我仍在尝试修复它。我的登录页面仍然不工作。哪一个是问题行?警告:mysqli_query()需要至少2个参数,1个在第18行的C:\xampp\htdocs\exa\checklogin.php中给出警告:mysqli_num_rows()预期参数1为mysqli_result,在第20行的C:\xampp\htdocs\exa\checklogin.php中为空,谢谢,但我尝试了,但仍然出现错误。我也在用完整代码编辑我的帖子。希望您能帮助我。不客气。您能告诉我您遇到了哪一个错误吗?@user3259186这是错误:警告:stripslashes()只需要1个参数,第15行的C:\xampp\htdocs\exa\checklogin.php中给出2个警告:mysqli\u real\u escape\u string()只需要2个参数,第15行的C:\xampp\htdocs\exa\checklogin.php中给出1个警告:stripslashes()只需要1个参数,第16行C:\xampp\htdocs\exa\checklogin.php中给出2个警告:mysqli\u real\u escape\u string()只需要2个参数,第16行C:\xampp\htdocs\exa\checklogin.php中给出1个错误的用户名或密码,方法是禁用“/$Username=mysqli\u real\u escape\u string\u string($con,$\u POST['Username'));//$password=mysqli\u real\u escape\u string(stripslashes($con,$\u POST['password']),替换为“$username=”($\u POST['username']);$password=”($\u POST['password']);“我正设法进入页面登录成功.php,但页面只显示空白页面。好,然后将其更改为
$username=mysqli\u real\u escape\u string($con,$\u POST['username']))
$password=mysqli\u real\u escape\u string($con,$\u POST['password']);
您不需要
stripslashes
,因为
mysqli\u real\u escape\u string
已经在处理任何非法字符。@user3259186和id您是否也使用我的示例进行DB连接?
$con
参数用于DB连接。
$_SESSION['username'] = '$username';
$_SESSION['password'] = '$password';
<?php
session_start();
$db = mysql_connect("host","username", "password");

$db_selected = mysql_select_db('database_name', $db);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

mysql_real_escape_string($_POST['username']);
mysql_real_escape_string($_POST['password']);

$sql="SELECT user, pass FROM user_id WHERE user='$username' and pass='$password'";

if (mysql_query($sql, $con)) {
  echo ("Database query successful");
}else {
     die ("Database query failed: " .mysql_error());
}

$result=mysql_query($sql,$con);
$count=mysql_num_rows($result);
if($count==1) {
    $_SESSION['username'] = '$username';
    $_SESSION['password'] = '$password';
    header("location:login_success.php");
}
else {
    echo "Wrong Username or Password";
}
<?php
session_start();
$con=mysqli_connect("host","username", "password", "database_name");

if (mysqli_connect_errno())   {  
echo "Failed to connect to MySQL: " . mysqli_connect_error(); }

$username = mysqli_real_escape_string($con,$_POST['username']);
$password = mysqli_real_escape_string($con,$_POST['password']);

$sql="SELECT user, pass FROM user_id WHERE user='$username' and pass='$password'";

$result = mysqli_query($con,$sql) or die(mysqli_error($con));

$count=mysqli_num_rows($result);
if($count==1) {
    $_SESSION['username'] = '$username';
    $_SESSION['password'] = '$password';
    header("location:login_success.php");
}
else {
    echo "Wrong Username or Password";
}
<?php
session_start();
if(!isset($_SESSION['username'])){ 
header("location:login.php"); 
}
?>

<html>
<body>
Login Successful
</body>
</html>