EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

RSS Feed

Вопрос по php/MySQL
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
 
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов EOMY.NET -> Программирование для WEB
Вопрос по php/MySQL
Автор Сообщение
girafenok
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 17.11.2007
Сообщения: 158

13289 Монеты

СообщениеДобавлено: Сб, 18 Окт, 2008 15:33    Заголовок сообщения: Ответить с цитатой

Исправление
Код:
 $sqlqueryauth = "SELECT `password` FROM `users` WHERE `username`=`$userlogin` AND `password` == `$userpass`";


Код формы в студию! Very Happy
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
[LP]LordPro.teus
$a ||= 5;
$a ||= 5;


Зарегистрирован: 26.07.2007
Сообщения: 3303

37521 Монеты

СообщениеДобавлено: Сб, 18 Окт, 2008 15:38    Заголовок сообщения: Ответить с цитатой

Код:
AND `password` == `$userpass`

Shocked
==?
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
uforum
$a ||= 5;
$a ||= 5;


Зарегистрирован: 22.01.2008
Сообщения: 715
Откуда: Литва
4862 Монеты

СообщениеДобавлено: Сб, 18 Окт, 2008 15:39    Заголовок сообщения: Ответить с цитатой

girafenok
Спасибо

Код:
   if ($authenter = 1)
      {
      echo "<a href=\"http://$livesiteurl/index.php?logout=1\">$logout</a><br>";
      }
   else
      {
      ?>
<td class="loginform"
<form action="http://<?php echo $livesiteurl ?>/index.php" method="POST">
<p><?php echo $enterloginmin ?><br>
<input type="text" name="userlogin" value="<?php echo $_POST['userlogin'] ?>"></p>
<p><?php echo $enterpasswordmin ?>
<input type="password" name="password" value="<?php echo md5($_POST['userpassword']) ?>"></p>
<br>
<input type="submit" Value="<?php echo $send ?>"><br>

_________________


http://uforum.org.ua/
Всё про ОС в широком формате

http://bmw3.org.ua/
Всё про BMW 3 и 1 серии
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
[LP]LordPro.teus
$a ||= 5;
$a ||= 5;


Зарегистрирован: 26.07.2007
Сообщения: 3303

37521 Монеты

СообщениеДобавлено: Сб, 18 Окт, 2008 15:41    Заголовок сообщения: Ответить с цитатой

Код:
<input type="password" name="password" value="<?php echo md5($_POST['userpassword']) ?>">

Что за бред?..
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
uforum
$a ||= 5;
$a ||= 5;


Зарегистрирован: 22.01.2008
Сообщения: 715
Откуда: Литва
4862 Монеты

СообщениеДобавлено: Сб, 18 Окт, 2008 15:42    Заголовок сообщения: Ответить с цитатой

[LP]LordPro.teus
Да точно бред

через 1 мин
Всё поправил
Код:
 $userpassn = $_POST['password'];
 $userpass = strip_tags($userpassn);

<input type="password" name="password" value="<?php echo $_POST['userpassword'] ?>"></p>

_________________


http://uforum.org.ua/
Всё про ОС в широком формате

http://bmw3.org.ua/
Всё про BMW 3 и 1 серии
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
Gosudar
Хостинг — это наше всё!
Хостинг — это наше всё!


Зарегистрирован: 08.04.2007
Сообщения: 169

2400 Монеты

СообщениеДобавлено: Сб, 18 Окт, 2008 17:46    Заголовок сообщения: Ответить с цитатой

Всё в корне не правильно. Двойка. Родители в школу.

Вот обалденная инфа для изучения в том числе для вашего случая http://phpfaq.ru/sessions
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
uforum
$a ||= 5;
$a ||= 5;


Зарегистрирован: 22.01.2008
Сообщения: 715
Откуда: Литва
4862 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 09:01    Заголовок сообщения: Ответить с цитатой

Изменил скрипт добавил сесии
Код:
//Check authorization
$gelogoutnn = $_GET[logout];
$gelogoutn = strip_tags($gelogoutn);
$gelogout = htmlspecialchars($gelogoutn);

if ($_SESSION['authenter'] = 1)
   {
   $authenter = 1;
   }
else
   {
   $authenter = 0;
   if ((isset($_POST['userlogin']))&&(isset($_POST['password'])))
      {
      $userpassnn = $_GET['password'];
      $userpassn = strip_tags($userpassn);
      $userpass = htmlspecialchars($userpassn);
      $userloginn = strip_tags($_GET['userlogin']);
      $userlogin = htmlspecialchars($userloginn);
      $sqlqueryauth = "SELECT * FROM `users` WHERE `username`='$userlogin' AND `password`='$userpass'";
      $resauth = mysql_query($sqlqueryauth, $linkmain) or trigger_error(mysql_error().$sqlqueryauth, $linkmain);
      if ($rowauth = mysql_fetch_assoc($resauth))
         {
         session_start();
         $_SESSION['user_name'] = $rowauth['username'];
         $_SESSION['authenter']=$authenter;
         $_SESSION['userpass']=$userpass;
         $_SESSION['userloginn']=$userloginn;
         $_SESSION[' userlogin']=$userlogin;
         $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
         $authenter = 1;
         }
      }
   }
   
   //Logout
   if (isset($gelogout) AND $gelogout==1)
      {
      session_start();
      session_destroy();
      $userpass = 0;
        $userloginn = 0;
        $userlogin = 0;
        $authenter = 0;
      }
      
   //Check session
   if (isset($_REQUEST[session_name()])) session_start();
   if (isset($_SESSION['user_name']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return;
   else
   {
   $authenter = 0;
   }


Но теперь всё время 0

и в форме авторизации появляутся введёный username
_________________


http://uforum.org.ua/
Всё про ОС в широком формате

http://bmw3.org.ua/
Всё про BMW 3 и 1 серии
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
Alek$
$a ||= 5;
$a ||= 5;


Зарегистрирован: 24.11.2007
Сообщения: 879

24007 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 09:14    Заголовок сообщения: Ответить с цитатой

Код:
if ($_SESSION['authenter'] = 1)

Должно быть
Код:
if ($_SESSION['authenter'] == 1)

Это как минимум.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
uforum
$a ||= 5;
$a ||= 5;


Зарегистрирован: 22.01.2008
Сообщения: 715
Откуда: Литва
4862 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 09:24    Заголовок сообщения: Ответить с цитатой

Alek$
Всёравно не работает
_________________


http://uforum.org.ua/
Всё про ОС в широком формате

http://bmw3.org.ua/
Всё про BMW 3 и 1 серии
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
Веденин
$a ||= 5;
$a ||= 5;


Зарегистрирован: 17.05.2007
Сообщения: 1068
Откуда: Самара
4489 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 10:18    Заголовок сообщения: Ответить с цитатой

Во - первых:
Код:
         $_SESSION['user_name'] = $rowauth['username'];
         $_SESSION['authenter']=$authenter;
         $_SESSION['userpass']=$userpass;
         $_SESSION['userloginn']=$userloginn;
         $_SESSION[' userlogin']=$userlogin;
         $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
         $authenter = 1;


стоит переписать как

Код:
       
         $authenter = 1;
         $_SESSION['user_name'] = $rowauth['username'];
         $_SESSION['authenter']=$authenter;
         $_SESSION['userpass']=$userpass;
         $_SESSION['userloginn']=$userloginn;
         $_SESSION[' userlogin']=$userlogin;
         $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
         

иначе получается $_SESSION['authenter'] НИКОГДГА не будет равен 1.

Во - вторых, этот код бредовый
Код:
$resauth = mysql_query($sqlqueryauth, $linkmain) or trigger_error(mysql_error().$sqlqueryauth, $linkmain);

mysql_query возращает объект типа запись с которым вы выполняете логические операции, надо просто
Код:
$resauth = mysql_query($sqlqueryauth, $linkmain);


P.S. Вообще не проще поставить отладочный код во всех критичных местах программы?
_________________
Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг, спортивная, энциклопедическая, поиск музыки и видео и много других
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
$a ||= 5;
$a ||= 5;


Зарегистрирован: 24.11.2007
Сообщения: 879

24007 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 10:23    Заголовок сообщения: Ответить с цитатой

uforum
Нет, ну вы меня поражаете. Просто просмотреть собственный код на предмет ошибок не пробовали?
Цитата:
//Check authorization
$gelogoutnn = $_GET[logout];//Где кавычки?
$gelogoutn = strip_tags($gelogoutn);
$gelogout = htmlspecialchars($gelogoutn);

if ($_SESSION['authenter'] = 1)
{
$authenter = 1;
}
else
{
$authenter = 0;
if ((isset($_POST['userlogin']))&&(isset($_POST['password'])))
{
$userpassnn = $_GET['password'];
$userpassn = strip_tags($userpassn);
$userpass = htmlspecialchars($userpassn);
$userloginn = strip_tags($_GET['userlogin']); // Вы уж определитесь, откуда будете данные получать...
$userlogin = htmlspecialchars($userloginn);
$sqlqueryauth = "SELECT * FROM `users` WHERE `username`='$userlogin' AND `password`='$userpass'";
$resauth = mysql_query($sqlqueryauth, $linkmain) or trigger_error(mysql_error().$sqlqueryauth, $linkmain);
if ($rowauth = mysql_fetch_assoc($resauth))
{
session_start();
$_SESSION['user_name'] = $rowauth['username'];
$_SESSION['authenter']=$authenter; //$authenter = 0; Какой смысл?
$_SESSION['userpass']=$userpass;
$_SESSION['userloginn']=$userloginn;
$_SESSION[' userlogin']=$userlogin;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$authenter = 1;
}
}
}

//Logout
if (isset($gelogout) AND $gelogout==1)
{
session_start();
session_destroy();
$userpass = 0;
$userloginn = 0;
$userlogin = 0;
$authenter = 0;
}

//Check session
if (isset($_REQUEST[session_name()])) session_start(); //Сначала $_POST, потом $_GET, а теперь $_REQUEST. Как-то неправильно, не находите? Да и session_start() надо вызывать до session_name(). В общем, корявая строчка.
if (isset($_SESSION['user_name']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return;
else
{
$authenter = 0;
}

Я уже молчу о стиле оформления кода.


Ни за что не поставлю себе такую цмс... И остальным не советую.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
[LP]LordPro.teus
$a ||= 5;
$a ||= 5;


Зарегистрирован: 26.07.2007
Сообщения: 3303

37521 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 10:25    Заголовок сообщения: Ответить с цитатой

...говорил аффтару не браться за сие занятие... впустую гробит и свое, и уважаемых форумчан время... там еще ошибок и ошибок...
_________________
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
$a ||= 5;
$a ||= 5;


Зарегистрирован: 17.05.2007
Сообщения: 1068
Откуда: Самара
4489 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 11:04    Заголовок сообщения: Ответить с цитатой

Вот код скрипта с отладочной инфой в котором исправлено все указанные ошибки, сразу предупреждаю код не тестил и конечно после отладки все echo надо убрать


$userpass = isset($_GET['password'])?strip_tags(htmlspecialchars($_GET['password'])):"";
$userlogin = isset($_GET['userlogin'])?strip_tags(htmlspecialchars($_GET['userlogin'])):"";

echo "$userpass <br> $userlogin <br>";
if (isset($_GET['logout']) AND $_GET['logout']==1) {
echo "logout";
session_start(); session_destroy();
} if ($_SESSION['authenter'] == 0 && strlen($userpass)>0 && strlen($userlogin)>0){
$sqlqueryauth = "SELECT * FROM `users` WHERE `username`='$userlogin' AND `password`='$userpass'";
echo "$sqlqueryauth <br>";
$resauth = mysql_query($sqlqueryauth, $linkmain);
$rowauth = mysql_fetch_assoc($resauth);
echo $rowauth['username'] ."<br>";
echo mysql_error();
if(strlen($rowauth['username'])>1){
session_start();
$_SESSION['user_name'] = $userlogin;
$_SESSION['authenter'] = 1;
$_SESSION['userpass'] = $userpass;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
echo "authenter = 1 <br>";
}
}


$authenter = $_SESSION['authenter']==1?1:0;
echo "authenter = $authenter <br>";




P.S. В результате в $_SESSION будут хранится данные пользователя и $authenter = 1 при успешной авторизации.
_________________
Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг, спортивная, энциклопедическая, поиск музыки и видео и много других
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
$a ||= 5;
$a ||= 5;


Зарегистрирован: 24.11.2007
Сообщения: 879

24007 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 11:31    Заголовок сообщения: Ответить с цитатой

Веденин
Только к htmlspecialchars необходимо добавить флаг ENT_QUOTES, чтобы защититься от одинарной кавычки.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
uforum
$a ||= 5;
$a ||= 5;


Зарегистрирован: 22.01.2008
Сообщения: 715
Откуда: Литва
4862 Монеты

СообщениеДобавлено: Вс, 19 Окт, 2008 12:04    Заголовок сообщения: Ответить с цитатой

Веденин
ААА почти работает только

Код:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at localhost/fc:25) in localhost/fc/index.php on line 60

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at localhost/fc:25) in localhost/fc/index.php on line 60

_________________


http://uforum.org.ua/
Всё про ОС в широком формате

http://bmw3.org.ua/
Всё про BMW 3 и 1 серии
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора Yahoo Messenger
Показать сообщения:   
Начать новую тему   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8  След.
Страница 7 из 8

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group






Рейтинг SIMPLETOP.NET