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 :: Помогите уgростить и найти ошибку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
A.N.R.I
Отправлено: 17 Августа, 2009 - 17:10:00
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Март 2009  
Откуда: Вінницька обл.


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




Вот код страницы:

CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3. if (isset ($_POST['lng']) OR isset($_POST['email']) OR isset ($_POST['pass']) OR isset ($_POST['pass2']) OR isset ($_POST['quest']) OR isset ($_POST['answer'])){ // если все это существует, то...
  4. $lng=$_POST['lng']; // каждую полученую переменную присваиваем к переменой :)
  5. $email=$_POST['email'];
  6. $pass=md5($_POST['pass']);
  7. $pass2=md5($_POST['pass2']);
  8. $quest=$_POST['quest'];
  9. $answer=$_POST['answer'];
  10. if($email ==''){
  11. print "<div id='error'>Поле Email не должно быть пустым.</div>";
  12. }
  13. if ($pass != $pass2){
  14. print "<div id='error'>Поля \"Пароль\" не совпадают.</div>";
  15. }
  16. if(preg_match("/^[0-9a-zA-Zа-яА-Я._]+$/","$pass")){print "<div id='error'>В поле \"Пароль\" нельзя использовать другие символы кроме цифр, латинских и русских букв, а также подчеркивания и точка</div>";}
  17. if($answer == '' && $quest !=''){
  18. print "<div id='error'>Поле ответ должно быть заполеное</div>";
  19. }
  20. if($answer != '' && $quest ==''){
  21. print "<div id='error'>Поле вопрос должно быть заполеное</div>";
  22. }
  23. if($email !='' && $pass2 == '' && $pass == ''){
  24. if ($answer != '' && $quest !=''){
  25. $query = ("UPDATE userlist SET email='$email', quest='$quest', answer='$answer'  WHERE id='$_GET[u]'" );
  26. }
  27. if ($answer == '' && $quest ==''){
  28. $query = ("UPDATE userlist SET email='$email' WHERE id='$_GET[u]'" );
  29. }
  30. if ($query == true){
  31. print "<div id='good'>Профиль обновлен</div>";
  32. }
  33. else{
  34. print "<div id='error'>Профиль не обновлен </div>";
  35. }
  36. }
  37. if($email !='' && $pass2 != '' && $pass == $pass2){
  38. if ($answer != '' && $quest !=''){
  39. $query = ("UPDATE userlist SET email='$email', pass='$pass', quest='$quest', answer='$answer'  WHERE id='$_GET[u]'" );
  40. }
  41. if ($answer == '' && $quest ==''){
  42. $query = ("UPDATE userlist SET email='$email', pass='$pass'  WHERE id='$_GET[u]'" );
  43. }
  44. if ($query == true){
  45. print "<div id='good'>Профиль обновлен</div";
  46. }
  47. else{
  48. print "<div id='error'>Профиль не обновлен </div>";
  49. }
  50. }
  51. }
  52.  

Проблема в том, что когда все ведено правильно, и нажимаю "Обновить" - я получаю сообщение "Профиль обновлен". Смотрю БД - ничего не изменилось Недовольство, огорчение. Помогите мне решить проблему и если возможно сделать код проще (я думаю, что это можно, но как?)
И еще, почемуто не пашет правильно функция preg_match() . Я ее не правильно использую?

(Отредактировано автором: 17 Августа, 2009 - 20:06:03)



-----
 
 Top
Champion Супермодератор
Отправлено: 17 Августа, 2009 - 18:01:42
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




RomAndry, ну убери цифры и сделай, чтоб табуляция превращалась в 4 пробела, а не 8.

Автор, это тебе - http://phpfaq[dot]ru/debug
 
 Top
Мелкий Супермодератор
Отправлено: 17 Августа, 2009 - 18:05:31
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




строка 3 - в комментарии "если все это существует, то...", а по смыслу - если есть любое из этого.

и в 45 строке - может там всё таки mysql_query поставить? А то запрос написан, а отправлять-то кто будет? ;)

Остальное не переварил - читать жутко неудобно, приведите табуляцию в норму

(Отредактировано автором: 17 Августа, 2009 - 18:06:14)



-----
PostgreSQL DBA
 
 Top
Ch_chov
Отправлено: 17 Августа, 2009 - 19:02:33
Post Id



Постоянный участник


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


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




Да нормально вроде все с табуляцией.
Просто в исходном коде кол-во табов на строку местами доходит до 13(!) штук...
К тому же они выставлены почти в произвольном порядке. Т.е. не соответствуют структуре кода.

CODE (php):
скопировать код в буфер обмена
  1. $query = ("UPDATE userlist SET email="$email" WHERE id="$_GET[u]"" );

A.N.R.I, ты что нибудь слышал про экранирование ковычек?
 
 Top
Nestor
Отправлено: 17 Августа, 2009 - 19:09:29
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


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




+SQL injection ...


-----
Aurus CMS
 
 Top
A.N.R.I
Отправлено: 17 Августа, 2009 - 20:08:18
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Март 2009  
Откуда: Вінницька обл.


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




tabы стер. Не знаю, мне так рассказывали за структуру. Если есть нормально рассписаная статья - буду раж почитать.
про экранирование слышал Улыбка
(Добавление)
Кста,Ch_chov спасибо, провтыкал


Отредактировано модератором: Champion, 18 Августа, 2009 - 08:51:32
Ты зоканчишь цицировать целые сообщения?


-----
 
 Top
Ch_chov
Отправлено: 17 Августа, 2009 - 20:45:08
Post Id



Постоянный участник


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


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




Цитата:
tabы стер. Не знаю, мне так рассказывали за структуру. Если есть нормально рассписаная статья - буду раж почитать.

Зачем все то стер? Вот тебе статья про хороший стиль программирования.
И Строки

З.Ы. Разбирайся с ковычками...
 
 Top
A.N.R.I
Отправлено: 17 Августа, 2009 - 21:43:02
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Март 2009  
Откуда: Вінницька обл.


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




Ch_chov пишет:

Зачем все то стер?
З.Ы. Разбирайся с кавычками...
НУ МНЕ сказали, что там ничего не понятно, вот и стер Не понял


Отредактировано модератором: Champion, 18 Августа, 2009 - 08:52:31


-----
 
 Top
Champion Супермодератор
Отправлено: 18 Августа, 2009 - 08:49:15
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




Нет, табуляция в 8 пробелов - это много. Даже если убрать эти вот табы, которые были лишними, все равно после 3 табов код уже почти в середине экрана.

A.N.R.I, зря стер. Только хуже стало.
 
 Top
EuGen Администратор
Отправлено: 18 Августа, 2009 - 17:31:08
Post Id


Профессионал


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


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




Champion
Это уж вопрос к владельцам


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Champion Супермодератор
Отправлено: 18 Августа, 2009 - 17:58:26
Post Id



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


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


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




К владельцам и взываю)) Уж в тему "обновление форума" написал, тут просто увидел, что весь код табуляцией далеко вправо был сдвинут, вот и написал. Думал, RomAndry заметит
 
 Top
A.N.R.I
Отправлено: 23 Августа, 2009 - 19:17:25
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Март 2009  
Откуда: Вінницька обл.


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




Так, у меня проблемы:

Код:
CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4. $to=$_POST['to'];
  5.                 #################Тема сообщения ###############
  6.                 $subject=$_POST['subject'];
  7.                 ###########Текст сообщения ##########
  8.                 $msg=$_POST['msg'];
  9.  
  10. $myrow7=mysql_query("SELECT * FROM userlist WHERE login='$_POST[to]'");
  11.         $result7=mysql_fetch_array($myrow7);
  12.  
  13.  
  14. if(mysql_num_rows ($myrow7) > 0 && $subject != '' && $msg != ''){
  15.                                         $myrow8=mysql_query("INSERT INTO pm (author, to , subject, text) VALUES ('$author','$to','$subject','$msg')");
  16.                                         ###############Если в БД даные ушли, выводим это ##############
  17.                                         if ($myrow8 == 'true'){
  18.                                                 print "<div id='good'>Сообщение отправлено</div>";
  19.                                         }else {
  20.                                                         print "<div id='error'>Сообщение не отправлено</div>";
  21.                                                 }
  22.                                 }
  23.  

И когда отправляю форму - пишет: "Сообщение не отправлено".
Когда оставлял поле author - в БД данные летели, а если что-то другое нет. В чем проблемы можут быть?Форма и обработчик в 1 файле


-----
 
 Top
A.N.R.I
Отправлено: 24 Августа, 2009 - 09:58:43
Post Id



Гость


Покинул форум
Сообщений всего: 122
Дата рег-ции: Март 2009  
Откуда: Вінницька обл.


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




Ну? Никто не знает как решить проблему? Помогите, плиз!!!!!!!


-----
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB