|
|
|
| Добрый день господа, как осуществить следующее , есть форма авторизации , которф при правильном вводе логина и пароля(если логин занесен в сессию) должна убираться и заменяться приветствием
вот код основного модуля А
<?php session_start();?>
<?php
$user="####";
$pass="####";
$db="#####";
$link=mysql_connect( "localhost",$user,$pass );
if (! $link) die("Couldn`t connect to MySql");
mysql_select_db($db,$link) or die("ERROW Select db!".mysql_error());
?>
<?php
if ($_POST['rlogin']!="" && $_POST['rpassword']!="") {
$user2 = htmlentities(addslashes(trim($_POST['rlogin'])));
$password = md5(md5(trim($_POST['rpassword'])));
$num = mysql_num_rows(mysql_query("select * from regis where login='$user' and password='$password'"));
if ($num == "1") {
$_SESSION['user'] = "$user";
}
}
?>
<?
if(!isset($_SESSION['user'])) {
echo $user2;
}
else
{
include_once('b.php');
}
?>
|
А это подключаемый модуль В
<FORM method="POST">
Логин:
<input type='text' name="rlogin" />
<br>
Пароль:
<input type="password" name="rpassword" />
<br>
<INPUT type="submit" value="Вход"><br/>
<a href="/cgi-bin/regist/registr.php">Регистрация</a>
</FORM>
|
но он не убирает форму и не показывает имя :( | |
|
|
|
|
|
|
|
для: kaizer131
(17.02.2009 в 15:11)
| | И не покажет...
$user2 = htmlentities(addslashes(trim($_POST['rlogin']))); - переменная $user2
$num = mysql_num_rows(mysql_query("select * from regis where login='$user' and
password='$password'")); - используется переменная $user
echo $user2; - этого вообще не должно быть! из сессии доставайте переменную
|
и в форме экшн отсутствует...
P.S. Базу данных создали и заполнили? | |
|
|
|
|
|
|
|
для: Valick
(17.02.2009 в 15:33)
| | БД создал и заполнил :)
про uses точно, пардон неуглядел.
По поводу " И не покажет..." я и прошу подсказать почему или ссылку дать на материал
на форуме не нашёл :( | |
|
|
|
|
|
|
|
для: Kaizer131
(17.02.2009 в 18:28)
| | Какую ссылку?))) Нет у меня никакой ссылки... у меня есть мозг который иногда думает, но в данный момент сильно болит.
По поводу " И не покажет..."
Я Вам сказал что принимаете $user2, а в базу для проверки "посылаете" несуществующую переменную $user.
Начинайте проверять свой код по порядку:
Есть такой незаменимый оператор как echo
Посмотрите приходят ли данные из формы:
echo $user2 = htmlentities(addslashes(trim($_POST['rlogin'])));
|
и уберите htmlentities
echo $user2 = addslashes(trim($_POST['rlogin']));
|
при условии что магические кавычки отключены (хотя я бы на это не расчитывал)
Запросы можно заносить в отдельную переменную, так легче их проверять:
echo $query="SELECT * FROM regis WHERE login='$user2' AND password='$password'";
$num = mysql_num_rows(mysql_query($query));
|
Этого, как я уже говорил, быть не должно
if(!isset($_SESSION['user'])) {
echo $user2;
|
Должно быть так:
if(isset($_SESSION['user'])) {
echo $_SESSION['user'];
|
и наконец вместо:
Я бы написал так:
| |
|
|
|
|
 977 байт |
|
|
для: kaizer131
(17.02.2009 в 15:11)
| | если ты ещё не решил проблему, посмотри мой вариант, может тебе поможет.
немного менял под "себя", так что ты проверь все переменные и т.д., хотя я всё вернул обратно.
есть,конечно, спорный участок кода, но ты его можешь удалить и сделать как тебе покажется лучше.
а так работает, когда вводишь имя и пароль, прячет форму и выводит данные в окно браузера.
p.s. смотри приложение | |
|
|
|
|
|
|
|
для: Slo_Nik
(18.02.2009 в 04:12)
| | спасибо всем !!! Проблему решил :) | |
|
|
|