Вопрос воспроизведения проверки формы PHP - PullRequest
0 голосов
/ 19 ноября 2011

Рассмотрим следующую форму, содержащую текстовое поле и кнопку отправки:

<form method="POST" action="<?php isValid();?>" class="urln">
    <input name="url" type="text" autocomplete="off" class="urlField"/>
    <input name="ybutton" type="submit" value="Add!" class="logButon" action="<?php isValid();?>"/>
</form>

Определение isValid() выглядит следующим образом:

function isValid()
{
    $string = $_POST['url'];
    $youtubeURL = parse_url($string);
    if($youtubeURL["host"]=="www.youtube.com")
        echo 'videoAdmin.php';
    else
        echo '';
}

Проблема в том, что успешная отправка URL-адресов на YouTube происходит во второй форме, а не после первой. Идея состоит в том, чтобы предоставить правильный URL-адрес сразу после заполнения формы (возможно, AJAX?). Любая помощь с благодарностью.

Ответы [ 2 ]

1 голос
/ 19 ноября 2011

Насколько мне известно, атрибут action должен содержать URL для отправки HTTP-запроса.То, что вы установили, работает во втором представлении, потому что, когда вы загружаете его в первый раз, у него нет проверки POST, поэтому он печатает пустым.Во второй раз это повторяет вещь xxx.php.PHP читается сервером и не выполняет ничего, пока вы не перезагрузите параметры изменения страницы (в записи, в сеансе или что-то еще).

Чтобы сделать то, что вам нужно, вы должны это сделатьустановите флажок в простой функции JavaScript и обновите атрибут действия при нажатии на общую кнопку или элемент <a>, если хотите (настройка onclick=validate()).

1 голос
/ 19 ноября 2011

Вы можете легко сохранить данные POST в $_SESSION суперглобальном.

...