Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: смена блока
 
 автор: kaizer131   (17.02.2009 в 15:11)   письмо автору
 
 

Добрый день господа, как осуществить следующее , есть форма авторизации , которф при правильном вводе логина и пароля(если логин занесен в сессию) должна убираться и заменяться приветствием
вот код основного модуля А

<?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>



но он не убирает форму и не показывает имя :(

  Ответить  
 
 автор: Valick   (17.02.2009 в 15:33)   письмо автору
 
   для: 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. Базу данных создали и заполнили?

  Ответить  
 
 автор: Kaizer131   (17.02.2009 в 18:28)   письмо автору
 
   для: Valick   (17.02.2009 в 15:33)
 

БД создал и заполнил :)
про uses точно, пардон неуглядел.
По поводу " И не покажет..." я и прошу подсказать почему или ссылку дать на материал
на форуме не нашёл :(

  Ответить  
 
 автор: Valick   (17.02.2009 в 18:54)   письмо автору
 
   для: 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'];

и наконец вместо:
include_once('b.php');

Я бы написал так:
include('b.php');

  Ответить  
 
 автор: Slo_Nik   (18.02.2009 в 04:12)   письмо автору
977 байт
 
   для: kaizer131   (17.02.2009 в 15:11)
 

если ты ещё не решил проблему, посмотри мой вариант, может тебе поможет.
немного менял под "себя", так что ты проверь все переменные и т.д., хотя я всё вернул обратно.
есть,конечно, спорный участок кода, но ты его можешь удалить и сделать как тебе покажется лучше.
а так работает, когда вводишь имя и пароль, прячет форму и выводит данные в окно браузера.
p.s. смотри приложение

  Ответить  
 
 автор: kaizer131   (18.02.2009 в 11:55)   письмо автору
 
   для: Slo_Nik   (18.02.2009 в 04:12)
 

спасибо всем !!! Проблему решил :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования