Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вход на страницу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: ....
cwt777
Отправлено: 25 Ноября, 2008 - 22:42:01
Post Id



Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




Всем привет, я нуб в php, сильно не ругайте

Эх трудно объяснить словами, но попробую!

У меня есть главная страница вот она


PHP:
скопировать код в буфер обмена
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
  5. <title>Добро пожаловать =)</title>
  6. </head>
  7. <body>
  8.  
  9. <div align="center">
  10. <p>Добро пожаловать =)</p>
  11. </div>
  12. <?PHP
  13. $ref=rand(10000,1000000);
  14. ?>
  15. <p align="center"><img src="chat.gif" width="50" height="28" /></p>
  16. <form id="form1" name="form1" method="post" action="chat.php">
  17.   <label>
  18.   <div align="center">Введите ваш ник:<br />
  19.     <input type="text" name="name" id="name" />
  20.     <br />
  21.     <br />
  22.   Введите ваш парроль:<br />
  23.   <input type="text" name="pass" id="pass" />
  24.   <br />
  25.   <br />
  26.   <input type="submit" name="submit" id="submit" value="Войти" />
  27.   </div>
  28.   </label>
  29. </form>
  30. <p align="center"><a href="reg.php">Регистрация</a></p>
  31. </body>
  32. </html>


методом post попадаю на страницу chat.php так вот что надо в файле прописать, что бы он проверил имя пользователя и пароль существует ли такой id, если да то впускает в chat.php если нет то выкидывает обратно, а еще чтобы нельзя было открыть файл chat.php на прямую т.е например http://localhost/1/chat.php выкидывал на главную.

ну в принцепе и все))) Если поможете то можно поподробнее описать )) А то я че то все читаю читаю, а вот как все это релизовать непонимаю (((

А вот еще начал писать chat.php но может уже не стого начал

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include ("db.php"); // сдесь подключение к базе
  3. if (isset ($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
  4. if (isset ($_POST['pass'])) {$pass = $_POST['pass']; if ($pass == '') {unset($pass);}}
  5. ?>


а вот само подключение

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $db = mysql_connect ("localhost","root","");
  3. mysql_select_db ("chatok", $db);
  4. ?>


За ранее спасибо Закатив глазки
 
 Top
Гость
Отправлено: 26 Ноября, 2008 - 08:09:40
Post Id


УДАЛЁН










Проблема конечно решается многоми способами. Можно и referer проверять (Не особо хорошо), а можно на главной странице куки устанавливать и если соответсвующих кук нету то выкидывать на главную

Т.е. делаем так:
1. На главнйо странице вводим имя пользователя и пвроль, проверям есть ли такие в базе, допустим грубо говоря SELECT * FROM chatok WHERE uname="$uname" AND pass="$pass", где $uname и $pass переданы глдавной старниццекй формой самой на себя. Если имеется такмая записть и пароль совпадает, то кидаем переадресацию на chat.php и ставим куку
2. Что касается chat.php, в нем проверям наличие аунтификационоой куки, и если она есть то пускам в чат, иначе выбрасывает на главную страницу

P.S. А вообще главную страницу и chat.php можно соединить в одной
 
 Top
cwt777
Отправлено: 26 Ноября, 2008 - 08:41:49
Post Id



Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Сент. 2008  


Помог: 0 раз(а)




если я правильно понял то примерно так ???

index.php вставляем

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. msql_select_db ("SELECT * FROM chatok WHERE uname='$uname' AND pass='$pass'");
  3. if ($uname and $pass == 'true')
  4. {
  5.         session_start();
  6.         header("Location: chat.php");  
  7. }
  8. else
  9. {
  10.         echo "Ошибка при авторизации";
  11.         header("Location: index.php");
  12. }
  13. ?>



а вот в php я вот незнаю что встовлять поискал тут, что то типо того ???

PHP:
скопировать код в буфер обмена
  1. <?
  2.    if ($_SESSION['user']['group']=='guest') {
  3.    $_COOKIE['save']=$_COOKIE['save']?unserialize($_COOKIE['save']):"";
  4.    $login=!$_COOKIE['save']['name'] || isset($_POST['name'])?$_POST['name']:$_COOKIE['save']['name'];
  5.    $pass=!$_COOKIE['save']['pass'] || isset($_POST['pass'])?$_POST['pass']:$_COOKIE['save']['pass'];
  6.    if (isset($name) && isset($pass)) {
  7.        if (!empty($name) && !empty($pass)) {
  8.            if (!$_COOKIE['save']['pass'] || isset($_POST['pass'])) $pass=md5($pass);
  9.            $login=mysql_real_escape_string(htmlspecialchars($login));
  10.            $sql=mysql_query("SELECT * FROM chatok WHERE uname='$uname' AND pass='$pass'".strtolower($name)."'");
  11.            if (mysql_num_rows($sql)) {
  12.                $row=mysql_fetch_assoc($sql);
  13.                if ($row['pass']==$pass) {
  14.                    $_SESSION['user']['group']='user';
  15.                    $_SESSION['user']['login']=$row['name'];
  16.                    if (!headers_sent() && $_POST['save']) {
  17.                        $cook=array();
  18.                        $cook['pass']=$pass;
  19.                        $cook['name']=$row['name'];
  20.                        setcookie("save",serialize($cook),time()+99999,'/');
  21.                    }
  22.                }else {
  23.                  $error="Ошибка: Неверный Пароль";
  24.                }
  25.            }else {
  26.              $error="Ошибка: Такого Пользователя не существует";
  27.            }
  28.        }else {
  29.          $error="Ошибка: Обязательные поля нужно заполнить";
  30.      }
  31.      }
  32.    }

(Отредактировано автором: 26 Ноября, 2008 - 08:42:33)

 
 Top
Гость
Отправлено: 27 Ноября, 2008 - 20:20:15
Post Id


УДАЛЁН










Цитата:
CODE (text):
скопировать код в буфер обмена
  1. if ($uname and $pass == 'true')
Хм, странно, если это данные из формы, в котором вводились имя пользователя и пароь, то это очень странно, либо Вы проверяете был ли ввод переменных, тогда лучше проверить isset, либо Вы не то проверяете.
И самое главное - почему никуда не деваются даные из SELECT запроса, я имею в виду в первой части Вашего кода, его надо проверять, типва mysql_result
И еще почему msql_query заместо mysql_query, по-моему MSQL тоже есть, не то под винду что-ли

Цитата:
CODE (text):
скопировать код в буфер обмена
  1. echo "Ошибка при авторизации";
  2. header("Location: index.php");
Ну так точно делать нельзя, запомните, header всегда имет перед данными, если вы только не перехватываете вывод
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB