Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
29 / 8 / 3
Регистрация: 22.10.2013
Сообщений: 447

Вывод value кнопки с обновлением страницы

12.10.2015, 10:55. Показов 764. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо выводить value кнопки, если заработает конструкция, то вписываем надпись на кнопке в конец файла.
Сейчас код ниже работает, выводится надпись той кнопки по которой нажали.
Однако, после F5 (обновления страницы) надпись не исчезает, а нужно, чтоб исчезала.
Если раскоментировать строку с header, то надписи не выводятся. Что не верно в коде?

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
echo '<form method="POST"><input type="submit" name="sbm" value="win1.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win2.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win3.com"></form>';
?>
 
<?php
    # Если кнопка нажата
    if( isset( $_POST['sbm'] ) )
    {  
    //  header("Location: ".$_SERVER["REQUEST_URI"].""); 
      echo $_POST['sbm'];
    // Запись в файл
    // file_put_contents('white-list.txt', PHP_EOL . $_POST['sbm'], FILE_APPEND);
    }
?>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.10.2015, 10:55
Ответы с готовыми решениями:

Проблема с обновлением страницы
Доброе время суток. Возникла такая проблема. Есть форма авторизации, работает на сессиях &lt;? if (isset($_SESSION)) { ...

Авторизация с обновлением страницы целиком
Я организовал авторизацию на сайте. У меня в шапке есть меню и оно меняется в зависимости &quot;авторизирован / не авторизирован&quot;...

Проблема с обновлением страницы в IE.
НА 1 асп &lt;% response.expiresabsolute = Now() - 1 response.addHeader 'pragma','no-cache' response.addHeader...

11
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
12.10.2015, 11:01
а по F5 у Вас ничего и не получится.. Оно ж как работает в браузере: вот Вы нажали, к примеру, кнопку с value="win2.com" - т.о. в скрипт методом POST было передано это значение, скрипт отработал..
А если теперь нажать F5 - то браузер Вам скажет, что было передано значение - перезагрузить его?.. и там вариантов то и нет - либо "да" (и при этом то же самое значение останется), либо "нет" - тогда ничего вообще не произойдет..
0
29 / 8 / 3
Регистрация: 22.10.2013
Сообщений: 447
12.10.2015, 11:14  [ТС]
И все таки, как написать код. У меня на странице все кнопки циклом выводит с одинаковыми именами с разными надписями, при нажатии на кнопку надпись уходит в конец файла. А еще при F5 добавляется надпись последней нажатой кнопки в файл, а нужно чтоб только при нажатии кнопки отправлялось в файл.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
12.10.2015, 11:17
Что-то я плохо понимаю Ваше описание.. Давайте-ка нормальным русским языком, пожалуйста.. Попробуем помочь
0
29 / 8 / 3
Регистрация: 22.10.2013
Сообщений: 447
12.10.2015, 11:27  [ТС]
Вот код полностью работает:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo '<form method="POST"><input type="submit" name="sbm" value="win1.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win2.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win3.com"></form>';
?>
 
<?php
    # Если кнопка нажата
    if( isset( $_POST['sbm'] ) )
    {  
    // Жмем кнопку надпись уходит в файл
     file_put_contents('white-list.txt', PHP_EOL . $_POST['sbm'], FILE_APPEND);
    }
?>
Оправляем надпись на кнопке в конец записи файла white-list.txt, при нажатии любой.
При нажатии F5 делается снова запись в файл именно последней кнопки.
А мне нужно, чтоб ничего не дописывалось при нажатии F5.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
12.10.2015, 11:44
а так?
PHP
1
2
3
4
5
6
7
8
9
<?php
    if( isset( $_POST['sbm'] ) )
    { file_put_contents('white-list.txt', PHP_EOL . $_POST['sbm'], FILE_APPEND);
     header("Location: ".$_SERVER["REQUEST_URI"].""); }
 
echo '<form method="POST"><input type="submit" name="sbm" value="win1.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win2.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win3.com"></form>';
?>
но учтите, что перед header у Вас ничего не должно выводиться.
т.е. блок
PHP
1
2
3
    if( isset( $_POST['sbm'] ) )
    { file_put_contents('white-list.txt', PHP_EOL . $_POST['sbm'], FILE_APPEND);
     header("Location: ".$_SERVER["REQUEST_URI"].""); }
должен идти самым первым на странице - перед выводом чего бы то ни было
1
29 / 8 / 3
Регистрация: 22.10.2013
Сообщений: 447
12.10.2015, 11:50  [ТС]
Все отлично в шаблоне работает, насчет заголовка я читал, но до меня не дошло, что кнопки можно ниже его поставить. Буду пробовать пример в своем скрипте. Спасибо, +.
0
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
12.10.2015, 11:57
Цитата Сообщение от Laroux Посмотреть сообщение
<?php
if( isset( $_POST['sbm'] ) )
{ file_put_contents('white-list.txt', PHP_EOL . $_POST['sbm'], FILE_APPEND);
header("Location: ".$_SERVER["REQUEST_URI"].""); }
echo '<form method="POST"><input type="submit" name="sbm" value="win1.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win2.com"></form>';
echo '<form method="POST"><input type="submit" name="sbm" value="win3.com"></form>';
?>
Так то все равно не сработает, т.к. просле проверки на существование переменной $_POST['sbm'] ответ будет что переменная существует, данные запишутся.
ИМХО здесь нужно через ajax передавать данные на другой скрипт, и он будет записывать, и при обновлении страницы ничего не будет записываться
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
12.10.2015, 11:59
Цитата Сообщение от Xenox Посмотреть сообщение
просле проверки на существование переменной $_POST['sbm'] ответ будет что переменная существует
с чего это? Откуда ей взяться?
0
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
12.10.2015, 12:05
Хм, что есть isset?
Если в форме было передана переменная через пост, на тот же скрипт, после нажатия F5 будет вопрос отправить данные снова? да - отправятся данные, нет - ничего не произойдет.
Если по новой отправляем данные isset показывает что переменная $_POST['sbm'] установлена, я не прав?

Добавлено через 39 секунд
Хотя если ТС написал что все работает, то ладно вопрос закрыт.
0
 Аватар для Laroux
172 / 167 / 75
Регистрация: 21.11.2014
Сообщений: 1,490
12.10.2015, 12:10
не, не прав..
Давайте разберемся, что же происходит при работе скрипта: юзер открывает страницу впервые. Есть $_POST['sbm']?
Нет.. значит ничего на записывается.
Теперь юзер нажал какую-то из кнопок.. Появилась $_POST['sbm'] и данные записались в файл. И сразу же страница обновилась header-ом. Есть после этого $_POST['sbm']?
Нет.. значит ничего не запишется.
Теперь пользователь жмет F5.. и что? Есть там $_POST['sbm']? - нет.

P.S. header криво написан. Только сейчас увидел.
Надо так:
PHP
1
header('Location: '.$_SERVER["REQUEST_URI"]);
0
162 / 161 / 66
Регистрация: 28.06.2015
Сообщений: 576
12.10.2015, 12:14
Да точно, все верно, я ошибся)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.10.2015, 12:14
Помогаю со студенческими работами здесь

Выпадающий список с обновлением страницы без перезагрузки
Народ help me , помогите сделать выпадающий список на одной странице , есть у меня 21 район при нажатии на рандомный район брала инфу с...

Как на JS (Jquery) сделать POST запрос с обычным обновлением страницы?
Добрый день! Как с помощью JS (или даже Jquery) сделать обычный POST запрос с обновлением всей страницы целиком самим браузером (да...

Синхронизировать вывод с обновлением экрана
Доброго дня! Очень большая проблема у меня возникает при отображении видео с видео камеры. Из-за биения частоты поступающего ...

Вывод времени с обновлением в одну секунду
Прошу вашей помощи! Приветствую всех! Хотелось бы сделать так, чтобы оставалась шапка сообщений сверху и обновление посекундно тайма,...

Вывод страницы на печать с заданными параметрами страницы
Подскажите, каким образом можно произвести вывод страницы на печать с заданными параметрами страницы. И если можно, вывод на экран сразу в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru