2015-04-20 31 views
2

我創建了一個在本地主機上正常工作的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); 
+0

嘿男人你得到身份證,並將其分配給電話,然後使用它對電子郵件字段來檢查記錄。這是總的混亂 –

+0

看看這是否有幫助。 mysql擴展在php 5.5中被棄用http://php.net/manual/en/function.mysql-select-db.php – Patrick

+0

什麼是你的PHP版本?你能告訴我你的phpinfo() –

回答

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。

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... 
} 

上述意味着,如果:

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

我仍然可以喝「果汁


二:

一)確保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"); 

任何錯誤?不,很好,繼續添加小部分代碼,直到找到責任浪費你生命中的3天。

嘗試以上之後,我將重複自己,在嘗試上述後,如果您仍有問題,請在我的答案下方留言,我會盡力幫助您。

+1

尼斯解釋upvote for –

+0

@Pedro Lobito我檢查了您指出的第一個錯誤。我在該代碼片段中找不到任何問題。首先,我是檢查兩個字段是否填充。如果填充,我從數據庫中檢索它的條目以檢查它是否存在於數據庫中。如果條目已經存在,則用戶可以不登錄。 請您詳細說明您指出的錯誤。 –

+0

第1部分:用戶可以輸入任何「電話」和「密碼」,只檢查該字段是否爲空。這是一個問題,但現在不是你最大的問題。在第3部分中:您是否嘗試添加更多代碼?如果是這樣,你是否得到任何錯誤? –

0

mysql_real_escape_string函數已從PHP 4.3.0中棄用,將來會被刪除。在最新版本的PHP中,它會拋出警告消息。如果任何消息(文本/警告/錯誤)將打印在頁面中在header函數之前,那麼它將不會重定向。

可能在這裏它不允許建立與DB的連接。您可以使用mysqli函數。

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"); 
?> 
+0

爲了讓您的答案更有效,您應該提供一些背景。你有什麼改變? OP代碼有什麼問題? –

+0

你剛剛刪除了你的問題,而不是修復,並按建議改進它? – halfer

相關問題