За последние 24 часа нас посетили 51320 программистов и 1758 роботов. Сейчас ищут 754 программиста ...

Перенаправление ПХП

Тема в разделе "Прочие вопросы по PHP", создана пользователем SkipTyler, 5 июл 2015.

  1. SkipTyler

    SkipTyler Новичок

    С нами с:
    5 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Всем привет, может не правильно указал название темы, но сейчас все опишу.
    В общем делаю я сайт на диплом. Есть страница регистрации, после того как клиент успешно зарегистрировался его перекидает на страницу где пишет
    В коде я так понимаю это записано тут
    Код (PHP):
    1. $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
    2. // Проверяем, есть ли ошибки
    3. if ($result2=='TRUE')
    4. {
    5. echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
    6. } 
    Что я хочу. Что бы например меня перенаправляло на страницу которую я впишу, на пример это будет page2.php

    Вот весь код
    Код (PHP):
    1. <HTML>
    2. <HEAD>
    3. <meta charset="utf-8">
    4. <?php
    5.     if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    6.     if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    7.     //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
    8.  if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    9.     {
    10.     exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля! <a href='reg.php'>Сторінка реєстрації</a>");
    11.     }
    12.     //если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    13.     $login = stripslashes($login);
    14.     $login = htmlspecialchars($login);
    15.  $password = stripslashes($password);
    16.     $password = htmlspecialchars($password);
    17.  //удаляем лишние пробелы
    18.     $login = trim($login);
    19.     $password = trim($password);
    20.  // подключаемся к базе
    21.     include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
    22.  // проверка на существование пользователя с таким же логином
    23.     $result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
    24.     $myrow = mysql_fetch_array($result);
    25.     if (!empty($myrow['id'])) {
    26.     exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин. <a href='reg.php'>Сторінка реєстрації</a>");
    27.     }
    28.  // если такого нет, то сохраняем данные
    29.     $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
    30.     // Проверяем, есть ли ошибки
    31.     if ($result2=='TRUE')
    32.     {
    33.     echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
    34.     }
    35.  else {
    36.     echo "Ошибка! Вы не зарегистрированы.<a href='reg.php'>Сторінка реєстрації</a>";
    37.     }
    38.     ?>
    39.     </HTML>
    Если что то не правильно описал, извиняйте. Если еще нужна какая то информация, пишите, добавлю.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    вставь header("location: page2.php");
    туда, где тебе нужно перенаправление.

    Добавлено спустя 1 минуту 16 секунд:
    однако такой момент сработает только в том случае, если перед этим у тебя нет никаких выводов с помощью echo/print
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Перенаправление можно сделать с помощью заголовка location (http://php.net/header) или с помощью мета-тега в html.
     
  4. SkipTyler

    SkipTyler Новичок

    С нами с:
    5 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Вот такая вот ересть получается, я так понимаю проблема в том что у меня до этого есть выводы с помощью echo/print
    Ошибка в 33 строке тоесть та что я изменил
    Код (PHP):
    1. $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
    2.     // Проверяем, есть ли ошибки
    3.     if ($result2=='TRUE')
    4.     {
    5.     header("location: page2.php"); //33 строка
    6.     } 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    ахтунг! В будущем mysql_query может кинуть ошибку.

    так зачем делать? вы сами подумайте
    Если хотите сначала показать какой то текст на страничке а потом перенаправить, то meta refresh
    Код (PHP):
    1. <meta http-equiv="refresh" content="2;URL='http://thetudors.example.com/'" /> //Через две секунду будет перенаправление на http://thetudors.example.com/       
    в другом случае, можно использовать header
    Код (PHP):
    1. header('Location: http://www.example.com/');
    http://php.net/manual/ru/function.header
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  7. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а теперь подумай обязательно ли так делать))))
     
  8. SkipTyler

    SkipTyler Новичок

    С нами с:
    5 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    если использую это, то появляется такая ошибка
    записал это так
    Код (PHP):
    1. $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
    2.     // Проверяем, есть ли ошибки
    3.     if ($result2=='TRUE')
    4.     {
    5.     header("location: page2.php"); 
    6.     } 
    Вы извините, если что, просто делал все при помощи гугла и всяких видео уроков.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    тебе vs дал ссылку почитай почему так.
    Ну, кто делает, а кто нет. Ведь бывают случаи когда надо.) Вообще я использую header переадрессацию, и на той же странице приветстую пользователя.
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    да это и так ясно =)
     
  11. SkipTyler

    SkipTyler Новичок

    С нами с:
    5 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    тебе vs дал ссылку почитай почему так.
    Убрал HTML теги, не помогло, я так понимаю проблему может создавать это
    Код (PHP):
    1. if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    2.     {
    3.     exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля! <a href='reg.php'>Сторінка реєстрації</a>");
    4.     } 
    Ехит тоже как то влияет? Или нет. Вы извините что надоедаю. Просто хочу разобраться)

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    вот же твоя ошибка явно указана
     
  13. SkipTyler

    SkipTyler Новичок

    С нами с:
    5 июл 2015
    Сообщения:
    7
    Симпатии:
    0
    Ну это и есть строка 33
    Код (PHP):
    1. $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
    2.     // Проверяем, есть ли ошибки
    3.     if ($result2=='TRUE')
    4.     {
    5.     header("location: page2.php"); // строка 33
    6.     }
    7.  
    Добавлено спустя 19 минут 12 секунд:
    Всем спасибо. Проблему решил.
    Убрал
    Код (PHP):
    1. <HTML>
    2. <HEAD>
    3. <meta charset="utf-8"> 
    Тему можно крыть.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]