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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Нуб-2
Отправлено: 24 Апреля, 2013 - 06:09:52
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


Есть форма, которая находится по адресу site.ru/pages/profile
и такой код:
PHP:
скопировать код в буфер обмена
  1.         <?PHP
  2.         if ($_GET['tab'] = 'options') {
  3.                                 echo <<< HTML
  4.       <form class="form-options" action="?change=1" method="post">
  5.         <h2 class="form-options-heading">Изменение</h2>
  6.         <input type="text" class="input-block-level" placeholder="test">
  7.         <button class="btn btn-large btn-primary" type="submit">Сохранить</button>
  8.       </form>
  9. HTML;
  10.        
  11.         }
  12.         if ($_POST['?change'] = 1) {
  13.         echo '?change=1';
  14.         }
  15.         ?>

Почему не работает? Точнее сразу change=1 выводится?
Я хочу сделать, чтобы для получения этой формы человек перешел на site.ru/pages/profile?tab=options, а ля подтверждения изменения на
site.ru/pages/profile?tab=options&change=1.
Как сделать по-человечески? Надеюсь на вашу помощь Огорчение
 
 Top
Skycrafter
Отправлено: 24 Апреля, 2013 - 07:06:48
Post Id



Гость


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


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




1.Операторы сравнения
$a == $b Равно TRUE если $a равно $b.
http://www.php.su/lessons/?lesson_1
а значит:


2.если хотите передать переменную через url то надо писать в атрибуте
action="адрес до файла скрипта?var1=value1&var2=value2"
http://www.php.su/phphttp/forms/?intro

в вашем случае
PHP:
скопировать код в буфер обмена
  1. action="site.ru/pages/profile.php?tab=options&change=1"


3.При передаче через url переменная попадает в суперглобальный массив $_GET
а значит проверять надо:
PHP:
скопировать код в буфер обмена
  1. if ($_GET['change'] == "1") {
  2.         echo 'чтото';
  3.         }

(Отредактировано автором: 24 Апреля, 2013 - 07:52:30)



-----
Тысячемильный путь начинается с первого шага...
 
 Top
esterio
Отправлено: 24 Апреля, 2013 - 07:51:47
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Skycrafter
2 и 3 неверно
 
 Top
Skycrafter
Отправлено: 24 Апреля, 2013 - 07:54:26
Post Id



Гость


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


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




esterio пишет:
Skycrafter
2 и 3 неверно

запросто! просто надо было писать сразу как верно и все!


-----
Тысячемильный путь начинается с первого шага...
 
 Top
esterio
Отправлено: 24 Апреля, 2013 - 08:02:50
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




с телефона сложно код писать, но вкратце
2. если урл site.ru/page.php тогда перекинет на site.ru/page.php?var=value
3. method виставлен в значении post значит елементы форми будут $_POST

(Отредактировано автором: 24 Апреля, 2013 - 17:00:14)

 
 Top
Нуб-2
Отправлено: 24 Апреля, 2013 - 16:52:37
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


А можно сделать как-то, чтобы после отработки кода на
PHP:
скопировать код в буфер обмена
  1. site.ru/pages/profile.php?tab=options&change=1

без редиректа все возвращалось обратно? Или как лучше? В принципе, подойдет и пример от скайкрафтера.

(Отредактировано автором: 24 Апреля, 2013 - 17:26:46)

 
 Top
Нуб-2
Отправлено: 24 Апреля, 2013 - 21:32:41
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


В чем проблема?
Не записывается e-mail в базу, хотя, вроде, должен, наверное Огорчение ...
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.        
  3.         if ($_GET['tab'] == 'main') {# Если запрашивают строницу с профилем (статистикой)
  4.        
  5.        
  6.        
  7.        
  8.        
  9.        
  10.         }
  11.         ###
  12.         if ($_GET['tab'] == 'options') { ### Если запрашивают страницу с настройками
  13.                                 echo <<< HTML
  14.       <form class="form-options" action="?change=1" method="post">
  15.         <h2 class="form-options-heading">Изменение</h2>
  16.         <input type="text" class="input-block-level" placeholder="E-mail" name="email">
  17.         <button class="btn btn-large btn-primary" type="submit">Сохранить</button>
  18.       </form>
  19. HTML;
  20.        
  21.         }
  22.        
  23.        
  24.         ###
  25.         if ($_GET['change'] == "1") { ### Если меняют E-mail
  26.         If ($_POST['email'] == ''){
  27.         ### Вывод ошибки, видимо.
  28.        
  29.         } else {
  30.                                                 $result = mysql_query("   SELECT *   FROM `users`   WHERE `s-steamid` = '".$_SESSION['login']."'");
  31.                                                 if (mysql_num_rows($result)) {
  32.  
  33.                                                 mysql_query("
  34.                                                                 UPDATE `users`
  35.                                                                 SET
  36.                                                                                 `e-mail`='".mysql_real_escape_string($_POST['email'])."',
  37.  
  38.                                                                 WHERE
  39.                                                                                 `s-steamid` = ".$_SESSION['login'].""
  40. );
  41.        
  42.         }
  43.        
  44.         }
  45.         }
  46.         ?>
 
 Top
Skycrafter
Отправлено: 25 Апреля, 2013 - 05:51:15
Post Id



Гость


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


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




1.Проверь сначала попадает ли что-нибудь в $_POST['email'] просто выведи echo
2.Проверять на наличие или отсутствие данных в переменной лучше функциями isset
и соответственно empty


-----
Тысячемильный путь начинается с первого шага...
 
 Top
Нуб-2
Отправлено: 25 Апреля, 2013 - 16:18:36
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


Skycrafter пишет:
1.Проверь сначала попадает ли что-нибудь в $_POST['email'] просто выведи echo
2.Проверять на наличие или отсутствие данных в переменной лучше функциями isset
и соответственно empty

1.
Да, введенные данные выводятся нормально, видимо, что-то не так, с запросами в бд.
 
 Top
Нуб-2
Отправлено: 25 Апреля, 2013 - 18:52:29
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


В чем проблема? Слёзы в глазах
 
 Top
LIME
Отправлено: 25 Апреля, 2013 - 18:58:29
Post Id


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


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


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




PHP:
скопировать код в буфер обмена
  1. echo $query='SELECT ...';
  2. $result = mysql_query($query) or die(mysql_error());
 
 Top
Нуб-2
Отправлено: 26 Апреля, 2013 - 13:31:41
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


LIME пишет:
PHP:
скопировать код в буфер обмена
  1. echo $query='SELECT ...';
  2. $result = mysql_query($query) or die(mysql_error());

Хм, простите, а как это применить к моему случаю?
 
 Top
imya
Отправлено: 26 Апреля, 2013 - 14:25:49
Post Id



Участник


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Сент. 2012  
Откуда: Запорожье, Украина


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




Вам подсказали, как посмотреть, что отправляют ваши запросы.


-----
PHP:
скопировать код в буфер обмена
  1. do {box != cat;} while (cat != box);


Когда нормальный человек, уезжая из дома одевает на жену пояс верности, веб-дизайнер ставит на нее счетчик...
 
My status
 Top
Нуб-2
Отправлено: 26 Апреля, 2013 - 15:54:43
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


LIME пишет:
PHP:
скопировать код в буфер обмена
  1. echo $query='SELECT ...';
  2. $result = mysql_query($query) or die(mysql_error());

Вот, все верно
CODE (htmlphp):
скопировать код в буфер обмена
  1. SELECT * FROM `users` WHERE `s-steamid` = '76561198076018358'

(Добавление)
Вот весь код, должно работать, вроде, но не работает.
PHP:
скопировать код в буфер обмена
  1.         If ($_POST['email'] == ''){
  2.         ### Вывод ошибки, видимо.
  3.        
  4.         } else {
  5.         echo "</br>";
  6.         echo "</br>";
  7.         echo "</br>";
  8.         echo $_POST['email'];
  9.         echo $query= "   SELECT *   FROM `users`   WHERE `s-steamid` = '".$_SESSION['login']."'";
  10.                                                 $result = mysql_query($query) or die(mysql_error());
  11.                                                 if (mysql_num_rows($result)) {
  12.                                                        
  13.                                                 mysql_query("
  14.                                                                 UPDATE `users`
  15.                                                                 SET
  16.                                                                                 `e-mail`='".mysql_real_escape_string($_POST['email'])."',
  17.  
  18.                                                                 WHERE
  19.                                                                                 `s-steamid` = ".$_SESSION['login'].""
  20. );
  21.        
  22.         }
  23.        
  24.         }
 
 Top
Нуб-2
Отправлено: 29 Апреля, 2013 - 18:12:37
Post Id


Гость


Покинул форум
Сообщений всего: 66
Дата рег-ции: Апр. 2013  


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

[+]


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB