У меня возникли проблемы с получением значений из формы после обработки. Мне требуется ваша помощь.
function updateUser($table, $id) {
if ($_POST) {
processUpdate($table, $id);
} else {
updateForm($table, $id);
}
}
function processUpdate($table, $id) {
print $table; //testing
print $id; //testing
$email=addslashes($HTTP_POST_VARS['email']);
$lname=addslashes($HTTP_POST_VARS['lname']);
$fname=addslashes($HTTP_POST_VARS['fname']);
print $lname;
//which table do we update
switch($table) {
case "maillist":
$result = mysql_query("UPDATE $table SET email='$email', lname='$lname', fname='$fname' WHERE id='$id'")
or die(mysql_error());
break;
}
}
Функция updateForm ($ table, $ id); просто выводит форму, имеет поля email, lname, fname. И когда вы обрабатываете форму, действие такое же, с таблицей и идентификатором, передаваемыми через URL-адрес, поэтому он ПОЛУЧАЕТ идентификатор и таблицу таким образом, а для lname, fname и электронной почты он должен получить их через сообщение .
Обновлено: это тег формы для функции updateForm: <form method = "post" action = "?mode=upd&id='.$id.'&table='.$table.'">
Но по какой-то причине он не публикует значения.
Вы должны проверить свой идентификатор is_numeric перед его использованием (нет необходимости его экранировать, поскольку он должен быть целым числом). Пожалуйста, обновите свой код ... Другие по ошибке скопируют / вставят то, что у вас есть.






Установлен ли атрибут метода формы для публикации?
<form method = "post" action = "...">
И все ли атрибуты имени входа установлены правильно?
Вы смотрели на вывод html, чтобы убедиться, что нет синтаксических ошибок? Также попробуйте использовать
$_POST
вместо
$HTTP_POST_VARS
это тег формы для функции updateForm: <form method = "post" action = "? mode = upd & id = '. $ id.' & table = '. $ table.'">
Вы смотрели на вывод html, чтобы убедиться, что нет синтаксических ошибок? Также попробуйте использовать $ _POST вместо $ HTTP_POST_VARS
если это поправки к ответу, обязательно отредактируйте их в ответ, чтобы другие могли их найти ...
Да, я тоже собирался это предложить.
Убедитесь, что вы используете последнюю версию руководства для одной из последних версий PHP5. НЕ какой-то PHP 3.x, полный устаревших функций ;-)
Это сделает вашу жизнь (и нашу) намного проще: P
Кстати, еще один совет, который убережет вас от серьезных SQL-инъекций в этом скрипте: УБЕГАЙТЕ ОТ КАЖДОЙ ВАРИАНТЫ, КОТОРОЙ ВЫ СОБИРАЕТЕСЬ ПРОЙТИ !!
Здесь вы не избежите идентификатора, что является хорошей огромной дырой, чтобы сбросить ваш db
Вам следует взглянуть на mysql_escape_string и mysql_real_escape_string вместо добавления косых черт по соображениям безопасности.