|
|
|||||
php and MySQL (login form)
Привет, я ламер в том и другом, но все же пытаюсь что-то делать, и вышеупомянутая деталь сильно осложняет создание чего либо на этих языках (или частично даже системах?). Короче, я взятся делать форум на флэше, но ведь на одном флэше далеко не уедешь, пришлось изучать пхп. Пхп частично подучил и понял что текстовики - это не лучшее решение для хранения инфы, и уж точно не самое удобное и быстродействинное с точки зрения навигации. Базы данных - логично, MySQL - как самая доступная и ,вроде бы, поддерживается большенством хостеров.
ну и вот, MySQL вроде как освоил худо-бедно, пхп тоже, но как доходит до скрещивания, вот тут-то и появляются проблемы. А еще точнее, я делаю форму ВХОДА в систему, и никак не могу заставить работать вот эти строчки: $id=mysql_query("SELECT id FROM users WHERE name = '$login'"); $logging=mysql_query("SELECT pass FROM users WHERE name = '$login'"); <?php $login = $_REQUEST["login"]; $pass = $_REQUEST["pass"]; $mysqllocation="localhost"; #host name $mysqllogin="usnul"; #your MySQL user name $mysqlpass="none"; #your MySQL password $mysqldbname="forum"; #name of the forum database $mysqltablename="users"; #name of the table with users' data $link = mysql_connect($mysqllocation, $mysqllogin, $mysqlpass); if($link){ mysql_select_db($mysqldbname); if(mysql_select_db($mysqldbname)){ if(!empty($login) AND !empty($pass)){ $id=mysql_query("SELECT id FROM users WHERE name = '$login'"); $logging=mysql_query("SELECT pass FROM users WHERE name = '$login'"); if($logging){ if(mysql_result($logging)==$pass){ echo "&message=Password is correct&description=".$id."&"; } else{ echo "&message=Incorrect passwords&description=".mysql_result($logging)."&"; #echo "&message=Incorrect password&description=".$id."&"; die(); } } else{ #echo "&message=Could not check the password&description=Check MySQL log file for more info&"; echo "&message=Could not check the password&description=".mysql_error()."&"; die(); } } else{ if(empty($login) AND empty($pass)){ echo "&message=No login and password values&"; die(); }elseif(empty($login)){ echo "&message=No login value&"; die(); }else{ echo "&message=No password value&"; die(); } } } else{ echo "&message=Could not select the database&description=".mysql_error()."&"; die(); } } else{ echo "&message=Could not connect to MySQL&description=".mysql_error()."&"; die(); } mysql_free_result($result); mysql_close($link); ?>
__________________
I'm only happy when it rains. Waka Laka Последний раз редактировалось Usnul; 03.04.2004 в 22:51. |
|
|||||
попробуй тоже самое только без одинарных кавычек, просто
WHERE name=$login только побыстрей пока CRAZY не объявился...
__________________
:::::::::::: sump :::::::::::: |
|
|||||
к сожалению это не работает
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
вот этот код не пойдет на замену, так как он не возврашает пароля от указанной учетной записи, а просто возвращает значение какой-либо колонки в первой (в данном случае) строчке, что не есть суть задуманного. А суть такова, что при посылке в базу имени пользователя, база должна была бы вернуть пароль, пароль был бы в последствии сравнен с тем что ввел пользователь, и если пароль совпадает, узер бы логинился.
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
цитаты из учебника по MySQL (доступного для скачивания на сайте www.mysql.com) гласит:
---------------------------------------------- 3.3.4.2 Выборка определенных строк Из таблицы можно выбрать и только нужные строки. Например, если вы хотите проверить правильность внесенных в дату рождения собаки Bowser изменений, соответствующую запись можно получить следующим способом: mysql> SELECT * FROM pet WHERE name = "Bowser"; +--------+-------+---------+------+------------+------------+ | name | owner | species | sex | birth | death | +--------+-------+---------+------+------------+------------+ | Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 | +--------+-------+---------+------+------------+------------+ эта часть мануала говорит что чтобы получить значения всех колоник в какой-то строчке, то нужно нфписать что-то вроде: mysql> SELECT * FROM sometable WHERE y = "x"; где y - это название координирующего столбца, а x, соответственно, значение элемента в координирующем столбце. После введения данной строчки MySQL выведет значения всех елементов строчки в которой находится указанная ячейка. следующия цитата учит: --------------------------------------------- 3.3.4.3 Выборка определенных столбцов Если строки целиком вам не нужны, достаточно просто перечислить имена нужных столбцов, разделив их запятыми. Например, если вы хотите узнать, когда родились животные, выберите столбцы с именами и датами рождения: mysql> SELECT name, birth FROM pet; +----------+------------+ | name | birth | +----------+------------+ | Fluffy | 1993-02-04 | | Claws | 1994-03-17 | | Buffy | 1989-05-13 | | Fang | 1990-08-27 | | Bowser | 1989-08-31 | | Chirpy | 1998-09-11 | | Whistler | 1997-12-09 | | Slim | 1996-04-29 | | Puffball | 1999-03-30 | +----------+------------+ эта часть говорит - если введешь mysql> SELECT x FROM sometable; то получишь значения всех этементов столбца x из таблици sometable. то есть mysql> SELECT n FROM sometable WHERE y = "x"; должно нам вернуть значение одной единственной ячейки, так?! простите если что запутанно, голова толком не варит.
__________________
I'm only happy when it rains. Waka Laka Последний раз редактировалось Usnul; 04.04.2004 в 03:10. |
|
|||||
Регистрация: Dec 2003
Сообщений: 36
|
попробуй так:
$result = mysql_query("SELECT id, pass FROM users WHERE name = '$login'",$link); $myrow = mysql_fetch_row($result) $id=$myrow[0]; $logging=$myrow[1]; Цитата:
|
|
|||||
должно пройти потому что это правильно:
$query = "SELECT id FROM user WHERE name="\"".$login."\""; $id = mysql_query($query) or die ("query failed"); \" символ двойной кавычки
__________________
:::::::::::: sump :::::::::::: |
|
|||||
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Цитата:
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
Ветеран форума
|
Что ж... вот маленький простойскрипт авторизаци. с использованием куков.
auth.php
табличка приблезительно такого содержания. id INT авто инкремент login VARCHAR(15) // 15 символов на логин pass VARCHAR(32) // 32 символа нужно для шифровки пароля в ЬMD5 в скрипте встречаются таки страницы как login.php // єто обікнвенній html файл с формой для логинга index.php // єто файл для достпа по авторайзу. содержание index.php может біть разнім но в первой строче нужно включить скрипт авторизации если вы увидели что вы авторизированы, значит так и есть, если нет то увидите форму логинга. примечание - сей скрипт не работает на сервере под управлением Apache 2. почему сам не знаю.
__________________
... |
|
|||||
значит будем все переписывать
спасибо вам всем господа.
__________________
I'm only happy when it rains. Waka Laka |
Часовой пояс GMT +4, время: 13:52. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|