页面在localhost上工作正常但不在托管服务器上运行

时间:2015-04-20 16:59:15

标签: php mysql database mysqli

我创建了一个PHP网站,它在我的本地主机上工作正常但是当我在服务器上上传相同的代码时,它会在服务器上显示空白页面。

问题我怀疑是在我的代码中我使用数据库连接( dbc.php ),我的页面变得空白。当我删除该数据库连接代码时,它很好。

我正在输入登录代码和dbc.php。

我的login.php代码

<?php


include('dbc.php');


 // get form data, making sure it is valid
 $phone = mysql_real_escape_string(htmlspecialchars($_POST['id']));
 $pass = mysql_real_escape_string(htmlspecialchars($_POST['password']));

 // check to make sure both fields are entered
 if ($phone == '' || $pass == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, display the form again
header("Location: " .$_SERVER['HTTP_REFERER']);
 } 
 else
 {
 // save the data to the database

    $login_sql=mysql_query("select * from member where email='$phone' and  password='$pass'")
    or die(mysql_error()); 
    $num=mysql_num_rows($login_sql);

    if($num>0)
    {
     session_start();
     $admin_data=mysql_fetch_array($login_sql);
     $_SESSION['usermatri_id']=$admin_data['mid'];


        if($admin_data['mid']>0)
            {
                 header("Location: dashboard.php"); 

            }
        else 
            {
                header("location:".$_SERVER["HTTP_REFERER"]);
            }

     exit;
     }
 else{

    header("location:".$_SERVER["HTTP_REFERER"]);
 }
 }



  // if the form hasn't been submitted, display the form


?>

我的dbc.php代码

<?php
//connection to the database
mysql_connect("localhost","root","")or die(mysql_error('cannot connect'));
mysql_select_db("matrimony");
?>

1)我尝试了这些问题,但没有运作

PHP is not working on server

PHP redirect not working on server

2)我也尝试添加错误检查,网页上没有显示任何内容,甚至尝试通过cPanel错误日志。

ini_set('display_errors',1); 
 error_reporting(E_ALL);

5 个答案:

答案 0 :(得分:4)

第一

以下代码方式错误......

 if ($phone == '' || $pass == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, display the form again
header("Location: " .$_SERVER['HTTP_REFERER']);
 } else{
//the juice...
}

以上意味着:if:

$_POST['id'] = 123456;
$_POST['password'] = 123456;

我仍然可以喝&#34; 果汁&#34;


第二

a)确保MySql服务器已启动并运行 b)确保您正在尝试访问的数据库和表格已正确导入 c)还要确保您具有访问该特定数据库的权限。


第三

从小处开始

只需将以下内容添加到您的脚本中:

ini_set('display_errors',1); 
error_reporting(E_ALL);

mysql_connect("localhost","root","")or die(mysql_error('cannot connect'));
mysql_select_db("matrimony");

有任何错误吗?不,好,继续添加一小段代码,直到你找到负责你生命中浪费的三天。

在尝试上述内容后,我会重复自己,在尝试上述之后如果您仍有问题,请在我的回答下方发表评论,我会尝试进一步帮助您

答案 1 :(得分:1)

我认为@Pedro Lobito以一种好的方式赦免了所有可能的灵魂,你应该考虑按照他的建议逐步完成。

但是现在你可以尝试编辑你的

  

的login.php

像这样,我希望这会有所帮助,但也可以尝试@Pedro回答。

<?php
 $mail = $_POST['id'];
 $pass = $_POST['password'];
// check to make sure both fields are entered
 if ($mail == '' || $pass == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, display the form again
header("Location: " .$_SERVER['HTTP_REFERER']);
 } 
else 

{
         include('dbc.php');
         $sql=mysql_query("SELECT * from member where email='$mail' and  password='$pass'")or die(mysql_error());
         $num=mysql_num_rows($sql);
         if($num>0)
     {
               $admin_data=mysql_fetch_array($sql);
           session_start();
           $_SESSION['usermatri_id']=$admin_data['mid'];

           header("Location: dashboard.php");    

        }
     else 
     {
        header('Location:' . $_SERVER['PHP_SELF']);
     }


}

?>

欢迎使用Stackoverflow。

答案 2 :(得分:0)

mysql_real_escape_string函数已从PHP 4.3.0中弃用,并将在以后删除。在最新版本的PHP中,它会抛出一条警告消息。如果打印出任何消息(文本/警告/错误)在header函数之前的页面中,它不会重定向。

可能在这里不允许与DB建立连接。您可以使用mysqli函数。

答案 3 :(得分:0)

    //index.php
<?php
$conn = mysqli_connect("localhost","root","","md5login");
session_start();

if (isset($_SESSION["Email"]))
{
    header("location:welcome.php");
}
if (isset($_POST["register"]))
{
    if (empty($_POST["Email"]) && empty($_POST["Password"]))
    {
        echo '<script>alert("Both Field Are Required")</script>';
    }
    else
        {
        $Email = mysqli_real_escape_string($conn, $_POST["Email"]);
        $Password = mysqli_real_escape_string($conn, $_POST["Password"]);
        $Password = md5($Password);
        $query = "INSERT INTO client (Email, Password) VALUES('$Email','$Password')";
        if (mysqli_query($conn, $query))
        {
            echo '<script>alert("Rgistration Done")</script>';
        }
    }
}
    if (isset($_POST["login"]))
    {
        if (empty($_POST["Email"]) && empty($_POST["Password"]))
        {
          echo '<script>alert("Both r Required")</script>';
        }
        else
        {
            $Email = mysqli_real_escape_string($conn, $_POST["Email"]);
            $Password = mysqli_real_escape_string($conn, $_POST["Password"]);
            $Password = md5($Password);

            $query = "SELECT * FROM client WHERE Email = '$Email' AND Password = '$Password'";
            $result = mysqli_query($conn, $query);

            if (mysqli_num_rows($result) > 0)
            {
                $_SESSION['Email'] = $Email;
                header("location:welcome.php");

            }
            else
            {
                echo '<script>alert("Wrong User Details")</script>';
            }
        }
    }

?>
<html>
<head>
    <title>Login And Registeration</title>
</head>
<body>
<div class="container" style="width:500px;">
<h3 align="center"> Login And Register </h3>
    <br>
    <?php
    if (isset($_GET["action"]) == "login")
    {
    ?>
    <h3 align="center">Login</h3>
    <br>
        <form method="post">
            <label>Enter Email</label>
            <input type="text" name="Email">
            <br/>
            <label>Enter Password</label>
            <input type="text" name="Password">
            <br/>
            <input type="submit" name="login" value="Login">
            <br/>
            <p align="center"><a href="index.php">Register</a></p>
        </form>
    <?php
    }
    else
    {
    ?>
        <h3 align="center">Register</h3>
        <br>
        <form method="post">
            <label>Enter Email</label>
            <input type="text" name="Email">
            <br/>
            <label>Enter Password</label>
            <input type="text" name="Password">
            <br/>
            <input type="submit" name="register" value="register">
            <br/>
            <p align="center"><a href="index.php?action=login">Login</a></p>
        </form>
    <?php
    }
    ?>


</div>
</body>
</html>

//welcome.php
<?php
session_start();
if (!isset($_SESSION["Email"]))
{
    header("location:index.php?action=login");
}
?>
<html>
<head>
    <title>Welcome Page</title>
</head>
<body>
<?php
echo '<h2>Welcome - '.$_SESSION["Email"].'</h2>';
echo '<a href="logout.php">Logout </a>';
?>

</body>
</html>

//logout.php

<?php
session_start();
session_destroy();
header("location:index.php?action=login");
?>

答案 4 :(得分:0)

我遇到了这个问题,几乎流下了眼泪。我答应共享链接时,客户在等我。现在要解决此问题,您将执行许多故障排除:

  1. 检查是否正确加载了所有cssjs文件。确定。

  2. css个文件中删除注释。非常重要。

  3. 更新jquery。如果可能,请使用CDN。不要使用slim,因为某些功能会引发错误。

  4. 检查数据库连接是否密码正确。

  5. 检查您的php文件是否有错误,将以下内容放在标头php标签中

    ni_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(E_ALL);

对于我来说,这是jquery文件无法正常工作,而css文件中存在注释。还加载不在目录中的文件,例如说href =“ assets / css / main.css”而不在目录中。