Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php登录可以在XAMPP上工作,但不能在web服务器上工作?_Php_Mysql_Login_Xampp - Fatal编程技术网

php登录可以在XAMPP上工作,但不能在web服务器上工作?

php登录可以在XAMPP上工作,但不能在web服务器上工作?,php,mysql,login,xampp,Php,Mysql,Login,Xampp,我正试图添加一个简单的登录到一个网站,并在我的本地主机XAMPP服务器上完美地工作,但现在当上传到我的网站时,我可以注册新用户,但当我登录时,页面就变成空白 <?php $error = ''; if (isset($_POST['login'])) { session_start(); $username = trim($_POST['username']); $password = trim($_POST['pwd']); // location to

我正试图添加一个简单的登录到一个网站,并在我的本地主机XAMPP服务器上完美地工作,但现在当上传到我的网站时,我可以注册新用户,但当我登录时,页面就变成空白

 <?php
$error = '';
if (isset($_POST['login'])) {
    session_start();
    $username = trim($_POST['username']);
    $password = trim($_POST['pwd']);
    // location to redirect on success
    $redirect = './adminArea_db.php';
    require_once('./includes/authenticate_pdo.inc.php');
}
?>
 <!DOCTYPE HTML>
 <html>
 <link href="css/screen.css" rel="stylesheet" media="screen" />
    <meta charset="utf-8">
    <title>Login</title>
</head>

 <body>
 <div id="main">
<?php
 if ($error) {
 echo "<p>$error</p>";
 } elseif (isset($_GET['expired'])) { 
?>
 <p>Your session has expired. Please log in again.</p>
 <?php } ?>
 <form id="form1" method="post" action="">
   <p>
    <label for="username">Username:</label>
    <input type="text" name="username" id="username" value="">
    </p>
     <p>
    <label for="pwd">Password:</label>
    <input type="password" name="pwd" id="pwd">
     </p>
     <p>
    <input name="login" type="submit" id="login" value="Log in">
   </p>
    </form>
   </div>
     </body> 
    </html>

登录
您的会话已过期。请重新登录

用户名:

密码:

有什么想法吗

在我的错误日志中发现一些错误,不确定是否有用

[11-Feb-2014 20:48:52 Europe/London] PHP Warning:  session_start()   [<ahref='function.session-start'>function.session-start</a>]: Cannot send session cookie - headers already sent by (output started at /home/georgepa/public_html/login_db.php:2) in /home/georgepa/public_html/login_db.php on line 6
[11-Feb-2014 20:48:52 Europe/London] PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/georgepa/public_html/login_db.php:2) in /home/georgepa/public_html/login_db.php on line 6
[11-Feb-2014 20:48:52 Europe/London] PHP Warning:  session_regenerate_id() [<a href='function.session-regenerate-id'>function.session-regenerate-id</a>]: Cannot regenerate session id - headers already sent in /home/georgepa/public_html/includes/authenticate_pdo.inc.php on line 28
[11-Feb-2014 20:48:52 Europe/London] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/georgepa/public_html/login_db.php:2) in /home/georgepa/public_html/includes/authenticate_pdo.inc.php on line 29
[11-Feb-2014 20:48:52 Europe/London]PHP警告:session_start()[]:无法发送会话cookie-已由第6行/home/georgepa/public_html/login_db.PHP中的/home/georgepa/public_html/login_db.PHP中的(输出开始于/home/georgepa/public_html/login_db.PHP:2)发送的标头
[11-Feb-2014 20:48:52 Europe/London]PHP警告:session_start()[]:无法发送session cache limiter-第6行/home/georgepa/public_html/login_db.PHP的/home/georgepa/public_html/login_db.PHP中已发送的头(输出开始于/home/gepa/public_html/login_db.PHP:2)
[11-Feb-2014 20:48:52 Europe/London]PHP警告:会话_REGENATE_id()[]:无法重新生成会话id-标题已在第28行的/home/georgepa/public_html/includes/authenticate_pdo.inc.PHP中发送
[11-Feb-2014 20:48:52 Europe/London]PHP警告:无法修改标题信息-标题已由第29行/home/georgepa/public_html/login_db.PHP中的/home/georgepa/public_html/includes/authenticate_pdo.inc.PHP发送(输出开始于/home/georgepa/public_html/login_db.PHP:2)
我想我的authenticate_pdo.inc.php文件有问题

  <?php
   require_once('./includes/connection.inc.php');
   $conn = dbConnect();
    // get the username's details from the database
    $sql = 'SELECT salt, pwd FROM users WHERE username = :username';
    // prepare statement
     $stmt = $conn->prepare($sql);
     // bind the input parameter
     $stmt->bindParam(':username', $username, PDO::PARAM_STR);
     // bind the result, using a new variable for the password
      $stmt->bindColumn(1, $salt);
     $stmt->bindColumn(2, $storedPwd);
       try{
       $stmt->execute();
       $stmt->fetch();
      }catch(PDOException $e){
       exit('problem reading from table users'.$e->getMessage());
      }

       dbClose($conn) ;
       // encrypt the submitted password with the salt and compare with stored password
       if (sha1($password . $salt) == $storedPwd) {
        $_SESSION['authenticated'] = 'admin'; // role of authenticated user
         $_SESSION['username']=$username;
         // get the time the session started
         $_SESSION['start'] = time();
         session_regenerate_id();
         header("Location: $redirect");
         exit;
        } else {
        // if no match, prepare error message
         $error = 'Invalid username or password';
        } 
      ?>
session\u start()
以及
session\u regenerate\u id()
应放在php脚本的开头之后,然后再进行任何其他输出

由于并非总是可以通过在程序开始处放置
ob_start()
来设置输出缓冲

阅读以下文章可能会对您有所帮助:

  • ]

首先打开错误报告。如何打开错误报告?查看此处:和内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。请与服务器管理员联系,webmaster@george-paterson.co.uk并通知他们错误发生的时间,以及您可能采取的任何可能导致错误的措施。有关此错误的详细信息,请参阅服务器错误日志。此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误。这不会改变任何事情。您需要获得准确的错误消息,而不是500服务器错误。试试这个: