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 »   

> Без описания
benkerrry
Отправлено: 29 Октября, 2013 - 00:53:30
Post Id


Новичок


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


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




Помогите пожалуйста, у меня не записываются данные в базу.
после нажатия на кнопку Записать появляется сообщение Балы добавлены, но они не добавляются
Подскажите что мне исправить чтобы данные записывались в базу?

Вот содержимое файла submit.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. include "include/cfg.php";
  3.  
  4. $ugadal = trim ($_POST["ugadal"]);
  5. $ugadal = htmlspecialchars ($ugadal);
  6.  
  7. $ugadal1 = trim ($_POST["ugadal1"]);
  8. $ugadal1 = htmlspecialchars ($ugadal1);
  9.  
  10. $ugadal2 = trim ($_POST["ugadal2"]);
  11. $ugadal2 = htmlspecialchars ($ugadal2);
  12.  
  13. if (!isset($ugadal) or empty ($ugadal)) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>");}
  14.  
  15. if (!isset($ugadal1) or empty ($ugadal1)) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>");}
  16.  
  17. if (!isset($ugadal2) or empty ($ugadal2)) {echo "<meta http-equiv='refresh' content='3;URL=$_SERVER[HTTP_REFERER]'>";exit ("<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>");}
  18.  
  19. $update = mysql_query ("UPDATE ".$tb1." SET ugadal='$ugadal', ugadal1='$ugadal1', ugadal2='$ugadal2' WHERE id='id'",$db);
  20. if($update == "true") {echo "<meta http-equiv='refresh' content='2;URL=$_SERVER[HTTP_REFERER]'>";echo "<div align='center'><div class='alert'>Балы добавлены</div></div>";}
  21. else {echo "<meta http-equiv='refresh' content='2;URL=$_SERVER[HTTP_REFERER]'>";echo "<div align='center'><div class='alert'>Балы не добавлены</div></div>";}
  22.  
  23. ?>


Вот содержимое файла cfg.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $base = "baza-db";
  3. $user = "root";
  4. $password = "";
  5. $host = "localhost";
  6. $tb1 = "table1";
  7. $tb2 = "advanced";
  8.  
  9. $db = mysql_connect ("$host","$user","$password");
  10. mysql_select_db ("$base",$db);
  11. ?>
 
 Top
VestCoastman
Отправлено: 29 Октября, 2013 - 01:06:52
Post Id



Посетитель


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


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




Да тут всё нужно удалить и написать заного.
1. Вы назначаете переменную, а затем проверяете её на существование
2. Редирект вы делаете через <meta>
3. Переменные вставляете в кавычки
 
 Top
benkerrry
Отправлено: 29 Октября, 2013 - 01:10:35
Post Id


Новичок


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


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




VestCoastman пишет:
Да тут всё нужно удалить и написать заного.
1. Вы назначаете переменную, а затем проверяете её на существование
2. Редирект вы делаете через <meta>
3. Переменные вставляете в кавычки


Это я изменил скрипт. до этого он добавлял записи в базу через INSERT, я хочу сделать возможность изменять данные в базе.

Не подскажете готовое решение?
 
 Top
Silver Soft
Отправлено: 29 Октября, 2013 - 11:26:02
Post Id


Гость


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


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




как то так, что первое в голову пришло)

PHP:
скопировать код в буфер обмена
  1. include "include/cfg.php";
  2.  
  3. if (isset($_POST["ugadal"])) {
  4.         $ugadal[] = ' ugadal='.htmlspecialchars((trim($_POST["ugadal"]));
  5. } else $error_msg .= "<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>";
  6. if (isset($_POST["ugadal1"])) {
  7.         $ugadal[] = ' ugadal1='.htmlspecialchars((trim($_POST["ugadal1"]));
  8. } else $error_msg .= "<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>";
  9. if (isset($_POST["ugadal2"])) {
  10.         $ugadal[] = ' ugadal2='.htmlspecialchars((trim($_POST["ugadal2"]));
  11. } else $error_msg .= "<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>";
  12.  
  13. if (!$error_msg){
  14.         $update = mysql_query ("UPDATE ".$tb1." SET ".implode(',', $ugadal)." WHERE id='id'",$db);
  15.         if($update == true) {
  16.                 echo "<div align='center'><div class='alert'>Балы добавлены</div></div>";
  17.         } else {
  18.                 echo "<div align='center'><div class='alert'>Балы не добавлены</div></div>";
  19.         }
  20. }  
  21.  
  22. header('Location: '.$_SERVER[HTTP_REFERER]);
  23. exit($error_msg);


а так, тут еще смотрю косяки со знанием HTML+CSS))
(Добавление)
Silver Soft пишет:
3. Переменные вставляете в кавычки

тут ничего особого нет, он не переменные в кавычки обрамляет, а их значения...

P.S. я забыл обрамить в кавычки, но тут я думаю ты сам справишься )
 
 Top
benkerrry
Отправлено: 29 Октября, 2013 - 11:31:11
Post Id


Новичок


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


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




Silver Soft пишет:
include "include/cfg.php"; if (isset($_POST["ugadal"])) {        $ugadal[] = ' ugadal='.htmlspecialchars((trim($_POST["ugadal"]));} else $error_msg .= "<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>";if (isset($_POST["ugadal1"])) {        $ugadal[] = ' ugadal1='.htmlspecialchars((trim($_POST["ugadal1"]));} else $error_msg .= "<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>";if (isset($_POST["ugadal2"])) {        $ugadal[] = ' ugadal2='.htmlspecialchars((trim($_POST["ugadal2"]));} else $error_msg .= "<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>"; if (!$error_msg){        $update = mysql_query ("UPDATE ".$tb1." SET ".implode(',', $ugadal)." WHERE id='id'",$db);        if($update == true) {                echo "<div align='center'><div class='alert'>Балы добавлены</div></div>";        } else {                echo "<div align='center'><div class='alert'>Балы не добавлены</div></div>";        }}   header('Location: '.$_SERVER[HTTP_REFERER]);exit($error_msg);


после внесения ваших изминений появляется ошибка Удаленный сервер или файл не найден.
 
 Top
Silver Soft
Отправлено: 29 Октября, 2013 - 11:55:51
Post Id


Гость


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


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




$_SERVER[HTTP_REFERER] - пустая, а значит и пытается перенаправить в пустоту)
укажи конкретно страницу или же замени на $_SERVER[HTTP_HOST])
(Добавление)
а лучше так
PHP:
скопировать код в буфер обмена
  1. header('Location: http://www.mysite.com');
 
 Top
benkerrry
Отправлено: 29 Октября, 2013 - 12:00:40
Post Id


Новичок


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


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




Silver Soft пишет:
$_SERVER[HTTP_REFERER]

функция $_SERVER[HTTP_REFERER] работает нормально. с тем скриптом что у меня страница перенаправляется нормально. В пустоту перенаправляет в последнем скрипте (тот что разместили в ответе)
 
 Top
Silver Soft
Отправлено: 29 Октября, 2013 - 12:01:08
Post Id


Гость


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


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




а кстати, косякунул... нельзя же так перенаправлять, если начался вывод страницы )
(Добавление)
лучше так:
PHP:
скопировать код в буфер обмена
  1. include "include/cfg.php";
  2.  
  3.  
  4. if (isset($_POST["ugadal"])) {
  5.         $ugadal[] = ' ugadal='.htmlspecialchars((trim($_POST["ugadal"]));
  6. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>";
  7. if (isset($_POST["ugadal1"])) {
  8.         $ugadal[] = ' ugadal1='.htmlspecialchars((trim($_POST["ugadal1"]));
  9. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>";
  10. if (isset($_POST["ugadal2"])) {
  11.         $ugadal[] = ' ugadal2='.htmlspecialchars((trim($_POST["ugadal2"]));
  12. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>";
  13.  
  14. if (!$error_msg){
  15.         $update = mysql_query ("UPDATE ".$tb1." SET ".implode(',', $ugadal)." WHERE id='id'",$db);
  16.         if($update == true) {
  17.                 $msg = "<div align='center'><div class='alert'>Балы добавлены</div></div>";
  18.         } else {
  19.                 $msg = "<div align='center'><div class='alert'>Балы не добавлены</div></div>";
  20.         }
  21. }  
  22.  
  23. header('Location: '.$_SERVER[HTTP_REFERER]);
  24. exit($msg);

(Добавление)
вот вариант с перенаправлением через meta
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST["ugadal"])) {
  2.         $ugadal[] = ' ugadal='.htmlspecialchars((trim($_POST["ugadal"]));
  3. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>";
  4. if (isset($_POST["ugadal1"])) {
  5.         $ugadal[] = ' ugadal1='.htmlspecialchars((trim($_POST["ugadal1"]));
  6. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>";
  7. if (isset($_POST["ugadal2"])) {
  8.         $ugadal[] = ' ugadal2='.htmlspecialchars((trim($_POST["ugadal2"]));
  9. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>";
  10.  
  11. if (!$msg){
  12.         $update = mysql_query ("UPDATE ".$tb1." SET ".implode(',', $ugadal)." WHERE id='id'",$db);
  13.         if($update == true) {
  14.                 $msg = "<div align='center'><div class='alert'>Балы добавлены</div></div>";
  15.         } else {
  16.                 $msg = "<div align='center'><div class='alert'>Балы не добавлены</div></div>";
  17.         }
  18.         echo "<meta http-equiv='refresh' content='2;URL=$_SERVER[HTTP_REFERER]'>";
  19.         echo $msg;
  20. } else {
  21.         header('Location: '.$_SERVER[HTTP_REFERER]);
  22.         exit($msg);
  23. }
 
 Top
benkerrry
Отправлено: 29 Октября, 2013 - 12:09:52
Post Id


Новичок


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


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




Silver Soft пишет:
include "include/cfg.php";  if (isset($_POST["ugadal"])) {        $ugadal[] = ' ugadal='.htmlspecialchars((trim($_POST["ugadal"]));} else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>";if (isset($_POST["ugadal1"])) {        $ugadal[] = ' ugadal1='.htmlspecialchars((trim($_POST["ugadal1"]));} else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>";if (isset($_POST["ugadal2"])) {        $ugadal[] = ' ugadal2='.htmlspecialchars((trim($_POST["ugadal2"]));} else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>"; if (!$error_msg){        $update = mysql_query ("UPDATE ".$tb1." SET ".implode(',', $ugadal)." WHERE id='id'",$db);        if($update == true) {                $msg = "<div align='center'><div class='alert'>Балы добавлены</div></div>";        } else {                $msg = "<div align='center'><div class='alert'>Балы не добавлены</div></div>";        }}   header('Location: '.$_SERVER[HTTP_REFERER]);exit($msg);


Все равно отправляет в пустоту "Удаленный сервер или файл не найден"
 
 Top
Silver Soft
Отправлено: 29 Октября, 2013 - 12:10:24
Post Id


Гость


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


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




вот вариант с перенаправлением через meta
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST["ugadal"])) {
  2.         $ugadal[] = ' ugadal='.htmlspecialchars((trim($_POST["ugadal"]));
  3. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>";
  4. if (isset($_POST["ugadal1"])) {
  5.         $ugadal[] = ' ugadal1='.htmlspecialchars((trim($_POST["ugadal1"]));
  6. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>";
  7. if (isset($_POST["ugadal2"])) {
  8.         $ugadal[] = ' ugadal2='.htmlspecialchars((trim($_POST["ugadal2"]));
  9. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>";
  10.  
  11. if (!$msg){
  12.         $update = mysql_query ("UPDATE ".$tb1." SET ".implode(',', $ugadal)." WHERE id='id'",$db);
  13.         if($update == true) {
  14.                 $msg = "<div align='center'><div class='alert'>Балы добавлены</div></div>";
  15.         } else {
  16.                 $msg = "<div align='center'><div class='alert'>Балы не добавлены</div></div>";
  17.         }
  18.         echo "<meta http-equiv='refresh' content='2;URL=$_SERVER[HTTP_REFERER]'>";
  19.         echo $msg;
  20. } else {
  21.         header('Location: '.$_SERVER[HTTP_REFERER]);
  22.         exit($msg);
  23. }
 
 Top
benkerrry
Отправлено: 29 Октября, 2013 - 12:12:00
Post Id


Новичок


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


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




Silver Soft пишет:
вот вариант с перенаправлением через meta
PHP:
скопировать код в буфер обмена
  1. if (isset($_POST["ugadal"])) {
  2.         $ugadal[] = ' ugadal='.htmlspecialchars((trim($_POST["ugadal"]));
  3. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в первом туре</div></div>";
  4. if (isset($_POST["ugadal1"])) {
  5.         $ugadal[] = ' ugadal1='.htmlspecialchars((trim($_POST["ugadal1"]));
  6. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы во втором туре</div></div>";
  7. if (isset($_POST["ugadal2"])) {
  8.         $ugadal[] = ' ugadal2='.htmlspecialchars((trim($_POST["ugadal2"]));
  9. } else $msg .= "<div align='center'><div class='alert'>Вы не ввели балы в третьем туре</div></div>";
  10.  
  11. if (!$msg){
  12.         $update = mysql_query ("UPDATE ".$tb1." SET ".implode(',', $ugadal)." WHERE id='id'",$db);
  13.         if($update == true) {
  14.                 $msg = "<div align='center'><div class='alert'>Балы добавлены</div></div>";
  15.         } else {
  16.                 $msg = "<div align='center'><div class='alert'>Балы не добавлены</div></div>";
  17.         }
  18.         echo "<meta http-equiv='refresh' content='2;URL=$_SERVER[HTTP_REFERER]'>";
  19.         echo $msg;
  20. } else {
  21.         header('Location: '.$_SERVER[HTTP_REFERER]);
  22.         exit($msg);
  23. }


бесполезно. все равно пустота
 
 Top
Silver Soft
Отправлено: 29 Октября, 2013 - 12:12:10
Post Id


Гость


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


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




а тебе принципиально отправлять в $_SERVER[HTTP_REFERER])? )
 
 Top
benkerrry
Отправлено: 29 Октября, 2013 - 12:13:34
Post Id


Новичок


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


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




Silver Soft пишет:
а тебе принципиально отправлять в $_SERVER[HTTP_REFERER])? )

нет. главное чтобы возвратится на страницу где вносятся изменения
 
 Top
Silver Soft
Отправлено: 29 Октября, 2013 - 12:22:31
Post Id


Гость


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


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




попробуй вначале так написать



да и лучше валидацию формы делать средствами JS )
(Добавление)

блин, до сих пор читал твой ник, как blackberry Радость
 
 Top
benkerrry
Отправлено: 29 Октября, 2013 - 12:28:08
Post Id


Новичок


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


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




Silver Soft пишет:
попробуй вначале так написать



да и лучше валидацию формы делать средствами JS )
(Добавление)

блин, до сих пор читал твой ник, как blackberry Радость

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB