0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 44
1

Не передаются значения в POST

07.10.2014, 06:41. Показов 794. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго дня уважаемые форумчане! необходима помощь. Суть в следующем. Есть хтмл форма и пхп обработчик с последующим добавлением в базу. Значения из формы не передаются в $_POST вне зависимости оттого чтобы я ввел в форму. Ошибок не выдает. в базе заполняются пустыми полями кроме двух полей area и description ( там единицы, хотя я вводил текст). Подключение к базе производиться в файле mysql.php и там все все в норме ( ибо работает в другом коде). Сделал проверку в обработчике и выдаются следующие значения : 1,1, , , ,. Всю ночь голову ломал так и не понял в чем проблема. Подскажите в чем ошибка. Заранее благадарю.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<form action="new_blank_code.php" method="post">
    <div>
    <label>Участок*:</label>
    <input name="area" type="text"  maxlength="100" class="text">
    </div>
    <div>
    <label>Устройство|Датчик*:</label>
    <?php 
            include "mysql.php";
            // выводим из бд в селект
            $sensor = "SELECT sens FROM sensor"; 
            $res = mysql_query($sensor); 
            if(!$res) exit("Ошибка запроса: ".mysql_error());
            if(mysql_num_rows($res)>0) 
            { 
            echo "<select name=sensor>"; 
        // В цикле выводим опции селекта 
            while($row = mysql_fetch_array($res)) 
            { 
            echo "<option value=".$row['sens'].">".$row['sens']."</option>";   
            } 
            echo "</select>"; 
            } ?>
    </div>  
    <div>
    <label>Система*:</label>
    <?php 
            include "mysql.php";
            // выводим из бд в селект
            $system = "SELECT sys FROM system"; 
            $res = mysql_query($system); 
            if(!$res) exit("Ошибка запроса: ".mysql_error());
            if(mysql_num_rows($res)>0) 
            { 
            echo "<select name=system>"; 
        // В цикле выводим опции селекта 
            while($row = mysql_fetch_array($res)) 
            { 
            echo "<option value=".$row['sys'].">".$row['sys']."</option>";   
            } 
            echo "</select>"; 
            } ?>
    </div>  
    <div>
    <label>Передано:</label>
    <?php 
            include "mysql.php";
            // выводим из бд в селект
            $transferred = "SELECT FIO FROM personal"; 
            $res = mysql_query($transferred); 
            if(!$res) exit("Ошибка запроса: ".mysql_error());
            if(mysql_num_rows($res)>0) 
            { 
            echo "<select name=transferred>"; 
        // В цикле выводим опции селекта 
            while($row = mysql_fetch_array($res)) 
            { 
            echo "<option value=".$row['FIO'].">".$row['FIO']."</option>";   
            } 
            echo "</select>"; 
            } ?>
    </div>
    <input type="submit" value="Добавить" class="submit" onclick='this.form.submit();this.form.reset()'>
</form>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php 
header('Content-Type: text/html; charset=utf8');
if (isset($_POST['area']) && isset($_POST['description']) && isset($_POST['system']) && isset($_POST['sensor']) && isset($_POST['transferred']))
{
$area = isset($_POST['area']);
$description = isset($_POST['description']);
$system = isset($_POST['$system']);
$sensor = isset($_POST['$sensor']);
$transferred = isset($_POST['$transferred']);
//if (!empty($area) or !empty($description))
   // { exit ("<body><div align='center'><br/><br/><br/><h3>Заполненны не все поля!<a href='index.php#win'> <b>Назад</b> </a></h3></div></body>");unset($area); unset($description);}
    $area = stripslashes($area);
    $area = mysql_real_escape_string($area);
    $description = stripslashes($description);
    $description = mysql_real_escape_string($description);
    include "mysql.php";
    $result = mysql_query("INSERT INTO blanks (system,sensor,detected,transferred,area,description,status) VALUE ('$system','$sensor','{$_SESSION['login']}','$transferred','$area','$description','Открыта')");
if ($result=='true')
{echo "$area ,$description, $system, $sensor, $transferred, {$_SESSION['login']}";} // проверка значений
//{header("Location:index.php");
mysql_close;}
else {echo "Произошла ошибка, пожалуйста повторите попытку";}
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2014, 06:41
Ответы с готовыми решениями:

Не передаются данные в POST
Доброго времени суток! Проблема возникла весьма странная. Создал форму(текстовое поле или...

Не передаются данные (Post-запрос)
Все написано вроде бы верно - вот такая форма, но при отправке введенных данных получается это ...

Методом POST не передаются данные
Доброго времени суток! Делаю форму регистрации нужно передать данные методом POST, но почему-то...

Не передаются данные на другую страницу методом post
Учу пхп всего неделю, поэтому такие глупые ошибки возникают. вобщем код 1 страницы test2.php...

12
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
07.10.2014, 08:18 2
Так у Вас ведь в форме нет поля "description", а в скрипте прописано, что он должен быть обязательно, иначе записи в БД не будет.
После
PHP
1
header('Content-Type: text/html; charset=utf8');
Впишите:
PHP
1
var_dump( $_POST );
И посмотрите, какие данные приходят в скрипт через POST. И изменяйте скрипт или форму, в зависимости от увиденного результата.
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 44
07.10.2014, 12:18  [ТС] 3
Description есть. когда копировал удалил. а по поводу того что приходит я написал выше. Сделал проверку в обработчике и выдаются следующие значения : 1,1, , , ,.

Добавлено через 6 минут
Вот полная форма

[HTML]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<form action="new_blank_code.php" method="post">
    <div>
    <label>Участок*:</label>
    <input name="area" type="text"  maxlength="100" class="text">
    </div>
    <div>
    <label>Устройство|Датчик*:</label>
    <?php 
            include "mysql.php";
            // выводим из бд в селект
            $sensor = "SELECT sens FROM sensor"; 
            $res = mysql_query($sensor); 
            if(!$res) exit("Ошибка запроса: ".mysql_error());
            if(mysql_num_rows($res)>0) 
            { 
            echo "<select name=sensor>"; 
        // В цикле выводим опции селекта 
            while($row = mysql_fetch_array($res)) 
            { 
            echo "<option value=".$row['sens'].">".$row['sens']."</option>";   
            } 
            echo "</select>"; 
            } ?>
    </div>  
    <div>
    <label>Система*:</label>
    <?php 
            include "mysql.php";
            // выводим из бд в селект
            $system = "SELECT sys FROM system"; 
            $res = mysql_query($system); 
            if(!$res) exit("Ошибка запроса: ".mysql_error());
            if(mysql_num_rows($res)>0) 
            { 
            echo "<select name=system>"; 
        // В цикле выводим опции селекта 
            while($row = mysql_fetch_array($res)) 
            { 
            echo "<option value=".$row['sys'].">".$row['sys']."</option>";   
            } 
            echo "</select>"; 
            } ?>
    </div>  
    <div>
    <label>Передано:</label>
    <?php 
            include "mysql.php";
            // выводим из бд в селект
            $transferred = "SELECT FIO FROM personal"; 
            $res = mysql_query($transferred); 
            if(!$res) exit("Ошибка запроса: ".mysql_error());
            if(mysql_num_rows($res)>0) 
            { 
            echo "<select name=transferred>"; 
        // В цикле выводим опции селекта 
            while($row = mysql_fetch_array($res)) 
            { 
            echo "<option value=".$row['FIO'].">".$row['FIO']."</option>";   
            } 
            echo "</select>"; 
            } ?>
    </div>
    <div>
    <label>Описание неисправности*:</label>
    <textarea name="description"></textarea>
    </div>
    <input type="submit" value="Добавить" class="submit" onclick='this.form.submit();this.form.reset()'>
</form>
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
07.10.2014, 14:50 4
А, я код не посмотрел внимательно сразу. Вот тут ошибка:
PHP
1
2
3
$system = isset($_POST['$system']);
$sensor = isset($_POST['$sensor']);
$transferred = isset($_POST['$transferred']);
Уберите в кавычках знаки доллара. И вообще, в переменных при такой конструкции будет ноль (если переменная не передана) и единица (в противном случае).
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 44
07.10.2014, 16:16  [ТС] 5
Это исправил. Теперь нет пустых строк но значения в базу записываеются еденицы. проверка покаазала 1,1,1,1,1.
Почему так не понимаю ибо пишу я текст....
0
42 / 42 / 4
Регистрация: 14.09.2008
Сообщений: 683
07.10.2014, 16:21 6
Сильно не вчитывался, но если вы пытаетесь записать вот эти значения:
PHP
1
2
3
$system = isset($_POST['system']);
$sensor = isset($_POST['sensor']);
$transferred = isset($_POST['transferred']);
то тогда все очевидно isset возвращает true(1) или false(0) в зависимости от того установлена ли переменная. В вашем случае, вы в переменные, как раз и записываете
PHP
1
2
3
$system = true;
$sensor = true;
$transferred = true;
При записи оно конверит true в 1.
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 44
07.10.2014, 16:52  [ТС] 7
Все вот эти значения дают 1
PHP
1
2
3
4
5
$area = isset($_POST['area']);
$description = isset($_POST['description']);
$system = isset($_POST['system']);
$sensor = isset($_POST['sensor']);
$transferred = isset($_POST['transferred']);
как исправить так пока и не вкурил

Добавлено через 8 минут
сделал так:
PHP
1
2
3
4
5
6
7
if (isset($_POST['area']) && isset($_POST['description']) && isset($_POST['system']) && isset($_POST['sensor']) && isset($_POST['transferred']))
{
$area = $_POST['area'];
$description = $_POST['description'];
$system = $_POST['system'];
$sensor = $_POST['sensor'];
$transferred = $_POST['transferred'];
теперь пустые строки только у значений area и description. Остальные три значения берут из селекта только первое значение и записывают его в бд.
0
Эксперт PHP
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
07.10.2014, 17:08 8
Цитата Сообщение от Руфус Посмотреть сообщение
но значения в базу записываеются еденицы. проверка покаазала 1,1,1,1,1.
Я же Вам уже указал на это ранее:
Цитата Сообщение от lyod Посмотреть сообщение
И вообще, в переменных при такой конструкции будет ноль (если переменная не передана) и единица (в противном случае).
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 44
07.10.2014, 18:01  [ТС] 9
С этим то я разобрался спасибо большое. Теперь же как писал выше пустые строки только у значений area и description. Остальные три значения берут из селекта только первое значение и записывают его в бд. Как поправить?
0
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
07.10.2014, 18:10 10
Цитата Сообщение от Руфус Посмотреть сообщение
Как поправить?
Вам уже два раза намекнули
Цитата Сообщение от lyod Посмотреть сообщение
И вообще, в переменных при такой конструкции будет ноль (если переменная не передана) и единица (в проти
Уберите isset при присвоении значений переменным.. похоже вы вообще не понимаете зачем эта функция
0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 44
07.10.2014, 18:29  [ТС] 11
Уважаемый asd, я написал же выше что исправил. убрал isset и результат выше написан.
0
TGrey[WoLf]
08.10.2014, 11:38
  #12

Не по теме:


Уважаемый ads :)

0
0 / 0 / 0
Регистрация: 29.06.2013
Сообщений: 44
08.10.2014, 14:57  [ТС] 13
Для потомков. Разобрался все теперь добавляет. Надо было убрать обновление формы при нажатии на кнопку
с этого
HTML5
1
 <input type="submit" value="Добавить" class="submit" onclick='this.form.submit();this.form.reset()'>
на это
HTML5
1
<input type="submit" value="Добавить" class="submit">
0
08.10.2014, 14:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2014, 14:57
Помогаю со студенческими работами здесь

Не передаются значения в функцию
function gooo ($arr, $search) { array_walk_recursive($arr, function($sValue, $sKey) use...

POST передает не все значения
Добрый вечер. Сделал большую форму, которая по нажатию кнопки отправляет мне все данные на емейл,...

Не передаются POST параметры на сервер
Здравствуйте уважаемые старшие товарищи! Помогите пожалуйста разобраться где собака порылась?...

Не передаются русские символы (пароль) при отправке POST запроса
Здравствуйте. Отправляю POST-запрос на авторизацию, и при передаче русских символов в пароле...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru