Пожалуйста, может кто-нибудь помочь. Когда пользователи отправляют данные через регистрационную форму или форму входа, если данные действительны, они работают нормально, но если они недействительны. Ошибки отображаются на белой странице. Белая страница не пуста, но отображает установленную мной ошибку. Она перенаправляет на мой URL-адрес. Просто не показывает никакого другого контента, кроме ошибки. идти об этом .. Я проверил журнал ошибок в моих файлах журнала Apache. Там нет сообщений об ошибках там .. Я очень запутался
Я также пытался использовать
error_reporting(E_ALL);
ini_set("display_errors", TRUE);
ini_set("display_startup_errors",TRUE);
ini_set("html_errors",0);
Все еще ничего не показывает ..
Попробовал взломать его, изменив
header("Location: $comeFrom");
echo "MY ERROR HERE"die;
к
header("refresh:0; url=$comeFrom");
echo "MY ERROR HERE"die;
который просто показывает тот же WSOD с моей ошибкой, и кратко перенаправляет, как предполагается, но я хочу, чтобы ошибка отображалась после загрузки страницы, а не до. Что для меня невозможно.
Пожалуйста, кто-нибудь, помогите мне .. Действительно расстроен
П.С.
$comeFrom = $_SERVER['HTTP_REFERER'];
Все еще пытался перенаправить на страницу индекса .. Та же проблема ..
Это мой файл search.php
<?php
session_start();
include_once('db.php');
if(!isset($_GET['page']) or $_GET['page']==0 or !preg_match("/^[1-9]*$/", $_GET['page'])){
header("Location: search.php?q=$_GET[q]&page=1");
}else{
$page = $_GET['page'];
}
if (isset($_GET['q']) and !empty($_GET['q'])){
$search=stripslashes(mysqli_real_escape_string($conn,$_GET["q"]));
$do="INSERT INTO search_terms".
"(terms)".
"VALUES".
"('$search')";
mysqli_query ($conn,$do);
}else{
header ("Location: index.php");
}
$pagetitle = "Search";
include_once('includes/header.php');
include_once('includes/log_reg.php');
?>
<body>
<div class="search_body">
<button id="goback" onclick="back()" type="button">Go back</button>
<button id="goforward" onclick="forward()" type="button">Go Forward</button>
<div class="tab">
<button class="tablinks" id="defaultOpen" onclick="openTab(event,'Products')">Properties</button>
<button class="tablinks" onclick="openTab(event, 'Forum')">Forum</button>
<button class="tablinks" onclick="openTab(event, 'Users')">Users</button>
</div>
<div id="Products" class="tabcontents">
<?php
include_once('db.php');
$per_page=6;
$start = (($page - 1) * $per_page);
$sql="SELECT * FROM table LIKE '%$search%'";
$pages_query=mysqli_query($conn,$sql) or die("Bad Query: $sql");
$number = mysqli_num_rows($pages_query);
$number = number_format($number);
ceil($pages = $number/$per_page);
$sql2="SELECT * FROM table LIMIT $start,$per_page";
$result = mysqli_query ($conn,$sql2);
if ($number == 0) {
echo " ";}else{
if($page > 1){
echo "<a class='pagination' href=search.php?q=$_GET[q]&page=1>FIRST</a>";
if ($page > 2){
echo "<a class='pagination' href=search.php?q=$_GET[q]&page=". ($page - 2).">≪</a>";
}
echo "<a class='pagination' href=search.php?q=$_GET[q]&page=".($page - 1)."><</a>";
}
}
$skipped = false;
for ($i = 1; $i <= $pages + 1; $i++) {
if ($page == $i){
echo "<a class='actived' href=search.php?q=$_GET[q]&page=".$i.">".$i."</a>";
}else{
if ($i < 1 || ($pages) - $i < 1 || abs($page - $i) < 2) {
if($skipped)
echo '<span> ... </span>';
$skipped = false;
echo "<a class='pagination' href=search.php?q=$_GET[q]&page=".$i.">".$i."</a>";
}else{
$skipped = true;
}
}
}
if ($number == 0) {
echo "";
}else{
if($page < $pages){
echo "<a class='pagination' href=search.php?q=$_GET[q]&page=".($page + 1).">></a>";
if ($page < ($pages - 1)){
echo "<a class='pagination' href=search.php?q=$_GET[q]&page=".($page + 2).">≫</a>";
}
echo "<a class='pagination' href=search.php?q=$_GET[q]&page=".ceil($pages).">LAST</a>";
}
if ($page == 1){
if ($number < $per_page ) {
echo "<br> Current page: $page <small>(Showing 1-$number of $number results)</small>";
}else{
echo "<br> Current page: $page <small>(Showing 1-$per_page of $number results)</small>";
}}elseif ($page > 1){
if ($page == ceil($pages)) {
if ($number % 2 == 1){
if($page = $pages){
$cal = $number % $per_page;
$cal2 = ($number - $cal) + 1;
echo "<br> Current page: ". ceil($page). " <small>(Showing result ".$cal2. "-".($number)." of $number)</small>";
}else{
echo "<br> Current page: $page <small>(Showing ".($start + 1)."-".($start + ($per_page - 1)) ." of $number)</small>";
}}elseif ($number % 2 == 0 and $page=$pages){
$cal = $number % $start;
$cal2 = ($number - $cal) + 1;
echo "<br> Current page: ".ceil($page)." <small>(Showing result ".$cal2. "-".($number)." of $number)</small>";
}elseif ($number % 2 == 0){
echo "<br> Current page: $page <small>(Showing ".($start + 1)."-". ($start + ($per_page)) ." of $number)</small>";
}
}else{
echo "<br> Current page: $page <small>(Showing ".($start + 1)."-".($start + $per_page) ." of $number)</small>";
}
}
}
if ($number>0){
echo "<p id='search'>" .$number. " results found for '$search' in </p>";
} else{
echo "<p id='search'>" .$number. " results found for '$search'. Try a different search term </p>";
}
echo "<h3>tab 1</h3>";
echo "<div class='my_results'>"?>
<?php
while($row=mysqli_fetch_assoc($result)){
$calc = round(3/2.7, 1);
?>
<div class="results">
//results here
</div>
<?php } ?>
мой заголовочный файл из кода выше содержит это
<?php
$root= $_SERVER['DOCUMENT_ROOT'];
include($root."/db.php");
$prefix = 'http://'.$_SERVER['SERVER_NAME'].'/';
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
ini_set('html_errors', 0);
if (isset($_POST['login'])){
require_once($root."/Hostels/login.inc.php");
}if (isset($_POST['register'])){
require_once($root."/Hostels/register.inc.php");
}
?>
И мой log_reg include больше похож на файл входа в систему pop_up, который был включен на всех страницах, а для submision требуется файл register.inc.php, приведенный ниже.
Это мой файл register.inc.php
<?php
include('db.php');
$comeFrom = $_SERVER['HTTP_REFERER'];
//session variables to be diaplayed on the profile
if ($_SERVER["REQUEST_METHOD"]==="POST"){
$_SESSION['username']=$_POST['username'];
$_SESSION['firstname']=$_POST['firstname'];
$_SESSION['lastname']=$_POST['lastname'];
$_SESSION['email']=$_POST['email'];
$_SESSION['gender']=$_POST['gender'];
$_SESSION['state']=$_POST['state'];
$_SESSION['dob']=$_POST['dob'];
$user['user_id']=@$_SESSION['user_id'];
//escaping the strings
$username=mysqli_real_escape_string($conn,$_POST['username']);
$firstname=mysqli_real_escape_string($conn,$_POST['firstname']);
$lastname=mysqli_real_escape_string($conn,$_POST['lastname']);
$email=mysqli_real_escape_string($conn,$_POST['email']);
$gender=mysqli_real_escape_string($conn,$_POST['gender']);
$state=mysqli_real_escape_string($conn,$_POST['state']);
$dob=mysqli_real_escape_string($conn,$_POST['dob']);
$password=mysqli_real_escape_string($conn,password_hash($_POST['password'],PASSWORD_BCRYPT));
$hash=mysqli_real_escape_string($conn,md5(uniqid(rand())));
$result=mysqli_query($conn,"SELECT * FROM users WHERE email='$email' OR username='$username'");
if (strlen($username)<3) {
header ("Locaton: $comeFrom", true);
?>
<div id='error1' class= "alert alert-danger" style="position:absolute;z-index:1000;top:30px;left:50%;"><?php echo "Username should be atleast 3 characters";?><span class="closeerror" onclick="document.getElementById('error1').style.display='none'">× </span></div>
<?php
die;
}elseif (strlen($firstname)<3) {
header ("Locaton: $comeFrom", true);
?>
<div id='error2' class= "alert alert-danger" style="position:absolute;z-index:1000;top:30px;left:50%;"><?php echo "Firstname should be atleast 3 characters";?><span class="closeerror" onclick="document.getElementById('error2').style.display='none'">×</span></div>
<?php
die;
}elseif (strlen($lastname)<3) {
header ("Locaton: $comeFrom", true); ;
?>
<div id='error3' class= "alert alert-danger" style="position:absolute;z-index:1000;top:30px;left:50%;"><?php echo "Lastname should be atleast 3 characters";?><span class="closeerror" onclick="document.getElementById('error3').style.display='none'">×</span></div>
<?php
die;
}elseif(strlen($_POST["password"])<8) {
header ("Locaton: $comeFrom", true);
?>
<div id='error4' class= "alert alert-danger" style="position:absolute;z-index:1000;top:30px;left:50%;"><?php echo "Password must be atleast eight characters long";?><span class="closeerror" onclick="document.getElementById('error4').style.display='none'">×</span></div>
<?php
die;
}elseif($_POST["password"] != $_POST["confirm_password"]) {
header ("Locaton: $comeFrom", true);
?>
<div id='error5' class= "alert alert-danger" style="position:absolute;z-index:1000;top:30px;left:50%;"><?php echo "Password in both fields do not match, please try again.";?><span class="closeerror" onclick="document.getElementById('error5').style.display='none'">×</span></div>
<?php
die;
}
if(mysqli_num_rows($result)>0){
header ("Locaton: $comeFrom", true);
?>
<div id='error6' class= "alert alert-danger" style="position:absolute;z-index:1000;top:3%;left:50%;"><?php echo "Email or username is already in use, please enter another";?><span class="closeerror" onclick="document.getElementById('error6').style.display='none'">×</span></div>
<?php
die;
}else{//does not exist so we proceed and add user to database
$sql="INSERT INTO users".
"(username,firstname,lastname,email,gender,state,dob,password,hash)".
"VALUES".
"('$username','$firstname','$lastname','$email','$gender','$state','$dob','$p assword','$hash');";
mysqli_query($conn,$sql);
$sql2="SELECT * FROM users WHERE username='$username' AND firstname='$firstname'";
$result=mysqli_query($conn,$sql2);
if(mysqli_num_rows($result)>0){
while($user=mysqli_fetch_assoc($result)){
$user_id=$user["user_id"];
$sqlimg="INSERT INTO profile_img".
"(user_id)".
"VALUES".
"('$user_id');";
mysqli_query($conn,$sqlimg);
}
}else{
$_SESSION["error"]="Error signing up, please try again or contact us to rectify";
}
$_SESSION["active"]=0;
$user['user_id']=@$_SESSION['user_id'];
//know when the user is logged in
$_SESSION["logged_in"]=false;
if($_SESSION["logged_in"]=false){
$sqli="SELECT * FROM user WHERE email='$email' and username='$username'";
$result=mysqli_query($conn,$sqli);
while($user=mysqli_fetch_assoc($result)){
$user['user_id']=$_SESSION["user_id"];
}
}
$_SESSION["message"]=
"Confirmation message has been sent to your email, please click on the link for full account activation";
$to=$email;
$subject="Account Verification";
$message_body='
<html>
<head>
<title>Mail Confirmation</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<style>
</style>
</head>
<body>
<span class="name">Hello <span class="user">'.$username.',</span> <br></span><br>
<div class="message">
Thank you for signing up with us, we will do our best to provide you with an awesome experience.<br>
However, your account needs to be fully active, click on the button below to activate your account:<br><br>
<a class="btn-new" href="http://localhost/login-system /verify.php?email='.$email. '&hash='.$hash. '">Verify Me</a>
</div>
</body></html>';
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-type: text/html; charset=UTF-8';
// Additional headers
$headers[] = 'From:';
$headers[] = 'Cc: [email protected]';
$headers[] = 'Bcc: [email protected]';
// Mail it
mail($to, $subject, $message_body, implode("\r\n", $headers));
$_SESSION['success']="Hello $username!!! Registration was successful, please proceed to login. Thank you";
}}else{
$_SESSION["error"]="Registration failed";
}
mysqli_close($conn);
?>
Поэтому при успешном завершении он отправляет мне электронное письмо, используя мой smtp4dev. Но если произойдет ошибка. Переходит на белую страницу и отображает только ошибку без другого HTML-контента.
Я прошу прощения, если коды грязные, плохо знакомы с переполнением стека. заранее спасибо
Спасибо, я разобрался с этим, он не сообщал о какой-либо ошибке, потому что на самом деле не было ошибок, чтобы сообщить … Я просто поместил файл log_reg перед моим кодом, который убивал другие выходные данные, которые следуют из-за вызова Die (). Я только взял файл include («log_reg») внизу страницы, и он был отсортирован .. Просто, если кто-нибудь сталкивается с чем-то похожим ..
Других решений пока нет …