嘿大家我正在为论文网站创建一个登录系统。我使用了包含我的PHP代码的外部php文件但是当我在浏览器中预览html文件时它什么也没显示。甚至没有任何表单元素。
非常感谢任何帮助。
<?php
include 'core/init.php';
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Index</title>
</head>
<body>
<div>
</div>
<div>
<form action='login.php' name="login" method = "POST">
<table width=>
<tr>
<td><label for="Email"></label>
Email:
<input type="text" name="email" id="Email">
</td>
<td><label for="Password"></label>
Password:
<input type="password" name="Password" id="Password">
</td>
<td><input type="submit" name="Login" id="Login" value="Login"></td>
</tr>
</table>
<a href="UserRegistration.php">not registered sign up</a>
</form>
</div>
</body>
</html>
核心初始文件
<?php
session_start();
//error_reporting(0);
require '/database/connect.php';
require '/functions/general.php';
require '/functions/users.php';
$errors = array();
?>
常规文件
<?php
function sanitize($data) {
return mysql_real_escape_string($data);
}
?>
用户文件
}
function user_active ($email) {
$email = sanitize ($email);
$query = mysql_query ("SELECT COUNT ('UserID') FROM 'users' WHERE 'Email' = '$email' AND 'activated' = 1");
return (mysql_result($query, 0) == 1) ? true : false;
}
function user_id_from_email($email){
$email =sanitize ($email);
return mysql_result(mysql_query("SELECT 'UserID' FROM 'users WHERE 'Email' = '@$email'"), 0, 'UserID');
}
function login ($email, $password){
$UserID = UserID_from_username($email);
$email = sanitize ($email);
$password = md5 ($password);
return(mysql_result(mysql_query ("SELECT COUNT ('UserID' FROM 'users' WHERE 'Email' = '$email' AND 'Password' = '$password'"), 0) == 1) ? $UserID : false;
};
?>
连接文件
<?php
$connect_error = 'Sorry, we\'re experiencing connection problems.';
mysql_connect('localhost','root','pass123') or die ($connect_error);
mysql_select_db('bitev2') or die ($connect_error);
?>
答案 0 :(得分:0)
我看到的一些问题,但错误最有可能是在尝试调用它时函数名中的拼写错误:
UserID_from_username 不等于 user_id_from_email ,或者它是否丢失?因此它会抛出致命错误,您很可能没有错误报告,所以它只是显示一个空白页面。检查错误日志将显示错误。
下面的查询中的@也会导致问题,因为它不是连接字符串。删除它,并在使用前检查变量是否已设置。
SELECT `UserID` FROM users WHERE `Email` = '@$email'
此外,Don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
另外,请勿使用md5()
进行密码散列。查看best way to store password in database以获得更好的密码处理。