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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Warning: mysql_num_rows(): supphed argument is not a valid MySQL result resource

Сообщения:  [1-10]   [11-13] 

 
 автор: Санька   (06.10.2007 в 17:25)   письмо автору
 
   для: Санька   (05.10.2007 в 15:44)
 

Таблицы создал, работает теперь эта страница, только вот что то с регистрацией новых пользователей пока не получается, тобишь чтобы кто нибудь мог зайти в форум надо вручную вводить ник и пароль в таблицу.

   
 
 автор: Санька   (05.10.2007 в 15:44)   письмо автору
 
   для: cheops   (05.10.2007 в 15:33)
 

Понятно.

   
 
 автор: cheops   (05.10.2007 в 15:33)   письмо автору
 
   для: Санька   (05.10.2007 в 13:03)
 

Сообщается, что таблицы users не существует - она у вас точно большими буквами набрана? В UNIX - это имеет значение, так как имя берётся из имени файла таблицы (под Windows регистр не имеет значения).

   
 
 автор: Санька   (05.10.2007 в 13:03)   письмо автору
 
   для: cheops   (05.10.2007 в 10:46)
 

Хм, я ведь писал, модератор видать случайно стер, ошибки нет, но на экране такая только надпись SELECT name,pass,role FROM USERS WHERE name=='1' and pass=='большое количество букв и цифр'-Table 'forum.users' doesn't exist

   
 
 автор: cheops   (05.10.2007 в 10:46)   письмо автору
 
   для: Санька   (04.10.2007 в 22:24)
 

Исправьте следующим образом
<?php 
... 
$sql="SELECT name,pass,role FROM USERS WHERE name='".$safe_name."' and pass='".$safe_pass."'";  
//Получаем результат запроса в переменную $result  
$result=mysql_query($sql);  
// Проверяем правильно ли выполнился запрос 
if(!$result) exit($sql." - ".mysql_error()); 
//Проверяем, есть ли такой пользователь  
if (!mysql_num_rows($result)) 
... 
?>

Что теперь пишет?

   
 
 автор: Санька   (04.10.2007 в 22:24)   письмо автору
 
   для: EXP   (04.10.2007 в 20:57)
 

Что и требовалось ожидать Parse error: parse error, unexpected T_STRING

   
 
 автор: EXP   (04.10.2007 в 20:57)   письмо автору
 
   для: Санька   (04.10.2007 в 18:45)
 

_

   
 
 автор: cheops   (04.10.2007 в 20:52)   письмо автору
 
   для: Санька   (04.10.2007 в 18:45)
 

Добавьте проверку на ошибки после выполнения SQL-запроса при помощи функции mysql_query();
<?php
...
$sql="SELECT name,pass,role FROM USERS WHERE name='".$safe_name."' and pass='".$safe_pass."'"
//Получаем результат запроса в переменную $result 
$result=mysql_query($sql); 
// Проверяем правильно ли выполнился запрос
if(!$result) exit($sql." - "mysql_error());
//Проверяем, есть ли такой пользователь 
if (!mysql_num_rows($result))
...
?>

   
 
 автор: Санька   (04.10.2007 в 18:45)   письмо автору
 
   для: Санька   (04.10.2007 в 12:16)
 

Все вроде в норме. Почему ошибка?

<?php
//Данный модуль возвращает в $_SESSION['autorized'] значение TRUE,
//если авторизация пройдена

//Начинаем сессию
session_start();
//Проверяем, как запущен скрипт-обработчик? или как форма для авторизации?
if (!isset($_POST['name']))
{
//Выводим форму авторизации
header("Content-type: text/vnd.wap.wml");
echo 
'<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="c1" title="Письмо Админу">
<p align="left">
<small>

Имя:<br />
<input title="text" name="name" /><br />
Пароль:<br />
<input title="password" name="pass" /><br />
<anchor title="ok">Войти<br />
<a href="../">&lt;&lt;Назад</a>

<go href="login.php" method="post">
<postfield name="name" value="$(name)" />
<postfield name="pass" value="$(pass)" />
</go>

</anchor>

</small>
</p>
</card>
</wml>'
;

?>

<?php

}
//Если как обработчик, то пытаемся авторизовать пользователя
else
{
//Проверяем, ввел ли пользователь имя и пароль
if ($_POST['name']!='' and $_POST['pass']!='')
{
//Защита от взлома
$safe_name=mysql_escape_string($_POST['name']);
$safe_pass=mysql_escape_string($_POST['pass']);
//Преобразуем пароль в хеш
$safe_pass=md5($safe_pass);
//Подключаемся к MySQL и базе данных
require_once('connect.php');
//Формируем запрос
$sql="SELECT name,pass,role FROM USERS WHERE name='".$safe_name."' and pass='".$safe_pass."'";
//Получаем результат запроса в переменную $result
$result=mysql_query($sql);
//Проверяем, есть ли такой пользователь
if (!mysql_num_rows($result))
//Если такого пользователя нет, то отказываем ему в доступе
die("Неверный логин или пароль <a href='index.php'>Назад</a>");
//Иначе записываем факт авторизации всессию
else
{
//Получаем результат запроса
$line=mysql_fetch_row($result);
//Записываем факт авторизации в сессию
$_SESSION['autorized']=true;
//Сохраняем имя пользователя
$_SESSION['name']=$_POST['name'];
//Сохраняем роль пользователя
$_SESSION['role']=$line[2];
//Выводим пользователю информацию, что он был авторизован
echo 'Авторизация прошла успешно!<br /><a href="index.php">Вернуться в форум</a>';
}
}
//Если пользователь не ввел данные
else
{
//Отказать ему в доступе
die("Неправильный логин или пароль<br /><a href='index.php'>Назад</a>");
}
}
?>

   
 
 автор: Санька   (04.10.2007 в 12:16)   письмо автору
 
   для: cheops   (04.10.2007 в 10:44)
 

Я ставил mysql_query()
Такого не может быть чтоб ошибка была, вечером скину страницу, посмотрите.

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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