2012-06-22 1 views
0

Мы пытаемся создать пользовательскую 500-страничную страницу с исправлениями, которая повторяет форму POST или GET за 30 секунд, мы используем moodle для экзаменов, но иногда у нас есть много учеников, которые делают один и тот же экзамен, любая идея, как исправить это проблема? До сих пор мы можем повторить, если параметры как xxx.php? Имя = самку, но не тогда, когда они приходят в виде массива, как $ _POSTпользовательская 500-страничная страница с ошибкой, которая снова повторяет форму POST или GET за 30 секунд?

<?php 
    function my_url(){ 

     $url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 

     echo "<meta http-equiv=\"refresh\" content=\"30;url=$url\"/>"; 
    } 
    my_url(); 

?> 
+0

Просьба предоставить нам дополнительную информацию, пока неясно, чего вы хотите достичь. – madfriend

ответ

0

Вы можете использовать Javascript (если клиент имеет он включен), чтобы попытаться для перезагрузки страницы. Это приведет к повторной отправке данных POST. Проблема в том, что (по крайней мере, в Firefox), когда скрипт выполняется, браузер появляется, спрашивая, хотят ли они повторно отправить данные, чтобы это могло запутать.

Это будет работать, хотя:

<script type='text/javascript'> 
    setTimeout('window.location.reload()', 30000); 
</script> 

В зависимости от того, какого типа данных POST у вас есть, вы можете преобразовать все поля POST для скрытых элементов и повторно заполнить еще одну форму на странице и дать им возможность повторно отправить его через некоторое время. Вы не сможете попытаться повторно загрузить файлы, которые они отправили, но нормальные данные формы должны работать.

Как сказал Сэм в комментарии, вы можете использовать аналогичный код для повторной отправки скрытой формы, а не для вызова window.location.reload(). Это должно предотвратить появление всплывающих подсказок «Вы уверены, что хотите повторно отправить данные», которые будут отображаться большинством браузеров.

+0

Или вы можете использовать javascript для повторной отправки формы через определенное время. –

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