За последние 24 часа нас посетили 16480 программистов и 1562 робота. Сейчас ищет 2051 программист ...

Формирование ссылки исходя из запроса в поиске

Тема в разделе "PHP для новичков", создана пользователем Anatoliy0909, 27 июл 2022.

  1. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0
    Всем спасибо большое, указал action="/index.php" переходит на первую страницу с адресом index.php?s=(любое число), подскажите пожалуйста может полезные темы на форуме, как сделать переадресацию на нужную мне страницу исходя из веденного номера? На страницу /index-12345.php, /index-12346.php, /index-12347.php и т.д.
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Пока не будет вменяемого ответа, зачем это нужно, лень отвечать. Вы можете выводить разные страницы прямо по адресу /index.php?s=(любое число). В зависимости от параметра (любое число).
     
  3. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0
    Это будет моя страница доставки для работы, у клиента отправление 12345, он заходит по на страницу отслеживания http://a90312ro.beget.tech/index-2.php вводит номер отправления и его перекидывает на страницу его отправления, где будет указана информация о заказе http://a90312ro.beget.tech/index-12345.php
     
  4. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    В параметре action формы указывают как раз адрес скрипта, который обрабатывает запрос. Если не указывать, то параметры будут передаваться на ту же страницу. Доступны как элементы массива $_GET или $_POST в зависимости от того какой метод указан в форме. Например в твоей форме есть поле с именем s. В скрипте-обработчике оно будет доступно как $_GET['s']. Дальше его можно использовать для сравнения с образцом.
    Код (Text):
    1. if ($_GET['s'] =='12345') {
    2. //перенаправляем на другую страницу
    3. }
    4. else
    5. {
    6. echo 'Проверьте введенные данные';
    7. }
     
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    И что будете вручную создавать такие файлы? :) С таким же успехом можно было и html-файлы создавать, например index-12345.html, но это все равно тупо, т.к. страницы шаблонные.
     
  6. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Осталось только узнать про header()
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Ему шаблонная переадресация нужна ;)
     
  8. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Пиши пока я здесь
    --- Добавлено ---
    PHP:
    1. <?php
    2. if (isset($_GET['s'])) {
    3. switch($_GET['s']) {
    4. case '12345':
    5. header('Location: firma.php'); exit();
    6. case '22222':
    7. header('Location: price.php'); exit();
    8. case '33333':
    9. header('Location: contact.php'); exit();
    10. default:
    11. header('Location: index.php'); exit();
    12. }
    13. }
    14. else {
    15. header('Location: index.php'); exit();
    16. }
    17. ?>
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    :eek:
     
  10. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Конечно надо присвоить это значение переменной и с ней работать. Но для объяснения пойдет.
     
  11. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0
    Спасибо большое, попробую разобраться что куда
     
  12. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0

    Привет, подскажи пожалуйста, как в параметре action правильно указать адрес скрипта?
     
  13. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    какое имя файла который отвечает за обработку?
     
  14. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0
    А вот оно в чём дело)) а я пытаюсь этот скрипт прилепить куда то в
    <form action=index.php method="get">
    <input name="s" placeholder="Введите номер отправления" type="search">
    <button type="submit">Поиск</button>
    </form>
    Буду рыть форум как сделать этот файл, спасибо
     
  15. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Ты можешь вверху файла index.php сделать блок кода php:
    Код (Text):
    1. <?php
    2. //твой код
    3. ?>
    а дальше форма
     
  16. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0
    <?php
    if ($_GET['s'] =='12345') {
    //index-12345.php
    }
    else
    header('Location: http://a90312ro.beget.tech/index-12345.php');
    exit;
    {
    echo 'Проверьте введенные данные';
    }
    ?>
    <form action=index.php method="get">
    <input name="s" placeholder="Введите номер отправления" type="search">
    <button type="submit">Поиск</button>
    </form>

    Я всё делаю не так, для меня проще будет наверное просто убрать это поле, и отправлять ссылки в ручную, будь как будет. Спасибо всем, что отозвались)
     
  17. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Кому отправлять ссылки? Вы же сказали, что это учебка :rolleyes:
     
    #42 miketomlin, 28 июл 2022
    Последнее редактирование: 28 июл 2022
  18. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0
    Пока учебка, в дальнейшем хочу заниматься доставкой мелких товаров по городу и области.
     
  19. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    А по этому адресу http://a90312ro.beget.tech/index-12345.php что нибудь есть? Чей это сервер? Если твой то в файле index-12345.php должен быть код.
    --- Добавлено ---
    Вообще на каком сервере ты размещаешь свои скрипты?
    --- Добавлено ---
    оказывается есть такой сайт и ссылка рабочая.
    --- Добавлено ---
    Так тебе нужно формировать ссылку после того как ты вводишь код в форму?
    --- Добавлено ---
    Где ты создаешь свой код?
     
  20. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0

    На хостинге beget, код пробовал вставлять тут index-12345.php и на index-2.php ссылку я создал index-12345.php и хотел, чтоб по запросу 12345 со страницы index-2.php перекидывало на index-12345.php
     
  21. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    Так учитесь, а не упорствуйте в изобретении какой-то хрени. И, да, учиться нужно будет несколько лет. Пока что я вижу нулевичка, пытающегося заполучить код, который нужен уже завтра.
     
    Anatoliy0909 нравится это.
  22. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Кажется получилось...
    HTML:
    1. <form onsubmit="return send();">
    2. <input type="text" name="txt" id="address">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <script type="text/javascript">
    6. function send(){
    7.     var address = document.forms[0].address.value;
    8.     console.log(address);
    9.     var link = document.createElement("a"); // Создаем ссылку
    10.     //URL-адрес ссылки
    11.     link.href = 'http://a90312ro.beget.tech/index-'+address+'.php';
    12.     //текст ссылки
    13.     var link_text = document.createTextNode(link.href);
    14.     // Добавляем текст в ссылку
    15.     link.appendChild(link_text);
    16.     //добавляем ссылку в документ
    17.     document.body.appendChild(link);
    18.     return false;
    19. }
    20. </body>
    21. </html>
    Вот файл. Создать текстовый файл в блокноте и назвать его форма.html
     
    #47 antoniii, 28 июл 2022
    Последнее редактирование: 28 июл 2022
  23. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Вот немного улучшил результат:
    HTML:
    1. <form onsubmit="return send();">
    2. <input type="text" name="txt" id="address">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <script type="text/javascript">
    6. function send(){
    7.     var address = document.forms[0].address.value;
    8.     //console.log(address);
    9.     var link = document.createElement("a"); // Создаем ссылку
    10.     //URL-адрес ссылки
    11.     link.href = 'http://a90312ro.beget.tech/index-'+address+'.php';
    12.     //текст ссылки
    13.     var link_text = document.createTextNode(link.href);
    14.     // Добавляем текст в ссылку
    15.     link.appendChild(link_text);
    16.     //добавляем ссылку в документ
    17.     var br = document.createElement("br");
    18.     document.body.appendChild(br);
    19.     document.body.appendChild(link);
    20.     return false;
    21. }
    22. </body>
    23. </html>
    Добавил перенос строки
     
    Anatoliy0909 нравится это.
  24. Anatoliy0909

    Anatoliy0909 Новичок

    С нами с:
    27 июл 2022
    Сообщения:
    17
    Симпатии:
    0

    Привет, огромное тебе спасибо за помощь, сейчас разберусь) Без тебя бы не справился, дальше буду стараться учится сам)
     
  25. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.842
    Симпатии:
    652
    @Anatoliy0909, это не PHP. С этим скриптом и вашим подходом к созданию страниц умнее сделать статический сайт (окромя обработчика формы обратной связи). Хотя статика – та еще древность!

    @antoniii, для редиректа создавать элемент-ссылку не нужно ;)
     
    Anatoliy0909 нравится это.