2015-08-29 3 views
2

Со всем, что я пробовал показывать ошибки, я все еще получаю белый экран смерти.PHP // Белый экран смерти со всеми сообщениями об ошибках

Обратите внимание, что я использую XAMPP для разработки веб-сайта. Есть ли что-нибудь еще, что я мог сделать? Взгляните также на мой код, потому что я понятия не имею, работает ли он.

Код следующее:

<?php 

error_reporting(-1); // Have PHP complain about absolutely everything 
$conf['error_level'] = 2; // Show all messages on your screen, 2 = ERROR_REPORTING_DISPLAY_ALL. 
ini_set('display_errors', TRUE); // These lines just give you content on WSOD pages. 
ini_set('display_startup_errors', TRUE); 

require("dbconn.php"); 
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    $Username = $_POST['username']; #Username 
    $Password = $_POST['password']; #Password 

function InsrtUser() 
{ 
    global $Username,$Password; 
    #Egxwrish stoixeiwn 
    $hashed_pass = PASSWORD_HASH($Password, PASSWORD_DEFAULT); 
    $query = "INSERT INTO users (username,password) VALUES (:username, :password)"; 
    $data = $mysqli->prepare($query); 
    $data->execute(array(':username'=>$Username, ':password'=>$hashed_pass)); 
    if($data->rowCount() > 0) 
    { 
     return "YOUR REGISTRATION IS COMPLETED..."; 
    } 
} 

function Register() 
{ 
    global $Username,$Password; 
    if(!empty($Username)) //checking the 'username' name which is from register.html, if is it empty or have some text 
     { 
       $query = ("SELECT * FROM users WHERE username = :username"); 
       $query = $mysqli->prepare($query); 
       $query->execute(array(':username'=>$Username)); 
       if($query->rowCount() == 0) 
      { 
       $msg = InsrtUser(); 
       echo $msg; 
      } 
      else { 
       echo "SORRY...YOU ARE ALREADY registerED USER...!"; 
       die(); 
      } 

     } 
} 

if(isset($_POST['submit'])) 
{ 
    //User registration 
    Register(); 
    echo "Your account has been created successfully. \\n Thank you for joined us!"; 
    $msgSuccess = "Your account has been created successfully. \\n Thank you for joined us!"; 
     echo 
      "<script> 
      alert('$msgSuccess'); 
      window.location.href='../index.php'; 
      </script>"; 

} 
?> 
+0

Используйте 'error_reporting (E_ALL)' вместо 'error_reporting (-1)'. Также - проверьте файл журнала ошибок. Что-нибудь там интересное? – uri2x

+0

Возможно, это не экран смерти, а '$ _POST ['submit']' не установлен? – chris85

+0

@ uri2x 'E_ALL' эквивалентно' -1' и показывает все ошибки. Руководство PHP: «Передача значения -1 будет показывать все возможные ошибки, даже если новые уровни и константы будут добавлены в будущие версии PHP. Константа E_ALL также ведет себя так же, как и PHP 5.4. ' –

ответ

0

На самом деле это не сценарий экран смерти вы работаете в. Вы выводите контент только в том случае, если установлен $_POST['submit']. Если это не установлено, ничего не выводится, поэтому белый экран (без содержания) является ожидаемым значением, которое вы получаете.

Я предполагаю, что проблема заключается в том, что ваша кнопка отправки не имела атрибута имени submit.

В будущем добавив еще и поможет вам отладить эти ..

if(isset($_POST['submit'])) 
{ 
    //User registration 
    Register(); 
    echo "Your account has been created successfully. \\n Thank you for joined us!"; 
    $msgSuccess = "Your account has been created successfully. \\n Thank you for joined us!"; 
     echo 
      "<script> 
      alert('$msgSuccess'); 
      window.location.href='../index.php'; 
      </script>"; 

} else { 
    echo 'The submit button is not set :('; 
} 
+0

Да, вы правы! Я уже сказал, что в комментариях выше;) – duric

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