2015-05-08 2 views
1

Я искал всюду и пробовал все решения, но он все равно меня не доставил. Вот мой код:перенаправление пользователя на другую страницу с использованием заголовка()

<?php 
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) 

{ 


    header('Location: /public_html/index.php'); 
    exit; 

} 
elseif(!empty($_POST['username']) && !empty($_POST['password'])) 
{ 
    $username = mysql_real_escape_string($_POST['username']); 
    $password = md5(mysql_real_escape_string($_POST['password'])); 

    $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'"); 

    if(mysql_num_rows($checklogin) == 1) 
    { 
     $row = mysql_fetch_array($checklogin); 
     $email = $row['EmailAddress']; 

     $_SESSION['Username'] = $username; 
     $_SESSION['EmailAddress'] = $email; 
     $_SESSION['LoggedIn'] = 1; 

     header('Location: /public_html/index.php'); 
     exit; 
    } 
    else 
    { 
     echo "<h1>Error</h1>"; 
     echo "<p>Sorry, your account could not be found. Please <a href=\"index.php\">click here to try again</a>.</p>"; 
    } 
} 

    ?> 

Когда я загружаю его на свой сервер и логин, он приводит меня на пустую страницу php. Что я делаю неправильно с этим кодом? Я попытался использовать «вместо» .Я пытаюсь перенаправить пользователя на страницу за пределами папки, следовательно, «/ public_html /». Любая помощь будет очень признательна.

+0

Вы, кажется, не имеют 'session_start()'. Кроме того, не существует 'else', который не входит в систему. –

ответ

0

если вне папки, кроме использования

header("Location:../public_html/index.php"); 
+0

Я сделал это, но все тот же результат. – laimingl

0

Я считаю, что вы вы вывода данных перед использованием местоположения заголовка, так что одна вещь.

а) Используйте error_reporting(e_all), и вы сможете увидеть ошибки (в основном, когда фактический выход)

b) Пользователь ob_start() на самом верху PHP-файла, который вызывается первым.

0

Запустив URL-адрес с помощью / и следуя указаниям имени папки, вы хотите перейти в верхний/корневой каталог и указать указанное имя папки.

Например: Как добраться до /public_html означает, что вы перенаправлении http://www.example.com/public_html, которые я считаю, не в вашем Существование случае

Чтобы обойти эту проблему, выполните следующие действия: добавить двойную точку: ..

Доступ к ../public_html означает, что вы перенаправляете с http://www.example.com/some_project/some_folder/ на http://www.example.com/some_project/public_html/ (например).

относятся к ответу Викки,

header("Location:../public_html/index.php"); 
exit(); 

и не забудьте добавить exit(); в конце концов.


Редактировать: Пожалуйста, прекратите использование древнего PHP-MySQL. Там это лучшая альтернатива для вас использовать, для собственной безопасности:

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