Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
 Аватар для axi
22 / 16 / 1
Регистрация: 26.01.2010
Сообщений: 305

Методы обработки переданных данных с одной страницы на другую

27.06.2011, 23:48. Показов 2485. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с такой рутинной работой когда у меня на страницу с анкетой для пользователя есть 25 текстовых полей, которые он заполняет и отправляет на форму добавления в базу, изначально все такие запросы я писал методом
PHP
1
2
3
if(isset($_POST['name'])){
$name = $_POST['name'];
}
но когда я сталкнулся с тем что это надо делать для 25 полей, честно у меня опустились руки, как можно минимизировать или найти другой метод обработки данных, у кого какие предложения?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.06.2011, 23:48
Ответы с готовыми решениями:

Передача данных из одной обработки в другую
Здравствуйте, есть две обработки, открытые в 1с. Одна обработка прослушывает события на сервере, и при возникновение определенного события,...

Передача данных с одной страницы на другую ASP.Net
Здравствуйте! Пишу приложение под ASP.Net. Задача состоит в том, чтобы передать значение текстбоксов с одной страницы в текстбоксы на...

Как передать из одной страницы в другую ОЧЕНЬ МНОГО данных?
Тут такая проблема: надо передать из одной страницы на другую данные достаточно большой таблицы, в которой юзер сделал изменения. Строки с...

9
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
27.06.2011, 23:50
Придется все 25 писать.
0
 Аватар для axi
22 / 16 / 1
Регистрация: 26.01.2010
Сообщений: 305
27.06.2011, 23:53  [ТС]
мм я думаю есть лазейки, например если цикл использовать
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
27.06.2011, 23:58
Да...
PHP
1
2
3
foreach($_POST as $key=>$value){
...
}
Но не пойму, что он может вам дать.
Единственное, присвоение переменным значений из $_POST
PHP
1
2
3
foreach($_POST as $key=>$value){
eval('$'.$key.'='$value';'); //Как-то так
}
0
 Аватар для axi
22 / 16 / 1
Регистрация: 26.01.2010
Сообщений: 305
28.06.2011, 00:14  [ТС]
я вот тоже накалякал метод один
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$user = array("login","password");
$list = array();
 
 
include("connect.php");
foreach($user as $k=>$v){
    $list[$v] = $_POST[$v];
}
 
$q = mysql_query("INSERT INTO user ($user[$k]) VALUES ('$list[$v]')");  
print_r($list);
 
if($q == 'true'){
    echo "true";
}
else{
    echo "false".mysql_error();
}
 
?>
но он сохраняет только одно значение в базу, пароль, логин оставляет пустым
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
28.06.2011, 00:23
Цитата Сообщение от axi Посмотреть сообщение
но он сохраняет только одно значение в базу
У Вас запрос к бд вне цикла.
0
 Аватар для axi
22 / 16 / 1
Регистрация: 26.01.2010
Сообщений: 305
28.06.2011, 00:42  [ТС]
если писать его в цикле то получается что он создает одного пользователя и сохраняет только логи, а потом создает второго пользователя и сохраняет только пароль
0
 Аватар для vx5
191 / 175 / 12
Регистрация: 04.09.2010
Сообщений: 656
28.06.2011, 02:36
axi, вы изобретаете велосипед, причем он у вас в результате получился с квадратными колесами.
PHP
1
2
3
foreach($user as $k=>$v){
    $list[$v] = $_POST[$v];
}
PHP
1
$q = mysql_query("INSERT INTO user ($user[$k]) VALUES ('$list[$v]')");
Во-первых, вы используете переменные цикла вне него - дурной тон.
Если вы хотите, чтобы у вас одновременно заполнялись два поля, логично что, запросе указано должно быть не одно, а тоже два поля. Сейчас ваш запрос выглядит примерно так:
SQL
1
INSERT INTO USER ('password') VALUES ('пароль васи');
Добавлено через 8 минут
PHP
1
2
3
4
5
6
7
8
$keys=NULL;$values=NULL;
foreach($user as $v)
{
    $keys .= $keys ? ", $v" : $v;
    $values .= $values ? "{$_POST[$v]}" : ", {$_POST[$v]}";
}
 
$q = mysql_query("INSERT INTO user ($keys) VALUES ('$values')");
0
 Аватар для axi
22 / 16 / 1
Регистрация: 26.01.2010
Сообщений: 305
28.06.2011, 02:39  [ТС]
Цитата Сообщение от vx5 Посмотреть сообщение
axi, вы изобретаете велосипед
Так если это велосипед придуман покажите его пожалуйста))), буду весьма благодарен.
0
 Аватар для n4r.c0m
36 / 36 / 3
Регистрация: 24.06.2011
Сообщений: 50
28.06.2011, 05:08
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$fields = $_POST;
$allowed = array('username','password','address','email','бла-бла-бла'); //массив разрешенных полей
$fields = array_intersect_key($fields, $allowed); //отрезаем ненужные поля на случай подделки запроса
 
$field_names = implode(', ',array_keys($fields)); //формирование списка названий
 
$field_values = '';
foreach ($fields as $value)
  $field_values .= "'".mysql_escape_string($value)."', "; //экранируем sql спец. символы. Исключаем sql-инъекцию
 
$field_values = substr($field_values, -2); //отрезаем последние два символа (кому и пробел)
 
$query = "INSERT INTO user ($field_names) VALUES ($field_values)";
mysql_query($query);
p.s: код написан прямо в "быстром ответе" и не проверен даже на синтаксические ошибки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.06.2011, 05:08
Помогаю со студенческими работами здесь

Удаление данных, переданных через форму, при обновлении страницы
Как сделать, что бы при обновлении страницы все данные которые были переданы через формы удалялись.

хочу перейти с одной php страницы на другую, но вместо новой страницы появляется окно подтверждения
пытаюсь перейти с одной php-страницы на другую. но вместо новой страницы окно подтверждения и тишина. ошибок не выдает. в окне данные...

Переход с одной страницы на другую в одной вкладке
Что нужно изменить, что бы ссылка открылась в том же окне? &lt;header&gt; &lt;div class=&quot;main&quot;&gt; &lt;div...

Из одной страницы, в другую
Допустим есть index.html index2.html Можно ли отобразить какой либо элемент из первой страницы, во второй? jQuery конечно.

С одной страницы перенести в другую
У меня есть список врачей. допустим localhost/Doctors На главной есть топ врачей localhost/ Как мне перетащить с Докторов в локалхост?...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru