<?php
function sqlesc($x) {
return "'".mysql_real_escape_string($x)."'";
}
$coon=mysql_connect("localhost","root","root");
if(!$coon)
{
die('数据库连接失败!'.mysql_error());
}
mysql_select_db("db_rita",$coon);
echo "运行到这里了";
while ($row = mysql_fetch_array($mysql))
{$name=$row['name'];
$password=$row['password'];}
if($_POST['name']==$name && $_POST['password']==$password)
{
echo "登录成功!";
}
else
{
echo "登录失败!不存在此用户名!";
}
mysql_close($coon);
?>本人PHP新手,请问上面的代码为什么不能验证。SQL没问题,在数据库里能运行出想要的结果。
function sqlesc($x) {
return "'".mysql_real_escape_string($x)."'";
}
$coon=mysql_connect("localhost","root","root");
if(!$coon)
{
die('数据库连接失败!'.mysql_error());
}
mysql_select_db("db_rita",$coon);
echo "运行到这里了";
while ($row = mysql_fetch_array($mysql))
{$name=$row['name'];
$password=$row['password'];}
if($_POST['name']==$name && $_POST['password']==$password)
{
echo "登录成功!";
}
else
{
echo "登录失败!不存在此用户名!";
}
mysql_close($coon);
?>本人PHP新手,请问上面的代码为什么不能验证。SQL没问题,在数据库里能运行出想要的结果。
{$name=$row['name'];
$password=$row['password'];}
你在这里后面验证,取的是数据库最后一条,当然验证有问题了。
{$name=$row['name'];
$password=$row['password'];}这里怎么改。。不是取的最后一条,是全取出来了.
if($row = mysql_fetch_array($mysql))
{
echo "登录成功!";
}
else
{
echo "登录失败!用户名或密码错误!";
}
不好意思少了分号
只见你有选择了连接数据库名称之后没有查询,直接fetch_array。如果没发全,步骤都有,那么请参考3楼!
function sqlesc($x) {
return "'".mysql_real_escape_string($x)."'";
}
$coon=mysql_connect("localhost","root","root");
if(!$coon)
{
die('数据库连接失败!'.mysql_error());
}
mysql_select_db("db_rita",$coon);
echo "运行到这里了"."<br/>";
$mysql = mysql_query("SELECT name,password FROM user WHERE name='".$_POST['name']."' AND password='".$_POST['password']."'");echo $mysql; //打印$mysql结果if($row = mysql_fetch_array($mysql))
{
echo "登录成功!";
}
else
{
echo "登录失败!用户名或密码错误!";
} mysql_close($coon);
?>得到的结果是这样的:“运行到这里了
Resource id #3登录失败!用户名或密码错误!”(Resource id #3)是什么意思?我用 "echo $mysql; //打印$mysql结果"得到的.我用的是数据库里正确的“name”和"password".
$row = mysql_fetch_array($mysql);
if(is_array($row))
{
echo "登录成功!";
}
else
{
echo "登录失败!用户名或密码错误!";
}