Нужно,используя python,отправить данные на сайт и сохранить их в базу данных

153
05 октября 2018, 15:40

Необходимо заполнить форму на сайте. Затем полученные данные записать в таблицу в базу данных.

Форма:

<form action="" method="post">
        <label>Логин</label>
        <input name="login" id="login" type="text"><br/>
        <label>Пароль</label>
        <input name="password" id="password" type="password"><br/>
</form>

php:

if ($_SERVER["REQUEST_METHOD"] == "POST"){
$login = $_POST["login"];
$password = $_POST["password"];
$mysqli = new mysqli ("url.ru","user","password","base");
$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("INSERT INTO `auth`(`login`,`password`) VALUES ($login,$password)");
$mysqli->close();}

Пытался использовать requests и grab:

#requests
import requests
s = requests.session()
values = {'login':'test', 'password':'test'}
url = 'url.ru'
s.post(url, data=values)
#grab
from grab import Grab
g = Grab()
g.go('url.ru')
g.set_input('login','test')
g.set_input('password','test')

Форма заполнялась(это можно увидеть если запрос заключить в переменную), но в таблицу данные не записывались. Почему?

p.s. Когда форма заполняется через python(grab),php просто игнорирует строки с запросами к базе данных, а весь остальной код нормально выполняется. Почему?

p.s.s php не выполняет именно эту строку,остальное все работает(в том числе и остальные запросы к базе):

$mysqli->query("INSERT INTO `auth`(`login`,`password`) VALUES ($login,$password)");
Answer 1

Я не знаю почему, но все заработало когда я поместил переменные в этом запросе в двойные кавычки:$mysqli->query("INSERT INTOauth(login,password) VALUES ($login,$password)");

То есть получилось так:

$mysqli->query("INSERT INTO `auth`(`login`,`password`) VALUES (\"$login\",\"$password\")");

Если кто-то мне объяснит почему нужно было сделать именно так, буду очень благодарен.

READ ALSO
Развертывание проекта на CakePHP

Развертывание проекта на CakePHP

При развертывании проекта на CakePHP в XAMPP столкнулся с такой проблемой:

198
Как получить данные без oAuth 2

Как получить данные без oAuth 2

Хочу получить данные из Google Analytics с определенного аккаунтаДля того чтобы получить информацию по аккаунту нужно пройти oAuth2 авторизацию и разрешить...

164
Меню на PHP и MySQL

Меню на PHP и MySQL

Подскажите, как сделать так, чтобы меню отображалось в select /select

193
Динамический ремаркетинг ocStore 2.1.0.2

Динамический ремаркетинг ocStore 2.1.0.2

Подскажите в чем проблема

148