Denis97832 Опубликовано 13 февраля, 2015 Поделиться Опубликовано 13 февраля, 2015 (изменено) Вот этим кодом на делфи я подключаюсь<?phpinclude('bd.php'); // Подключение к бд$link = mysqli_connect( '127.0.0.1', 'root', '', '123123'); if (!empty($_GET['key])) { $klop = mysqli_real_escape_string($link, $_GET['key'] ); $result = mysqli_query( $link, "SELECT * FROM `Ropbazi` WHERE key='$key'ORDER BY id DESC LIMIT 1"); $row = mysqli_fetch_assoc($result); if ( empty($row['id'] ) ) { echo 'YES'; //echo '<br />'.$add.'<br />'; if ( $klop == $key ){ //echo '<br />Add'; mysqli_query( $link, "INSERT INTO `scaner` ( `key`) VALUES ( '".$key."')"); //mysqli_close( $link ); } }else echo 'NO';}//mysqli_close( $link );?>varhttp : TidHTTP;str : string;begintry str := http.Get('http://site.ru/key.php?klop='+edit1.text); if str = 'NO' then begin button1.visible:=true; //нет логина end else if str = 'YES' then begin button1.visible:=false; //есть логин end; except //Ошибка end; end;end. Изменено 14 февраля, 2015 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 13 февраля, 2015 Поделиться Опубликовано 13 февраля, 2015 if (!empty($_GET['key]))У тебя забыт второй апостроф в имени ключа $_GET['key]. Должно бытьif (!empty($_GET['key']))Надеюсь, понял, где. И да, ключ передавать в GET, где его может увидеть любой - маразм запредельный. Если этот ключ должен иметь хоть каплю секретности, лучше передавать его через сессию. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 13 февраля, 2015 Автор Поделиться Опубликовано 13 февраля, 2015 if (!empty($_GET['key]))У тебя забыт второй апостроф в имени ключа $_GET['key]. Должно бытьif (!empty($_GET['key']))Надеюсь, понял, где. И да, ключ передавать в GET, где его может увидеть любой - маразм запредельный. Если этот ключ должен иметь хоть каплю секретности, лучше передавать его через сессию. К сожаленю я в php не понимаю, не могли бы подсказать что да как Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 13 февраля, 2015 Поделиться Опубликовано 13 февраля, 2015 К сожаленю я в php не понимаю, не могли бы подсказать что да какСмотри по коду в первом сообщении, подсветка даже на сайте говорит о том, что все, что следует после: if (!empty($_GET['key])) - является строкой (зеленый цвет).Xipho показал, где кроется ошибка, а именно - в одинарной кавычке (точнее - в ее отсутствии).if (!empty($_GET['key])) // <-- не хватает кавычкиif (!empty($_GET['key'])) // <-- кавычка на местеЭто если я правильно понял твой вопрос. А по поводу GET запроса и сессии, то если ключ представляет из себя что-то, что пользователю знать (и тем-более - изменять) не положено, то смотри в сторону сессий.P.S.Закладки зачетные Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 13 февраля, 2015 Поделиться Опубликовано 13 февраля, 2015 К сожаленю я в php не понимаю, не могли бы подсказать что да как Если в php не понимаешь - лучше не берись править код, ибо такого можешь напортачить, что мама горевать замучается. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 13 февраля, 2015 Автор Поделиться Опубликовано 13 февраля, 2015 (изменено) Если в php не понимаешь - лучше не берись править код, ибо такого можешь напортачить, что мама горевать замучается.Да не что такого можно натворить то в этом коде Смотри по коду в первом сообщении, подсветка даже на сайте говорит о том, что все, что следует после: if (!empty($_GET['key])) - является строкой (зеленый цвет).Вот исправил все по другому, но все же ошибочка<?php$localhost="localhost";$name_bd="12312431";$base="root";$passw_bd="2134242";$link = mysql_connect($localhost,$name_bd,$passw_bd);mysql_select_db($base, $link);$key = trim($_GET['key']);if (!empty($key)) { $result = mysql_query("SELECT * FROM `root` WHERE (`key`= '$key') "); while($row = mysql_fetch_assoc($result)) { $id=$row['id']; } if(!empty($id)){ echo "Ключ введен вверно"; mysql_query("INSERT INTO `root` ( `key`) VALUES ('".$key."')",$link); } else {echo 'Ключ не подходит';} } else {echo 'Не правильно введен ключ';}?> Изменено 14 февраля, 2015 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 13 февраля, 2015 Поделиться Опубликовано 13 февраля, 2015 <?php$localhost="localhost";$name_bd="12312431";$base="root";$passw_bd="2134242";$link = mysql_connect($localhost,$name_bd,$passw_bd);mysql_select_db($base, $link);$key = trim($_GET['key']);if (!empty($key)) { $result = mysql_query("SELECT * FROM `root` WHERE (`key`= '$key') "); while($row = mysql_fetch_assoc($result)) { $id=$row['id']; if(!empty($id)) { echo "Ключ введен верно"; mysql_query("INSERT INTO `root` ( `key`) VALUES ('".$key."')",$link); } else { echo 'Ключ не подходит'; } }} else { echo 'Не правильно введен ключ';}?> Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 13 февраля, 2015 Автор Поделиться Опубликовано 13 февраля, 2015 (изменено) Так попробуйВот что пишет Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/u714706965/public_html/scaner/key.php on line 11 Запрос делаю вот так http://site.ru/key.php?key= здесь пишу ключ который уже есть в бд Изменено 14 февраля, 2015 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 13 февраля, 2015 Поделиться Опубликовано 13 февраля, 2015 Ошибок вроде не должно быть. А подключение к серверу и БД - проверено? Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 13 февраля, 2015 Автор Поделиться Опубликовано 13 февраля, 2015 (изменено) Ошибок вроде не должно быть. А подключение к серверу и БД - проверено?Да все отлично,Ну как тогда можно сделать php скрипт чтоб я мог обращаться Запрос делаю вот такhttp://site.ru/key.php?key= здесь пишу ключ который уже есть в бдЕсли есть ключ то пишет ключ "Ключ введен верно"а если в бд нет ключа, то 'Ключ не подходит' Изменено 13 февраля, 2015 пользователем Denis97832 Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 13 февраля, 2015 Поделиться Опубликовано 13 февраля, 2015 Я вот не поленился, и проверил код из своего поста. Он рабочий.Запрос из адресной строки:Ответ:Ключ введен верноПроверяй настройки переменных.<?php$localhost="localhost";$name_bd="12312431"; // пользователь MySQL$base="root"; // имя БД$passw_bd="2134242"; // пароль пользователя MySQL$link = mysql_connect($localhost,$name_bd,$passw_bd);mysql_select_db($base, $link);$key = trim($_GET['key']);if (!empty($key)) { $result = mysql_query("SELECT * FROM `root` WHERE (`key`= '$key') "); // <-- здесь ты выполняешь запрос к таблице "root", а "root" обычно является пользователем БД, если нет, то проверь колонку "key". while($row = mysql_fetch_assoc($result)) { $id=$row['id']; if(!empty($id)) { echo "Ключ введен верно"; mysql_query("INSERT INTO `root` ( `key`) VALUES ('".$key."')",$link); } else { echo 'Ключ не подходит'; } }} else { echo 'Не правильно введен ключ';}?>http://test.com/index.php?key=1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 14 февраля, 2015 Поделиться Опубликовано 14 февраля, 2015 var post : TStringList;res: string;beginpost := TStringList.Create;IdHTTP1.HandleRedirects := True;trypost.Add('klop='+Edit1.Text);res := UTF8Decode(IdHTTP1.Post('http://site.ru/key.php', post)); if (res = 'YES') then button1.visible := false else button1.visible := true;exceptpost.Free;end;IdHTTP Не забудь добавить. И отслеживай, какой ответ от сервера тебе приходит. Потому что может еще html код вернуться и его нужно будет отрезать.P.S. Если ты делаешь авторизацию, то применяй хотябы 64byte кодинг.И еще такой метод авторизации легко обойти. Через Denwer сделать эмулятор твоего скрипта, который будет всегда возвращать YESНужно реализовать еще 1 идентификатор. Например:Ключ у тебя длиной 16 символов.Тогда лепим строку key + номер раздела диска С.Шифруем строку.Отправляем на сервер.Сервер отрезает от строки 16 символов и заносит строку в переменную key.Далее если такой ключ существует, то серв возвращает остаток строки, в зашифрованном виде, с номером раздела.Прога приняла эти данные и расшифровала.Далее, если номер раздела совпадает с текущем, то авторизация прошла успешна.Принимать константы с сервера - это самый бестолковый способ при авторизации.А так хоть у всех пользователей разные данные будут отправляться, и всякие школьники не додумаются, как из изменить, чтоб авторизация прошла. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 14 февраля, 2015 Автор Поделиться Опубликовано 14 февраля, 2015 (изменено) NullAlex, я все понял) Спасибо Vlad2, помоги пожалуйста с кодом php Имею таблицу в ней 1 столбец: Key Нужно произвести поиск по этому Key Если нашёл - вывести из таблицы найденную строку (2 одинаковых фраз не встречается в таблице) Название таблицы scaner как можно сделать так чтоб если есть ключ в этом Key , то будет YES NullAlex: не надо цитировать все сообщение, цитировать следует отдельные участки сообщения, или если на то пошло - использовать ник, в качестве обращения. Не нужно создавать страшные длиннопосты Изменено 14 февраля, 2015 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 14 февраля, 2015 Поделиться Опубликовано 14 февраля, 2015 Я не понимаю, как выглядит твоя таблица и по каким критериям нужно искать.Как ты объяснил, имеет следующий вид;|Key|value0value1value2value3Ищем допустим value1, ну найдется оно и что? Выводить его чтоли нужно?Или же у тебя таблица имеет такой вид? Table | Key |value0 ABCvalue1 DEFvalue2 GHIvalue3 JKLИ тебе нужно найти GHI и посмотреть чему она принадлежит? В данном случае value2.Или такая у тебя таблица?Table | Key | String |value0 ABC Вася value1 DEF Коляvalue2 GHI Петяvalue3 JKL ДимаИ ты хочешь найти ABC, посмотреть чему принадлежит(value0), и из value0 прочесть String и получить "Вася"?объясни подробней. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 14 февраля, 2015 Автор Поделиться Опубликовано 14 февраля, 2015 (изменено) В общем вот скриншоты) Ты с Хабаровска? NullAlex: изменил сообщения в теме. Убрал картинки и объемный код под спойлеры, убрал очевидные и ненужные цитаты, которые создавали уродливые длиннопосты. Изменено 14 февраля, 2015 пользователем NullAlex Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 15 февраля, 2015 Поделиться Опубликовано 15 февраля, 2015 Ну вот смоти, у тебя есть столбец Key, ты внем хочешь найти 123, а что ты хочешь вывести то, если у тебя больше там нет никаких данных? Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 17 февраля, 2015 Автор Поделиться Опубликовано 17 февраля, 2015 Ну вот смоти, у тебя есть столбец Key, ты внем хочешь найти 123, а что ты хочешь вывести то, если у тебя больше там нет никаких данных?Ну вот если нашёл это "123", то чтоб мне выводит "YES". Если не нашел , то чтоб выводило "NO" Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 февраля, 2015 Поделиться Опубликовано 17 февраля, 2015 Если тебе нужно найти именно 123, тогда пишешь SELECT * FROM `scaner` WHERE `key` = '123';Если же тебе нужно найти все записи, в которых содержится 123, тогдаSELECT * FROM `scaner` WHERE `key` LIKE '%123%';Как-то так. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 17 февраля, 2015 Автор Поделиться Опубликовано 17 февраля, 2015 Мне надо чтоб при таком запросеHttp://site.RU/key.php?key= здесь ключ И если такой имеется в базе, то "YES", a ecли нет такого в базе то "NO"Я бы зделал все сам, но в php вообще не понимаю Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 февраля, 2015 Поделиться Опубликовано 17 февраля, 2015 Так я тебе привел два варианта. Первый - как раз на полное равенство ключу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 17 февраля, 2015 Автор Поделиться Опубликовано 17 февраля, 2015 Так я тебе привел два варианта. Первый - как раз на полное равенство ключу.Спасибо))) Можете помочь полность со всем скриптом)? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 февраля, 2015 Поделиться Опубликовано 17 февраля, 2015 Нет, потому что тогда получится, что я не помог, а написал за тебя. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 17 февраля, 2015 Автор Поделиться Опубликовано 17 февраля, 2015 Нет, потому что тогда получится, что я не помог, а написал за тебя.Не понял) Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 17 февраля, 2015 Поделиться Опубликовано 17 февраля, 2015 Не понял)Чего ты не понял? Тебе сказали, что весь скрипт за тебя писать не будут.Всё что необходимо для написания своего скрипа ты уже получил в этом топике. Ссылка на комментарий Поделиться на другие сайты Поделиться
Denis97832 Опубликовано 17 февраля, 2015 Автор Поделиться Опубликовано 17 февраля, 2015 Чего ты не понял? Тебе сказали, что весь скрипт за тебя писать не будут.Всё что необходимо для написания своего скрипа ты уже получил в этом топике.Вот теперь понял) И на это спасибо что помоглиВсем спасибо!!!! Все сделал и все работает) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения