повторное обращение к скрипту
Можно ли в PHP заблокировать доступ, чтобы исключить повторное обращение к скрипту? можно конечно средствами JS запрещать двойное нажатие на сабмит, но хотелось бы чтобы php это улавливал
Обычно это делается с помощью редиректа. Тоесть скрипт выполнил некое действие и сообщает пользователю что через 5 секунд он будет переброшен на такую-то страницу. Есть конечно и другие способы.
Можно ли в PHP заблокировать доступ, чтобы исключить повторное обращение к скрипту? можно конечно средствами JS запрещать двойное нажатие на сабмит, но хотелось бы чтобы php это улавливал
Еще можно яваскриптом проверять запись в cookies о последнем обращении к определенной странице и кликать, если такое было сравнительно давно.
На данный момент борюсь так:
Result=true;
function ConfirmFormData()
{
if(Result)
{
Result=false;
return(true);
}
return(false);
}
</script>
<body>
<form name=f1 ACTION="albm_do_add.php" method=post onSubmit="return ConfirmFormData();">
<input type=submit>
Но хотелось бы бороться как-нить на стороне сервера. Вроде где то встречал как заблокирровать скропт но вот где не помню.
Ситуация такая что пользователь может загружать фотку с её описанием, так вот пока она грузится он может кликнуть на сабмит ещё раз и добавиться 2 записи в бд вместо одной.
я думаю можно обойтись немного проще
ведь в БД хратяться ссылы на сие картинки, а не сами картинки ???
скрипт который загружает на сервер фоты и должен проверять существует ли такая запись в бд
да ещё вот, в самой функции загрузки надо поставить сначала запись в бд, а уже потом загрузку файла на сервер
я бы сделал так ...
ну или изящно после первого нажатия на сабмит сделать её неактивной
я думаю можно обойтись немного проще
ведь в БД хратяться ссылы на сие картинки, а не сами картинки ???
скрипт который загружает на сервер фоты и должен проверять существует ли такая запись в бд
да ещё вот, в самой функции загрузки надо поставить сначала запись в бд, а уже потом загрузку файла на сервер
я бы сделал так ...
ну или изящно после первого нажатия на сабмит сделать её неактивной
Суть такая что фоток один пользователь может качать скока угодно. поетому записей может быть тоже скока угодно (они идут через автоинкремент id). нажав два раза подряд кнопку сабмит мы получаем 2 записи в бд.
Поставить загрузку фото до загрузки записи в бд тоже никак-фотки сохраняются с именем= (id записи) + (.jpg), пока не добавлю запись не узнаю какой будет новый id.
Но вариант с кнопкой сабмит мне понравился
Не проще ли во время добавления записи в БД писать сразу и IP адрес клиента. Тогда при каждом следующем клике Вы сможете проверить, кликал ли он уже, и если да, то давать ему старую ссылку.
Тот же вариант возможен с генерацией произвольного кода md5(random()) и записи его одновременно в куки и БД.
А если он захочет еще один рисунок загрузить сразу после загрузки первого? Тогда у него ничего не выйдет.... Если я правильно понимаю Ваш варант годится если он должен загружать один рисунок. Мне же хочется дать возможность загрузки любого количества рисунков, исключая случайное дублирование рисунков.
Что может быть проще, чем держать в куках информацию в виде массива - рисунок-ключ?
Что может быть проще, чем держать в куках информацию в виде массива - рисунок-ключ?
проще заблокировать кнопку или использовать не кнопку сабмит, а обычную с повешаной на неё фунцией, которая проверит флаг - загружено/нет
проще заблокировать кнопку или использовать не кнопку сабмит, а обычную с повешаной на неё фунцией, которая проверит флаг - загружено/нет
Если я не буду использовать сабмит то как я данные формы передам.
Если я не буду использовать сабмит то как я данные формы передам.
function CheckSend()
{
if (!flag_send)
{
flag_send = true;
form_name.submit();
}
}
HTML
<form name="form_name">
<input type="button" onclick="CheckSend()">
аналогично я написал выше
блин... ну а чё тогда спрашиваешь? я имел в виду не сам процесс сабмит, а кнопку... твой пост провтыкал, не присматривался сори если что
блин... ну а чё тогда спрашиваешь? я имел в виду не сам процесс сабмит, а кнопку... твой пост провтыкал, не присматривался сори если что
Да нет всё ок. Я теперь зато узнал как засабмитить форму из явы. А вообще все-таки хотелось бы узнать как на сервере это предвидеть, не трогая клиента.
Да нет всё ок. Я теперь зато узнал как засабмитить форму из явы. А вообще все-таки хотелось бы узнать как на сервере это предвидеть, не трогая клиента.
чес слово, лень выдумывать, зачем мутить когда есть проще способ... можно кстати проверять имя файла (пришедшее от клиента)