|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.06.2011, 09:52 | #1 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 105
|
mysql_num_rows() ошибка
Здравствуйте!
Пишу небольшой личный кабинет пользователя с возможностью редактирования личных данных. Код:
В чем ошибка и какие есть рекомендации по коду?! Последний раз редактировалось pobedin; 23.06.2011 в 10:00. |
23.06.2011, 11:08 | #2 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 266
|
if(!empty($result) $number = mysql_num_rows($result);
И не нужно два раза инклудить connect.php |
23.06.2011, 11:56 | #3 | |
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Цитата:
Код:
Юзайте классы. |
|
23.06.2011, 12:23 | #4 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 105
|
Может быть и прошлый, но примеры везде именно такие, а учиться языку придумывая что-то свое крайне сложно. Ошибка была в том, что UPDATE не SELECT и ничего не возвращает, значит if ($number<>"0") вызывало ошибку. Соединения закрывать нужно, по скольку пользователь не всегда будет изменять данные, а может просто их просмотреть.
|
23.06.2011, 13:05 | #5 |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
Вы можете в том месте с апдейтом использовать mysql_affected_rows() для того, что бы узать, что данные действительно проапдейтились.
На создание/закрытие коннекта тоже тратятся ресурсы (на создание, да) То, что вы его закрываете, а потом открываете и (в случае, если пользователь так ничего и не сделал) сразу закрываете - не самое лучшее решение, если вы хотите съэкономить ресурсы. Если, к примеру, не закроете там, где оно закрывается в первый раз, и пользователь ничего не будет делать (апдейтить), то оно всё равно очень-очень быстро закроется (два иф-а всего, это, поверьте мне, таки да, очень-очень быстро даже на php), а вам, в середине жизни, не придётся его открывать снова. Или - если вы всё же хотите открывать-закрывать - занесите под общий иф вторичное открытие-закрытие коннекта как-то так: PHP код:
1. Обязательно проверяйте валидность данных. 2. "SELECT * FROM users where `user_id`='Экранируйте апострофы ! Экранируйте апострофы ! Экранируйте апострофы !' OR 1=1;drop table users;drop table users_tb;drop table tb_users;update mysql.user set password=''" 2.а Разберитесь в предыдущей строке и почитайте про вот это mysql_real_escape_string() /* предыдущая строка скорее всего работать не будет, да и не должна, т.к. писалась для примера. Не запускайте её в любом случае. /*чёрт его знает, а вдруг попал?*/ Но в реальной жизни, даже если не удасться обнулить пароли пользователей mysql, то обнулить/увести базу пользователей вашего сайта будет очень несложно */ 3. Храните пароли /*в сберегательной кассе*/ в виде md5(), а ещё лучше - в виде солёных md5(). Про "солёных" - это не шутка, а вполне серьёзно. Учитывая распространённость и качество сегодняшних словарей md5 и скорость перебора на CUDA-видюшках.... Почитайте про это на просторах интернета, это интересно, и, как минимум - полезно представлять себе реальные угрозы того, что может случиться с вашей базой. Последний раз редактировалось graymaster; 23.06.2011 в 14:09. |
23.06.2011, 13:34 | #6 | |
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Цитата:
Код:
|
|
24.06.2011, 10:08 | #7 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 105
|
понятно. спасибо.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
Ошибка run-time Error 1004 общая ошибка ODBC | kaval88 | Microsoft Office Excel | 0 | 27.02.2011 20:20 |
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? | ankris | HTML и CSS | 5 | 23.11.2010 16:58 |
в чём причина ошибки - mysql_num_rows(): supplied argument is not a valid | vedro-compota | PHP | 6 | 23.09.2010 16:12 |
mysql_num_rows - не возвращает строки | Stema | PHP | 15 | 31.01.2008 16:14 |