Почему он не публикует эти результаты?

У меня возникли проблемы с получением значений из формы после обработки. Мне требуется ваша помощь.

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.'">

Но по какой-то причине он не публикует значения.

Вам следует взглянуть на mysql_escape_string и mysql_real_escape_string вместо добавления косых черт по соображениям безопасности.

Wadih M. 11.06.2009 18:04

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

Wadih M. 11.06.2009 18:14
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
156
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Установлен ли атрибут метода формы для публикации?

<form method = "post" action = "...">

И все ли атрибуты имени входа установлены правильно?

Вы смотрели на вывод html, чтобы убедиться, что нет синтаксических ошибок? Также попробуйте использовать

$_POST

вместо

$HTTP_POST_VARS

это тег формы для функции updateForm: <form method = "post" action = "? mode = upd & id = '. $ id.' & table = '. $ table.'">

Brad 10.10.2008 08:31

Вы смотрели на вывод html, чтобы убедиться, что нет синтаксических ошибок? Также попробуйте использовать $ _POST вместо $ HTTP_POST_VARS

user19302 10.10.2008 08:32

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

Jeff Atwood 10.10.2008 09:32

Да, я тоже собирался это предложить.

Wadih M. 11.06.2009 18:05

Убедитесь, что вы используете последнюю версию руководства для одной из последних версий PHP5. НЕ какой-то PHP 3.x, полный устаревших функций ;-)

Это сделает вашу жизнь (и нашу) намного проще: P

Кстати, еще один совет, который убережет вас от серьезных SQL-инъекций в этом скрипте: УБЕГАЙТЕ ОТ КАЖДОЙ ВАРИАНТЫ, КОТОРОЙ ВЫ СОБИРАЕТЕСЬ ПРОЙТИ !!

Здесь вы не избежите идентификатора, что является хорошей огромной дырой, чтобы сбросить ваш db

Другие вопросы по теме