chrome检查时文件为空。所有其他页面都可以正常工作并显示基本表单。从未遇到过这样的错误。放入html时,表单本身就有效,但我无法与SQL DB正常通信。可以提供任何帮助。
<?php
//Connects to your Database
$conect = mysqli_connect("db location","username","password", "forks") or die(mysql_error());
//Checks if there is a login cookie
if(isset($_COOKIE['ID_your_site'])){ //if there is, it logs you in and directes you to the members page
$username = $_COOKIE['ID_your_site'];
$pass = $_COOKIE['Key_your_site'];
$check = mysqli_query($conect, "SELECT * FROM users WHERE username = '$username'")or die(mysql_error());
while($info = mysqli_fetch_array( $check )){
if ($pass != $info['password']){}
else{
header("Location: login.php");
}
}
}
//if the login form is submitted
if (isset($_POST['submit'])) {
// makes sure they filled it in
if(!$_POST['username']){
die('You did not fill in a username.');
}
if(!$_POST['pass']){
die('You did not fill in a password.');
}
// checks it against the database
if (!get_magic_quotes_gpc()){
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysqli_query($conect, "SELECT * FROM users WHERE username = '".$_POST['username']."'")or die(mysql_error());
//Gives error if user dosen't exist
$check2 = mysqli_num_rows($check);
if ($check2 == 0){
die('That user does not exist in our database.<br /><br />If you think this is wrong <a href="login.php">try again</a>.');
}
while($info = mysqli_fetch_array( $check )){
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);
//gives error if the password is wrong
if ($_POST['pass'] != $info['password']){
die('Incorrect password, please <a href="login.php">try again</a>.');
}
else{ // if login is ok then we add a cookie
$_POST['username'] = stripslashes($_POST['username']);
$hour = time() + 3600;
setcookie(ID_your_site, $_POST['username'], $hour);
setcookie(Key_your_site, $_POST['pass'], $hour);
//then redirect them to the members area
header("Location: members.php");
}
}
}
else{
// if they are not logged in
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}
?>
正如您所看到的,表单是一个没有格式的通用html表单,因为我打算将其保留,直到一切正常。
答案 0 :(得分:0)
而不是:
$conect = mysqli_connect("db location","username","password", "forks") or die(mysql_error());
试试这个:
$conect = new mysqli("db location","username","password", "forks");
if ($conect->connect_error) {
die('Connect Error (' . $conect->connect_errno . ') '
. $conect->connect_error);
}
如果它不起作用,请告诉我它会抛出什么错误。
答案 1 :(得分:0)
试试这个
$check = mysqli_query($conect, "SELECT * FROM users WHERE username = '".$username."'") or die(mysqli_error($conect));
而不是这个
$check = mysqli_query($conect, "SELECT * FROM users WHERE username = '$username'")or die(mysql_error());