![]() |
|
||||||||||
|
|||||
|
Привет, я ламер в том и другом, но все же пытаюсь что-то делать, и вышеупомянутая деталь сильно осложняет создание чего либо на этих языках (или частично даже системах?). Короче, я взятся делать форум на флэше, но ведь на одном флэше далеко не уедешь, пришлось изучать пхп. Пхп частично подучил и понял что текстовики - это не лучшее решение для хранения инфы, и уж точно не самое удобное и быстродействинное с точки зрения навигации. Базы данных - логично, 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, время: 02:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|