连接php文件时,在浏览器中预览时不显示html文件

时间:2014-01-22 04:17:20

标签: php html forms browser login

嘿大家我正在为论文网站创建一个登录系统。我使用了包含我的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);
?>

1 个答案:

答案 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,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

另外,请勿使用md5()进行密码散列。查看best way to store password in database以获得更好的密码处理。