PDA

Просмотр полной версии : что не так с insert через PHP в MySQL?


cheremuxa
03.01.2020, 15:25
PHP:






prepare('INSERT INTO `test` (`nickn`) VALUES (nickn)')) {
$nickn = (isset($_POST['nickn']) ? strval($_POST['nickn']) : '$nickn');
$stmt->bind_param('ss', $curS, $nickn);
if ($stmt->execute()) {
echo 'data received, inserting...';
$stmt->close();
} else {
echo 'error';
$stmt->close();
}
}
?>




переменная nickn передается по POST - запросу из Lua скрипта

нужно записать текст, а оно записывает так:

Screenshot (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tL3FpdWd6OQ)

Captured with Lightshot

prntscr.com


т.е пустое значение, а должно записать:

nickname=ник из сампа

в консоли Moonloader'a:

DATA[ML] (script) test.lua: nickname=DieDoS

RESPONSE[ML] (script) test.lua: data received, inserting...

CODE[ML] (script) test.lua: 200

HEADERS[ML] (script) test.lua: table: 0x0ef05f10

STATUS [ML] (script) test.lua: HTTP/1.1 200 OK

Mirrorka
03.01.2020, 16:21
топ советов в 2020 году:

протести сначала напрямую, а потом через скрипт отталкиваясь от опытов

cheremuxa
03.01.2020, 16:21
топ советов в 2020 году:
протести сначала напрямую, а потом через скрипт отталкиваясь от опытов


и как же?

AnWu
03.01.2020, 16:36
и как же?


через браузер, очевидно. попробуй через гет, заием пост

itsLegend
03.01.2020, 16:39
Ты передаешь в prepare строку для форматирования, но не указываешь в ней параметры.

Вывод: пиши по скриптум что ты нихуя не понимаешь что происходит и просто взял пример из инетика.

PHP:






// ...
if
(
$stmt
=
$mysql
-
>
prepare
(
'INSERT INTO `test` (`nickn`) VALUES (?)'
)
)
{
$nickn
=
(
isset
(
$_POST
[
'nickn'
]
)
?
strval
(
$_POST
[
'nickn'
]
)
:
'$nickn'
)
;
$stmt
-
>
bind_param
(
's'
,
$nickn
)
;
// ...

cheremuxa
03.01.2020, 16:45
Ты передаешь в prepare строку для форматирования, но не указываешь в ней параметры.
Вывод: пиши по скриптум что ты нихуя не понимаешь что происходит и просто взял пример из инетика.

PHP:






// ...
if
(
$stmt
=
$mysql
-
>
prepare
(
'INSERT INTO `test` (`nickn`) VALUES (?)'
)
)
{
$nickn
=
(
isset
(
$_POST
[
'nickn'
]
)
?
strval
(
$_POST
[
'nickn'
]
)
:
'$nickn'
)
;
$stmt
-
>
bind_param
(
's'
,
$nickn
)
;
// ...





дак это рабочий код чишо?

ImPasha
03.01.2020, 16:47
Я же уже несколько примеров работы с prepare дал, что за ***ня.

Если не можешь понять или прочитать в интернете (даже на русском уж инструкции есть), делай query напрямую.

PHP:






$mysql
-
>
query
(
'INSERT INTO `users` (`login`, `password`) VALUES ("'
.
$login
.
'", "'
.
$pass
.
'")'
)
;

cheremuxa
03.01.2020, 16:48
дак это рабочий код чишо?


блять хули ты злишса я ищу кто мне даст наводку на что обратить внимание/че переделать

я сам на*** не шарю в пхп мне он нужен на пару строк и все блять1.1

ImPasha
03.01.2020, 16:48
блять хули ты злишса я ищу кто мне даст наводку на что обратить внимание/че переделать
я сам на*** не шарю в пхп мне он нужен на пару строк и все блять1.1





Вы находитесь в разделе "Разработка" (само название уже должно выдавать смысл сего раздела).
Пожалуйста, не сорите здесь просьбами о написании какой-то программы (т.е. требуете уже готовый продукт). В некоторых подразделах имеется специальная тема с правилами для того или иного раздела. Если для раздела доступны префиксы, то вставляйте их не как попало или не ставьте вовсе.
Публикуя какой-либо код, добавляйте его через ББ-код, который можно найти в панели редактора или ввести вручную, более подробно здесь: threads/18663 (https://blast.hk/threads/18663/)



Работа и услуги (https://blast.hk/forums/16/)

blast.hk

cheremuxa
03.01.2020, 16:48
Я же уже несколько примеров работы с prepare дал, что за ***ня.
Если не можешь понять или прочитать в интернете (даже на русском уж инструкции есть), делай query напрямую.

PHP:






$mysql
-
>
query
(
'INSERT INTO `users` (`login`, `password`) VALUES ("'
.
$login
.
'", "'
.
$pass
.
'")'
)
;





так бы сразу)

на что обратить внимание/че переделать

ImPasha
03.01.2020, 16:49
так бы сразу)

на что обратить внимание/че переделать


На то, что это АБСОЛЮТНО НЕБЕЗОПАСНЫЙ СПОСОБ, ТВОЮ БАЗУ ВЗЛОМАЮТ И СОЖГУТ, если так передавать данные.

cheremuxa
03.01.2020, 16:51
На то, что это АБСОЛЮТНО НЕБЕЗОПАСНЫЙ СПОСОБ, ТВОЮ БАЗУ ВЗЛОМАЮТ И СОЖГУТ, если так передавать данные.


да там ничего важного нету в этой базе ебучей

ImPasha
03.01.2020, 16:52
да там ничего важного нету в этой базе ебучей


Тогда всё отлично, в первые скобки просто подставляешь названия столбцов в таблице, а во вторые переменные, из которых будем заполнять базу 🤘

cheremuxa
03.01.2020, 16:54
Тогда всё отлично, в первые скобки просто подставляешь названия столбцов в таблице, а во вторые переменные, из которых будем заполнять базу 🤘


http://prntscr.com/qivk35 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tL3FpdmszNQ) - ('INSERT INTO `test` (`nickn`)

http://prntscr.com/qivko0 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tL3FpdmtvMA) - VALUES ("' . $nickn . '")'

и получится:

if ($stmt = $mysql->query('INSERT INTO `test` (`nickn`) VALUES ("' . $nickn . '")'); {

верно?

ImPasha
03.01.2020, 17:13
http://prntscr.com/qivk35 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tL3FpdmszNQ) - ('INSERT INTO `test` (`nickn`)
http://prntscr.com/qivko0 (https://www.blast.hk/redirect/aHR0cDovL3BybnRzY3IuY29tL3FpdmtvMA) - VALUES ("' . $nickn . '")'
и получится:
if ($stmt = $mysql->query('INSERT INTO `test` (`nickn`) VALUES ("' . $nickn . '")'); {
верно?


Можно и без всяких if'ов, просто так, как я написал. А если используешь if, убери точку с запятой.

cheremuxa
03.01.2020, 17:46
Можно и без всяких if'ов, просто так, как я написал. А если используешь if, убери точку с запятой.


у меня ошибок нет нихуя, но не вставляет он нихуя

DATA[ML] (script) test.lua: nickname=DieDoS

RESPONSE[ML] (script) test.lua:

CODE[ML] (script) test.lua: 200

HEADERS[ML] (script) test.lua: table: 0x0ef05f10

STATUS [ML] (script) test.lua: HTTP/1.1 200 OK

ImPasha
03.01.2020, 17:52
у меня ошибок нет нихуя, но не вставляет он нихуя

DATA[ML] (script) test.lua: nickname=DieDoS
RESPONSE[ML] (script) test.lua:
CODE[ML] (script) test.lua: 200
HEADERS[ML] (script) test.lua: table: 0x0ef05f10
STATUS [ML] (script) test.lua: HTTP/1.1 200 OK


Тебе уже порекомендовали проверять напрямую, через браузер или REST Client (https://www.blast.hk/redirect/aHR0cHM6Ly9jaHJvbWUuZ29vZ2xlLmNvbS93ZWJzdG9yZS9kZX RhaWwvYWR2YW5jZWQtcmVzdC1jbGllbnQvaGdtbG9vZmRkZmZk bnBoZmdjZWxsa2RmYmZiamVsb28)

Проверяй настройки PHP на сервере, выводи результат запроса в PHP