2015-04-20 4 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) Убедитесь, что DB и таблица, к которой вы пытаетесь получить доступ, были правильно импортированы.
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

Nice Explanation upvote для этого –

+0

@Pedro Lobito Я проверил первую ошибку, указанную вами. Я не смог найти ни одного пробника в этом фрагменте кода. Во-первых, я проверяя, заполнены ли эти два поля или нет. Если я заполняю, я извлекаю его запись из базы данных, чтобы проверить, присутствует ли она в базе данных. Если запись уже присутствует, пользователю разрешен вход в систему иначе. Не могли бы вы продумать ошибку, как указано вами. –

+0

Часть 1: Пользователь может вводить что угодно для 'phone' и' password', вы только проверяете, пустое ли поле. Это проблема, но пока не ваша самая большая. В третьей части: вы пытались добавить еще код? если это так, вы получили какие-либо ошибки? –

0

mysql_real_escape_string функция устарела из PHP 4.3.0 и будет удалена в будущем. В последней версии PHP она выдает предупреждение. Если любое сообщение (текст/предупреждение/ошибка) будет напечатано на странице перед header функция, то она не будет перенаправлена.

Возможно, здесь не разрешено устанавливать соединение с БД. Для этого вы можете использовать функции 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

Смежные вопросы