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]   

> Описание: Помогите найти проблему
etoYA
Отправлено: 30 Июля, 2011 - 22:57:34
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Странная ошибка:

CODE (htmlphp):
скопировать код в буфер обмена
  1. Table 'egaming.users' doesn't exist


CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. // Подключение настроек MySQL
  3. require_once('config.php');
  4.  
  5. // Обьявление переменных отвечающие за ошибки
  6. $error = false;
  7. $errort = '';
  8.  
  9. // Обработка полей функцией mysql_real_escape_string()
  10.         $login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
  11.         $pass = (isset($_POST['pass'])) ? mysql_real_escape_string($_POST['pass']) : '';
  12.        
  13. // Проверка на наличие ошибок
  14.  
  15. // Проверка на заполнение полей
  16. if ($login == ''){
  17.         $error = true;
  18.         $errort = 'Не заполнено поле логин';}
  19. elseif ($pass == ''){
  20.         $error = true;
  21.         $errort = 'Не заполнено поле пароль';}
  22. elseif ($pass !== $repeat){
  23.         $error = true;
  24.         $errort = 'Пароли не совпадают';}
  25. elseif ($email == ''){
  26.         $error = true;
  27.         $errort = 'Не заполнено поле е-мейл';}
  28. elseif ($name == ''){
  29.         $error = true;
  30.         $errort = 'Не заполнено поле имя';}
  31. elseif ($last_name == ''){
  32.         $error = true;
  33.         $errort = 'Не заполнено поле фамилия';}
  34. elseif ($country == ''){
  35.         $error = true;
  36.         $errort = 'Вы не выбрали страну';}
  37.  
  38. // Проверка на длину логина и пароля
  39. if (strlen($login) < 4 or strlen($login) > 15)
  40.         $error = true;
  41.         $errort = 'Логин должен содержать от 4 до 15 символов';
  42. if (strlen($pass) < 4 or strlen($pass) > 15)
  43.         $error = true;
  44.         $errort = 'Пароль должен содержать от 6 до 15 символов';
  45.  
  46. // Проверка логина и пароля на запрещенные символы
  47.  
  48. if (!preg_match("/^[a-zA-Z0-9]+$/",$login))
  49.         $error = true;
  50.         $errort = 'Логин должен состоять из латинских букв и цифр';    
  51. if (!preg_match("/^[a-zA-Z0-9]+$/",$pass))
  52.         $error = true;
  53.         $errort = 'Пароль должен состоять из латинских букв и цифр';   
  54.  
  55. // Проверка на сущевствование пользователя с таким же логином
  56.  
  57.         $query = "SELECT `uid`
  58.                         FROM `users`
  59.                         WHERE `login` = '{$login}'
  60.                         LIMIT 1";
  61.         $sql = mysql_query($query) or die(mysql_error());
  62. if (mysql_num_rows($sql) == 1)
  63. {
  64.         $error = true;
  65.         $errort = "Пользователь с логином $login уже существует";
  66. }
  67.  
  68. // Если ошибок не обнаружено, то
  69. if (!$error)
  70. {
  71. // Хешируем пароль
  72.         $hashed_password = md5(md5($pass));
  73.        
  74. // И добавляем пользователя в базу
  75.         $query = "INSERT INTO `users`(`uid`,`login`,`password`,`email`,`name`,`last_name`,`country`)
  76.                                           VALUES('','$login','$hashed_password','$email','$name','$last_name','$country')";
  77.         $sql = mysql_query($query) or die(mysql_error());
  78.  
  79. // Если все прошло успешно, то вывести
  80.         echo 'Регистрация прошла успешно';
  81. }
  82. // Иначе вывести ошибки
  83.         echo 'Вы допустили следующие ошибки' . $error . '<br />';
  84. ?>
 
 Top
Arni
Отправлено: 30 Июля, 2011 - 23:04:37
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


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




А может такое быть что ее в самом деле не существует?
 
 Top
etoYA
Отправлено: 30 Июля, 2011 - 23:32:30
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




ее в самом деле не существует, но я ее и не выберал......
 
 Top
OrmaJever Модератор
Отправлено: 30 Июля, 2011 - 23:37:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




а это что?
PHP:
скопировать код в буфер обмена
  1.         $query = "SELECT `uid`
  2.                        FROM `users`
  3.                        WHERE `login` = '{$login}'
  4.                        LIMIT 1";

и это?
PHP:
скопировать код в буфер обмена
  1.         $query = "INSERT INTO `users`(`uid`,`login`,`password`,`email`,`name`,`last_name`,`country`)
  2.                                          VALUES('','$login','$hashed_password','$email','$name','$last_name','$country')";


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
etoYA
Отправлено: 30 Июля, 2011 - 23:41:53
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Это то да, но с какого перепугу оно вставляет название базы и точку?
 
 Top
LIME
Отправлено: 30 Июля, 2011 - 23:51:41
Post Id


Активный участник


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


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




etoYA пишет:
с какого перепугу оно вставляет название базы и точку?
а как по вашему идентифицировать таблицу?
в разных базах могут быть такие таблицы
 
 Top
OrmaJever Модератор
Отправлено: 30 Июля, 2011 - 23:54:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




LIME прав. У вас в config.php есть строка

вот из неё и берёт чтобы понятнее было где не нашло таблицу


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
etoYA
Отправлено: 30 Июля, 2011 - 23:57:18
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




config.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. $host = 'localhost';
  3. $username = 'root';
  4. $password = '';
  5. $dbname = 'egaming';
  6.  
  7. mysql_connect ($host, $username, $password) or die(mysql_error());
  8. ?>


Проблема в скрипте 100%, так как когда я просто добавлял/выбирал записи, все нормально было, а когда усложнил скрипт, произошла ошибка.
p.s это единственная база, помимо тех, которые при установке сервера создались

(Отредактировано автором: 30 Июля, 2011 - 23:59:29)

 
 Top
OrmaJever Модератор
Отправлено: 30 Июля, 2011 - 23:58:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




etoYA пишет:
p.s это единственная база, помимо тех, которые при установке сервера создались

ну суть не в этом, суть в том что у вас нету таблицы users в этой базе, вот и ошибка.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
etoYA
Отправлено: 31 Июля, 2011 - 00:01:31
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Блин, действительно, дропнул таблицуУлыбка
(Добавление)
Спасибо всем за помошь!!!
(Добавление)
А можете вообще сказать скрипт кривой или так себе (средней кривости?)
 
 Top
OrmaJever Модератор
Отправлено: 31 Июля, 2011 - 01:18:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


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




etoYA пишет:
А можете вообще сказать скрипт кривой или так себе (средней кривости?)

Ха-ха ну бывали и похуже


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
etoYA
Отправлено: 31 Июля, 2011 - 02:07:56
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Радость Ха-ха
 
 Top
illy
Отправлено: 31 Июля, 2011 - 09:59:43
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


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




Эхехей! Ха-ха


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
Arni
Отправлено: 31 Июля, 2011 - 10:55:06
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июль 2011  


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




etoYA пишет:
А можете вообще сказать скрипт кривой или так себе (средней кривости?)


Тут наверно стоит отметить то что md5(md5($pass)); на самом деле детский садик. Если есть желание действительно усложнить перебор хешей, то было бы правильным сделать так.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $pass = '12345678';
  3. $salt = rand(1,10000); //=> $salt обязательно нужно потом сохранить в базу данных
  4.  
  5. function HashPass($pass,$salt){
  6.     return sha1(sha1($salt).sha1($pass));
  7. }
  8.  

(Отредактировано автором: 31 Июля, 2011 - 10:55:37)

 
 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