Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 16
1

HTML + PHP GET работает, POST не работает

03.03.2016, 10:20. Просмотров 3534. Ответов 14
Метки нет (Все метки)


Всем добрый день!
Собсно, subj. Уже неделю всяко разно хожу вокруг да около. Не передает POST'ом.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form id="regform" name="regform" action="registration.php" method="get">
 
    <input type="text" name="last_name" placeholder="Фамилия" required ><br>
    <input type="text" name="first_name" placeholder="Имя" required><br>
    <input type="text" name="middle_name" placeholder="Отчество" required><br>
    <input type="email" name="email" placeholder="E-mail" required><br>
    <input type="text" name="school_name" placeholder="Наименование учреждения" required><br>
    <input type="tel" name="phone" placeholder="телефон" required><br>
    <input type="text" name="post_code" placeholder="Почтовый индекс" required><br>
    <input type="password" name="password" placeholder="Пароль" required><br>
    <input type="password" name="confirm_password" placeholder="Повторите пароль" required><br>
 
    <input type="submit" name="submit" value="Зарегать меня!"><br>
    <input type="reset" value="Очистить форму">
 
</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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<html>
<head>
    <title>Вставка данных в БД</title>
</head>
<body>
<?php
echo "Hi!!! <br>";
 
$lastName = $_GET['last_name'];
$firstName = $_GET['first_name'];
$middleName = $_GET['middle_name'];
$eMail = $_GET['email'];
$password = $_GET['password'];
$schoolName = $_GET['school_name'];
$Phone = $_GET['phone'];
$postCode = $_GET['post_code'];
 
//$password = hash("sha256",$password);
//echo $password, "<br>";
$salt = rand(10,99999);
$cryptPass = crypt($password, $salt);
echo $cryptPass, "<br>";
$cryptPass = hash("sha512", $cryptPass);
echo $cryptPass, "<br>";
 
$mySQLi = mysqli_connect("127.0.0.1", "user", "123456", "phptest") or die(mysqli_error($mySQLi));
if($mySQLi){echo "Connected <br>";}
 
$mySQLi->query("INSERT INTO `testtable` (`id`,`last_name`,`first_name`,`middle_name`,`email`,`password`,`salt`,`post_code`,`school_name`,`phone`) VALUES ('NULL','$lastName','$firstName','$middleName','$eMail','$cryptPass','$salt','$postCode','$schoolName','$Phone')") or die(mysqli_error($mySQLi));
 
$rs = $mySQLi->query("SELECT * FROM `testtable`");
 
echo "In DB: <br>";
//$rs->data_seek(0);
while($row = $rs->fetch_assoc()){
    echo "user id:" .$row['id']. "<br> username " .$row['last_name']." <br>", "pass " .$row['password']."<br>";
}
$rs->free_result();
if($mySQLi->close()){echo "Disconnected";}
?>
</body>
</html>
Где я туплю?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2016, 10:20
Ответы с готовыми решениями:

Не работает PHP код. Файлы .php не обрабатываются, хотя, если занести в html, всё работает.
не могу разобраться с проблемой. установила денвер, вроде все работает, но как только начала...

Неправильно работает post запрос Ajax к php
JS-функция делает post запрос к файлу process.php который проверяет наличие пользователя в БД. Если...

Не работает PHP в HTML
Странная проблема в CentOS 6.4. У меня два VPS сервера у двух разных хостеров. В обоих не могу...

не работает php в html
Добрый день, форумчане :). Установил denver, localhost работает. Ссылки проверки тоже. не...

14
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
03.03.2016, 10:41 2
У Вас указан method="get", а Вы хотите, чтобы передавалось POST?
Так измените GET на POST и в форме, и в обработчике.
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 16
03.03.2016, 10:46  [ТС] 3
Да если бы
Это рабочий вариант (с GET'ом). Если меняю на POST - не работает.
На память - Undefined variables по всем переменным. Через полчаса точно скажу ошибку.
0
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
03.03.2016, 10:52 4
Вот так будет ошибку выдавать? Не верю
method="post" поменяйте.
PHP
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
<html>
<head>
    <title>Вставка данных в БД</title>
</head>
<body>
<?php
echo "Hi!!! <br>";
if(isset($_POST['submit'])){
    $lastName = $_POST['last_name'];
    $firstName = $_POST['first_name'];
    $middleName = $_POST['middle_name'];
    $eMail = $_POST['email'];
    $password = $_POST['password'];
    $schoolName = $_POST['school_name'];
    $Phone = $_POST['phone'];
    $postCode = $_POST['post_code'];
     
    //$password = hash("sha256",$password);
    //echo $password, "<br>";
    $salt = rand(10,99999);
    $cryptPass = crypt($password, $salt);
    echo $cryptPass, "<br>";
    $cryptPass = hash("sha512", $cryptPass);
    echo $cryptPass, "<br>";
     
    $mySQLi = mysqli_connect("127.0.0.1", "user", "123456", "phptest") or die(mysqli_error($mySQLi));
    if($mySQLi){echo "Connected <br>";}
     
    $mySQLi->query("INSERT INTO `testtable` (`id`,`last_name`,`first_name`,`middle_name`,`email`,`password`,`salt`,`post_code`,`school_name`,`phone`) VALUES ('NULL','$lastName','$firstName','$middleName','$eMail','$cryptPass','$salt','$postCode','$schoolName','$Phone')") or die(mysqli_error($mySQLi));
     
    $rs = $mySQLi->query("SELECT * FROM `testtable`");
     
    echo "In DB: <br>";
    //$rs->data_seek(0);
    while($row = $rs->fetch_assoc()){
            echo "user id:" .$row['id']. "<br> username " .$row['last_name']." <br>", "pass " .$row['password']."<br>";
    }
    $rs->free_result();
    if($mySQLi->close()){echo "Disconnected";}
}
else echo 'не submit';
 
?>
</body>
</html>
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 16
03.03.2016, 11:25  [ТС] 5
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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<form id="regform" name="regform" action="registration.php" method="post">
 
    <input type="text" name="last_name" placeholder="Фамилия" required ><br>
    <input type="text" name="first_name" placeholder="Имя" required><br>
    <input type="text" name="middle_name" placeholder="Отчество" required><br>
    <input type="email" name="email" placeholder="E-mail" required><br>
    <input type="text" name="school_name" placeholder="Наименование учреждения" required><br>
    <input type="tel" name="phone" placeholder="телефон" required><br>
    <input type="text" name="post_code" placeholder="Почтовый индекс" required><br>
    <input type="password" name="password" placeholder="Пароль" required><br>
    <input type="password" name="confirm_password" placeholder="Повторите пароль" required><br>
 
    <input type="submit" name="submit" value="Зарегать меня!"><br>
    <input type="reset" value="Очистить форму">
 
</form>
</body>
</html>
PHP
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
<html>
<head>
    <title>Вставка данных в БД</title>
</head>
<body>
<?php
echo "Hi!!! <br>";
 
if(isset($_POST['submit'])) {
    $lastName = $_POST['last_name'];
    $firstName = $_POST['first_name'];
    $middleName = $_POST['middle_name'];
    $eMail = $_POST['email'];
    $password = $_POST['password'];
    $schoolName = $_POST['school_name'];
    $Phone = $_POST['phone'];
    $postCode = $_POST['post_code'];
 
//$password = hash("sha256",$password);
//echo $password, "<br>";
    $salt = rand(10, 99999);
    $cryptPass = crypt($password, $salt);
    echo $cryptPass, "<br>";
    $cryptPass = hash("sha512", $cryptPass);
    echo $cryptPass, "<br>";
 
    $mySQLi = mysqli_connect("127.0.0.1", "user", "123456", "phptest") or die(mysqli_error($mySQLi));
    if ($mySQLi) {
        echo "Connected <br>";
    }
 
    $mySQLi->query("INSERT INTO `testtable` (`id`,`last_name`,`first_name`,`middle_name`,`email`,`password`,`salt`,`post_code`,`school_name`,`phone`) VALUES ('NULL','$lastName','$firstName','$middleName','$eMail','$cryptPass','$salt','$postCode','$schoolName','$Phone')") or die(mysqli_error($mySQLi));
 
    $rs = $mySQLi->query("SELECT * FROM `testtable`");
 
    echo "In DB: <br>";
//$rs->data_seek(0);
    while ($row = $rs->fetch_assoc()) {
        echo "user id:" . $row['id'] . "<br> username " . $row['last_name'] . " <br>", "pass " . $row['password'] . "<br>";
    }
    $rs->free_result();
    if ($mySQLi->close()) {
        echo "Disconnected";
    }
    else 'не submit';
}
 
?>
</body>
</html>
Вывод only Hi!!!
В базе пусто.

Добавлено через 4 минуты

Без isset
Notice: Undefined index: last_name in C:\Users\Admin197\PhpstormProjects\phptest\registration.php on line 10 (и до 17)

Добавлено через 2 минуты
Где я туплю???
0
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
03.03.2016, 11:33 6
Во-первых, else echo 'не submit'; вынесите после последней скобки.
Во-вторых, не уверен, но вместо
HTML5
1
<form id="regform" name="regform" action="registration.php" method="post">
пропишите
HTML5
1
<form method="post" id="regform" name="regform" action="registration.php">
т е method="post" перенести в начало.
Где то я такое уже встречал...
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 16
03.03.2016, 12:18  [ТС] 7
Не в else счастье
Цитата Сообщение от Пифагор Посмотреть сообщение
пропишите
HTML5
<form method="post" id="regform" name="regform" action="registration.php">
Фигоньки...
Я уже так тоже пытался. Сейчас повторил. Все равно не робит..

not submit
КМК, из html не передается. Или не там ищется.
100500% где-то мелочь какая-то...
0
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
03.03.2016, 12:31 8
DmitriySC, я с таким не встречался. И понятия не имею, из-за чего это может быть. На первый взгляд все в порядке.
Наконец, снесите и переустановите PHP или весь локалсервер. Не знаю, что у Вас.
Очевидно, что дело в POST-методе.

Добавлено через 1 минуту
Если есть хостинг, проверьте на нем.

Добавлено через 5 минут
Цитата Сообщение от DmitriySC Посмотреть сообщение
КМК, из html не передается. Или не там ищется.
Исключено. Есть метод и есть name поля. И запущенный вебсервер. Этого достаточно.
Ищется там. Ведь GET же работает, как я понял.
0
1932 / 1761 / 822
Регистрация: 23.01.2014
Сообщений: 6,205
03.03.2016, 12:34 9
Пифагор, DmitriySC, тут дело навряд ли в PHP и уж не в HTML тем более. Куда Вы атрибут тега не ставьте - разницы не будет.

99% это из за каких-нибудь редиректов или других настроек веб-сервера.
0
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
03.03.2016, 12:35 10
А случайно, другой формы на странице нет, у которой <input type="submit" name="submit" value="Зарегать меня!"> с методом POST?
0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 16
03.03.2016, 12:42  [ТС] 11
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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
<form method="post" id="regform" name="regform" action="registration.php">
 
    <input type="text" name="last_name" placeholder="Фамилия" required ><br>
    <input type="text" name="first_name" placeholder="Имя" required><br>
    <input type="text" name="middle_name" placeholder="Отчество" required><br>
    <input type="email" name="email" placeholder="E-mail" required><br>
    <input type="text" name="school_name" placeholder="Наименование учреждения" required><br>
    <input type="tel" name="phone" placeholder="телефон" required><br>
    <input type="text" name="post_code" placeholder="Почтовый индекс" required><br>
    <input type="password" name="password" placeholder="Пароль" required><br>
    <input type="password" name="confirm_password" placeholder="Повторите пароль" required><br>
 
    <input type="submit" name="submit" value="Зарегать меня!"><br>
    <input type="reset" value="Очистить форму">
 
</form>
</body>
</html>
На странице регистрации только эта форма. И только этот код. Она вообще пустая. Это страница registration.html

XAMPP стоит. Может, где-то его поковырять?

Добавлено через 2 минуты
Если использовать GET, то все работает нормально.
Но ведь суть-то не в GET, а в том, что POST не работает. Не буду же все формы гетом гонять на сервер.
0
1639 / 1305 / 639
Регистрация: 10.01.2015
Сообщений: 4,283
03.03.2016, 12:46 12
Поставьте Денвер для проверки. Но там точно все будет работать...
1
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 16
03.03.2016, 21:59  [ТС] 13
В Denwer работает.
чозанах?....
0
pav1uxa
03.03.2016, 22:02
  #14

Не по теме:

хз вроде ответил...

0
0 / 0 / 0
Регистрация: 03.03.2016
Сообщений: 16
23.03.2016, 18:24  [ТС] 15
Я мегатормоз...
Но я его победил.

Ваяю в PHPStorm (хз., так получилось. Он первый под руку попал).
Как я понял, он свой сервер стартует.

Перекинул проект в XAMPP, поковырял php.ini - все заработало.
Пардон за бестолковую тему. Но, м.б., кому-то поможет не биться головой об стену неделю
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2016, 18:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Php код не работает в html
Я сделал сайт с небольшими вставками кода php внутри html файлов. На локальном компе всё нормально...

Не работает PHP код внутри html
Не работает PHP код внутри html, скрин во вложении, выдает ошибку (скрин также вложен) Подскажите...

Цикл работает неправильно, в то время как POST работает
Всем привет! Я хотел написать под php скрипт с авторизацией, брут, на своем сайте(подбор пароля)....

Не работает задание html свойства из php переменной
Здравствуйте ! Возникла проблема. Текст выводится динамически из блока: &lt;?php echo &quot; &lt;span...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.