<?phpsession_start(); class chkuserlogin{ private $username; private $password; public function __construct($username,$password){ $this->username=$username; $this->password=$password; require_once("connn.php"); $sql=mysql_query("select account from root where username='".$this->username."' and password='".$this->password."'",$conn); $info=mysql_fetch_array($sql); if($info==false){ echo ""; exit; }else{ if($_SESSION["unc"]!=""){ session_unregister("unc"); } session_register("unc"); $_SESSION["unc"]=$this->username; mysql_query("update root set logintimes=logintimes+1,lastlogintime='".date("Y-m-d H:i:s")."'",$conn); echo ""; } } } $obj=new chkuserlogin($_POST["username"],md5($_POST["password"])); $obj->chk();?>
登录验证的一小段代码 我数据库为 localhost root 无密码 , 我数据库已保存了一组密码。 无限密码错误 跳转页面 而且也报错
= - 求解脱 拜谢
回复讨论(解决方案)
$sql=mysql_query("select account from root where username='".$this->username."' and `password`='".$this->password."'",$conn);//17行password外面加``,与mysql函数冲突
请两个错误是在这句出现的
$obj=new chkuserlogin($_POST["username"],md5($_POST["password"]));
你可能不是在 post 方式下执行的程序
也可能提交过来的名字不对
var_dump($_POST);
= - 各位大神 我还是不知道怎么改 新手没学几天
你是怎么执行这个程序的
= - 用这个 页面Administrator
<?phperror_reporting(0);$mysql_servername = "localhost"; //主机地址$mysql_username = "root"; //数据库用户名$mysql_password =""; //数据库密码$mysql_database ="root"; //数据库mysql_connect($mysql_servername , $mysql_username , $mysql_password);mysql_select_db($mysql_database); $username=$_POST['username'];$passowrd=$_POST['password'];if ($username && $passowrd){ $sql = "SELECT * FROM account WHERE username = '$username' and password='$passowrd'"; $res = mysql_query($sql); $rows=mysql_num_rows($res); if($rows){ header("refresh:0;url=login.php");//跳转页面,注意路径 exit; } echo "";}else { echo "";}?>
我重新写了这个代码 不用那个链接的 这个没报错了 但是无限用户名 密码不能为空 不管怎么输入
= - 用这个 页面 你的用户名和密码没有提交过去啦Administrator
红色框框分别加上
name="username"
name="password"
再试试
非常感谢 各位的帮助 让我在这条路上不至于不知道如何继续 问题已解决