php
  • html
  • 2016-12-21 1 views 0 likes 
    0

    У меня есть изображение, которое должно быть перенаправлено на другую страницу при нажатии. Он также «отправляет» две переменные на страницу, s и n.Передача переменных URL-адреса PHP приводит к тому, что страница не найдена

    echo "<a href='../?change-preference&s=up&n=".$element."'> 
         <img src='..media/images/sort-up.png'> 
         </a>"; 
    

    На change-preference странице я получаю две переменные так:

    $s=$_REQUEST['s']; 
    $n=$_REQUEST['n']; 
    

    Моя проблема заключается в том, что я получаю «Страница не найдена» ошибка.

    Кроме того, если я пытаюсь получить доступ непосредственно к странице он работает, но только если я этого типа:

    www.example.com/preference/change-preference

    и нет, если я пытаюсь его:

    www.example.com/preference/change-preference&s=up&n=999

    Любая помощь будет оценена!

    +0

    htaccess переписать вопрос? – JustBaron

    +0

    Рассмотрите возможность использования $ _GET https://stackoverflow.com/questions/1924939/among-request-get-and-post-which-one-is-the-fastest#1924958 – weaveoftheride

    +0

    @arkascha Я пробовал это, но когда он перенаправляется, есть '/' перед переменными. '..eference /? S = & до п = 999'. –

    ответ

    2

    Вы должны использовать:

    www.example.com/preference/change-preference?s=up&n=999 
    
    +0

    Я пытался это сделать, но url становится ' www.example.com/preference/change-preference/? s = up & n = 999', и это снова страница не найдена. –

    +0

    Мысль тоже, но посмотрите на формат URL-адреса, используемый в фрагменте кода php, в отличие от формата в описании ниже. – arkascha

    +0

    @StamatiaCh Использование вашей рамки i.e ZendFramework? Затем проверьте: www.example.com/preference/change-preference/s/up/n/999 – brtsos

    1

    ? используется в неправильном месте, когда вы строите вашу ссылку.

    Вы должны построить свою ссылку следующим образом:

    $element = 900; 
    echo "<a href='../change-preference?s=up&n=" . $element ."'><img src='..media/images/sort-up.png'></a>"; 
    

    Это даст вам:

    www.example.com/preference/change-preference?s=up&n=900 
    

    А в следующей ссылке с вашего вопросе ? отсутствует, что не будет работать:

    www.example.com/preference/change-preference&s=up&n=999 
    
    0

    Сначала вы используете ? в неправильном формате e, как указал Daniel_ZA, или вы набрали неверно на свой вопрос URL-адрес, который действительно работает. Для этого ответа я предполагаю, что это первый случай.

    Во-вторых, у вас есть файл php с именем «change-preferences» без расширения .php? Он анализируется через php. Думаю, наверное, нет. Значит, у вас должна быть папка с именем change-preferences и файл с именем index.php внутри?

    Ну, вот почему change-preference?s=up&n=900 перенаправляет на change-preference\?s=up&n=900. Потому что вы обращаетесь к индексному файлу для этого адреса, а не непосредственно к файлу. Однако он должен работать нормально.

    Если он все еще возвращает ошибку 404 (страница не найдена), возможно, это то, что вы не включили в свой вопрос, который плохо настроен или имеет плохое поведение. Попробуйте более простую настройку (создайте новую папку с минимально необходимым для выполнения URL-адреса) или предоставьте дополнительную информацию по вашему вопросу.

    0

    Ну .. Я не упоминал, что я работаю с Wordpress, потому что я думал, что это вопрос 100% PHP. Похоже, что «s» - это зарезервированный термин в Wordpress, вызывающий ошибку 404. Изменение «s» устранило проблему. Я живу этим ответом здесь, если кто-то другой, работающий над Wordpress, находит его/ее себя в том же положении. Al из reserved terms.

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