Вот такая вот ошибка: Вот код: PHP: mysql_query( "DELETE FROM auth_session WHERE Id = ". $user -> id ." AND hash = '" . myhash( $user -> rlogin , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "'" );
собери запрос в переменную выведи и просмотри переменную [sql] $query_del="DELETE FROM auth_session WHERE Id = ". $user -> id ." AND hash = '" . myhash( $user -> rlogin , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "'" ; echo $query_del; [/sql] мне кажется $user->id возращает пустое значение[/sql] для избежания (коль не хочется проверять) возьми в одинарные кавычки [sql] $query_del="DELETE FROM auth_session WHERE Id = '". $user -> id ."' AND hash = '" . myhash( $user -> rlogin , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "'" ; echo $query_del; [/sql]
Не ту дал строку с кодом вот: [sql]$result = mysql_query( "SELECT * FROM `auth_sessions` WHERE `member` = " . $user -> Id . " AND `hash` = '" . myhash( $user -> rlogin , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "' AND time > " . ( time() - ( $minutes * 60 ) ) . " LIMIT 1 " ); [/sql]
ээм...типо: [sql]$result = mysql_query( "SELECT * FROM `auth_sessions` WHERE `member` = " . $user -> Id . " AND `hash` = '" . myhash( $user -> rlogin , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "' AND time > " . ( time() - ( $minutes * 60 ) ) . " LIMIT 1 " ); echo $result;[/sql] ?
Запрос это вот это Но на сервер уходит он в виде строки. Вот эту строку и просят тебя вывести на экран.
нет, типа PHP: $query_sel= "SELECT * FROM `auth_sessions` WHERE `member` = " . $user -> Id . " AND `hash` = '" . myhash( $user -> rlogin , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $_COOKIE['time'] ) . "' AND time > " . ( time() - ( $minutes * 60 ) ) . " LIMIT 1 " ; $result = mysql_query($query_sel); echo $query_sel;
но как...мб я не правильно делаю? делаю как написано тут, но немного изменяю: http://odmin.su/index.php?showtopic=974 вот как правильно сделать...
Переношу в PHP программирование для новичков ибо база данных тут совсем не причем. UPD ну и зачем нам ссылка на статью с кодом по созданию сессий? Особенно с учетом того, что Вы в нем что-то там уже изменили. Научитесь отлавливать ошибки, посмотрите где определяется Ваш объект $user и почему же у него нет id. Отлавливание ошибок это ведь так увлекательно. Telepat Mode Быть может сессия пытается создаться до того как пользователь логинится?
вот смотрите... никак немогу понять! вот login.php PHP: <?php include ("$_SERVER[DOCUMENT_ROOT]/lib/config.php"); include ("$_SERVER[DOCUMENT_ROOT]/lib/functions.php"); if(isset($_POST['login'])) //Если был POST-запрос с скрипту { //Авторизация //Проверка формы if(empty( $_POST['username'] ) || empty( $_POST['password'] ) ) { require ("$_SERVER[DOCUMENT_ROOT]/lib/head.inc"); echo "<center><p>Не все поля заполнены!</p></center>"; require ("$_SERVER[DOCUMENT_ROOT]/lib/end.inc"); }else{ //Если форма нормальная auth(); require ("$_SERVER[DOCUMENT_ROOT]/lib/head.inc"); echo "<center><p>Ты авторизован!</p></center>"; require ("$_SERVER[DOCUMENT_ROOT]/lib/end.inc"); } } //Конец скрипта ?> вылазит ошибка: понятно что это просто предупреждение, но что я не так делаю? 42-46 строки functions.php PHP: $add_session = mysql_query( "INSERT INTO `auth_sessions` VALUES( " . $user -> Id . " , " . time() . " , '" . myhash( $user -> name , $_SERVER['HTTP_USER_AGENT'] , get_ip() , $tm ) . "' )" ); setcookie( "time" , $tm , time() + 900 , "/" ); setcookie( "name" , $user -> rlogin , time() + 900 , "/" );
PHP: <? $result = mysql_query("SELECT * FROM members WHERE rlogin = ' ".$_COOKIE['name']." ' "); $user = mysql_fetch_object( $result ); ?>
сделай PHP: <?php echo "SELECT * FROM members WHERE rlogin = ' ".$_COOKIE['name']." ' "; ?> и выполни получившийся запрос в пма или консоли. Потом будешь говорить про то, как возвращает
О_О ошибка исправилась когда я заменил PHP: $result = mysql_query("SELECT * FROM members WHERE rlogin = ' ".$_COOKIE['name']." ' "); на PHP: $result = mysql_query("SELECT * FROM members WHERE rlogin = '". mysql_escape_string( $_COOKIE['name'] ) . "' LIMIT 1" ); как в том уроке было