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 :: Проблема с $_GET

 PHP.SU

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


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

> Без описания
Kenshin
Отправлено: 29 Июля, 2013 - 21:22:43
Post Id


Новичок


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


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




При отправке измененных данных в БД не хочет использовать данные из $_GET
PHP:
скопировать код в буфер обмена
  1.  
  2. ...
  3. $id= sanitizeString ($_GET['edit']);
  4. ....
  5.  
  6.  if (isset($_POST['Title']) && isset($_POST['Director']) && isset($_POST['Year']) && isset($_POST['Category']) && isset($_POST['but']))
  7. {
  8.  
  9. $Title= sanitizeString ($_POST['Title']);
  10. $Director= sanitizeString ($_POST['Director']);
  11. $Year= sanitizeString ($_POST['Year']);
  12. $Category= sanitizeString ($_POST['Category']);
  13.  
  14. $query = "UPDATE movies SET Title='$Title', Director='$Director', Year='$Year' WHERE id='$id'";
  15. $result = mysql_query ($query);
  16. if (!$result) die ("Error");
  17.  
  18. }
  19. ....
  20.  


Ошибки Error не выдает. При том что при использовании другой операции с переменной $id на той же странице, никаких проблем нету.
Например:

PHP:
скопировать код в буфер обмена
  1.  
  2. .....
  3. $edit_m=mysql_query("SELECT * FROM movies WHERE id=$id");
  4. while ($row= mysql_fetch_row($edit_m))
  5. {
  6. $t= $row[1];
  7. $d= $row[2];
  8. $y= $row[3];
  9. $ci = $row[0];
  10. }
  11. .....
  12.  


В чем проблема?
 
 Top
Alvor
Отправлено: 29 Июля, 2013 - 23:08:29
Post Id


Гость


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


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




А что говорит если сделать так?
 
 Top
Kenshin
Отправлено: 29 Июля, 2013 - 23:53:45
Post Id


Новичок


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


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




[quote=Alvor][/quote]
Пишет:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Notice: Undefined index: edit  on line 16
  3.  
  4. Notice: Undefined index: edit  on line 20
  5.  
  6. Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given on line 23
  7.  

Но перед нажатием кнопки.... проблем с с этим edit нету....

Вывел и $_GET['edit'] и sanitizeString $id в файл...и один и другой выводят в файл число 19, то что мне нужно..

Вывел в файл $query и результат:

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. UPDATE movies SET Title='Film1', Director='Director1', Year='2000' WHERE id=''
  3.  


Куда пропало значение переменной $id ????????????? Не понял
 
 Top
DelphinPRO
Отправлено: 30 Июля, 2013 - 00:04:18
Post Id



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


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


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




Kenshin пишет:
Куда пропало значение переменной $id ?????????????

Очевидно, что где-то перезаписалось ;) смотрите внимательно код.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Kenshin
Отправлено: 30 Июля, 2013 - 00:15:20
Post Id


Новичок


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


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




DelphinPRO пишет:
Kenshin пишет:
Куда пропало значение переменной $id ?????????????

Очевидно, что где-то перезаписалось ;) смотрите внимательно код.


Все пересмотрел... нигде больше $id не используется... и не переписуется....
(Добавление)
Kenshin пишет:
DelphinPRO пишет:
Kenshin пишет:
Куда пропало значение переменной $id ?????????????

Очевидно, что где-то перезаписалось ;) смотрите внимательно код.


Все пересмотрел... нигде больше $id не используется... и не переписуется....


Может вывести весь код? а то я уже все пересмотрел и ничего не нашел....
 
 Top
DelphinPRO
Отправлено: 30 Июля, 2013 - 11:26:59
Post Id



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


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


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




Kenshin пишет:
нигде больше $id не используется... и не переписуется....

Чудес не бывает.
на крайний случай можете выводить var_dump`ом значение этой переменной впоследовательно в каждой строке, начиная от ее объявления, и заканчивая проблемным местом.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Alvor
Отправлено: 30 Июля, 2013 - 17:04:23
Post Id


Гость


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


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




Kenshin, давай код, глянем
 
 Top
Kenshin
Отправлено: 31 Июля, 2013 - 00:08:02
Post Id


Новичок


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


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




[quote=Alvor][/quote]

Вот весь код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <!doctype html>
  3. <html> <head> <title>Edit Movie</title>
  4. </head>
  5.  <body>
  6.  <fieldset> <legend>Edit Movie</legend>
  7.  <form action="Edit.php" method="post">
  8. <?PHP
  9.  
  10. require_once 'Db_log.php'; // only once
  11. $db_connect = mysql_connect ($db_hostname, $db_username, $db_password); // connect to Mysql
  12. if (!$db_connect) die("You can not connect to Mysql");
  13.  
  14. $db_select = mysql_select_db ($db_database); //Select Database
  15. if (!$db_select) die("You can not connect to Mysql");
  16.  
  17. $id= sanitizeString ($_GET['edit']);
  18.  
  19. file_put_contents ("out1.txt", $id);
  20.  
  21. file_put_contents ("out2.txt", $_GET['edit']);
  22.  
  23. $edit_m=mysql_query("SELECT * FROM movies WHERE id=$id");
  24. while ($row= mysql_fetch_row($edit_m))
  25. {
  26. $t= $row[1];
  27. $d= $row[2];
  28. $y= $row[3];
  29. $ci = $row[0];
  30.  
  31. $cat=mysql_query("SELECT * FROM categories WHERE cat_id='$row[4]'");
  32. while ($row_c= mysql_fetch_row($cat))
  33. {
  34. $c= $row_c[1];
  35. }
  36.  
  37. echo '<p> Title  <input type="text" name="Title"/ value="'.$t.'">
  38.  Director  <input type="text" name="Director" value="'.$d.'"/>
  39.  Year  <input type="number" min="1895" max="2015" name="Year" value="'.$y.'"/>
  40.  Category  <Select name="Category">
  41.  <Option value="'.$id.'">'.$c.' (Previous Category)</Option>
  42.  <Option></Option>';
  43.   }
  44.  
  45.  
  46.   $query = mysql_query ("SELECT * FROM categories");
  47.    
  48.     while($row = mysql_fetch_row($query))
  49.     {
  50.       echo '<option value="' . $row['0'] . '">' . $row['1'] . '</option>';
  51.     }
  52.   echo '</select> </p>
  53. <input type="submit" name="but" value="Edit"/>
  54. </form></fieldset></body></html>';
  55.  
  56.  
  57.  if (isset($_POST['Title']) && isset($_POST['Director']) && isset($_POST['Year']) && isset($_POST['Category']) && isset($_POST['but']))
  58. {
  59.  
  60. $Title= sanitizeString ($_POST['Title']);
  61. $Director= sanitizeString ($_POST['Director']);
  62. $Year= sanitizeString ($_POST['Year']);
  63. $Category= sanitizeString ($_POST['Category']);
  64.  
  65. $query = "UPDATE movies SET Title='$Title', Director='$Director', Year='$Year' WHERE id='$id'";
  66. $result = mysql_query ($query)
  67.  }
  68.  
  69.  
  70.  
  71. function sanitizeString ($string) // Preventing SQL Injection
  72. {
  73. $string = stripslashes($string); // Remove the backslash
  74. $string = htmlentities($string); // Convert some characters to HTML entities
  75. $string = Strip_tags($string); // Strip the string from HTML tags
  76. return mysql_real_escape_string($string); // escapes special characters in a string for use in an SQL statement
  77. return $string;
  78. }
  79.  
  80.  
  81. function get_post($var)
  82. {
  83. return mysql_real_escape_string ($_POST[$var]);
  84. }
  85.  
  86.  
  87. ?>
  88.  

(Добавление)
Может еще что-то где-то подскажете новичку... где-то подскажете как лучше подправить... Однако
 
 Top
Kenshin
Отправлено: 31 Июля, 2013 - 18:23:43
Post Id


Новичок


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


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




Все проблему решил... изменил action в <form> с
CODE (html):
скопировать код в буфер обмена
  1.  
  2. form action="Edit.php" method="post">
  3.  

на
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form action="Edit.php?edit='.$id.'" method="post">
  3.  

и теперь все работает.

(Отредактировано автором: 31 Июля, 2013 - 18:26:00)

 
 Top
Alvor
Отправлено: 31 Июля, 2013 - 23:49:36
Post Id


Гость


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


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




Kenshin, красава Радость
 
 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