powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите разобраться с Update БД на php
8 сообщений из 8, страница 1 из 1
Помогите разобраться с Update БД на php
    #38522860
Foxy7Bu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Помогите, пожалуйста, найти ошибку в обновлении БД через php.
сейчас при вводе нового значения обновляет страничку и сбрасывает на прежнее, в базу значение не вносит

Код такой:

<body>
<form method="post" action="update.php">

<?php
//Редактируем данные:
if (isset($_POST["id_requests"])){
$id = $_POST['id_requests'] ;
$them = $_POST['theme'];
$q=mysql_query("UPDATE u3191847_cs_sd.t_requests SET t_requests.theme='".$them."' WHERE t_requests.id_requests='".$id."'");
if (!q) {
echo "Не удалось выполнить запрос SQ";
} }
//Вывод значений из БД
$result = mysql_query("SELECT * FROM u3191847_cs_sd.t_requests where id_requests = 1");
$list = mysql_fetch_array($result);
echo " <input type='text' name='theme' border='1' size='34' style='color:blue;' value=".$list["theme"].">";
?>

<input type="submit" name="Submit" value="Применить изменения" style="color:blue;">
</form>
</body>

Заранее спасибо :)
...
Рейтинг: 0 / 0
Помогите разобраться с Update БД на php
    #38522904
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxy7Bu,

Пичально дырявая до SQL-Injection хрень.

тынц
...
Рейтинг: 0 / 0
Помогите разобраться с Update БД на php
    #38522909
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if (!q) {
...
Рейтинг: 0 / 0
Помогите разобраться с Update БД на php
    #38522986
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxy7BuДобрый день!

Помогите, пожалуйста, найти ошибку в обновлении БД через php.
сейчас при вводе нового значения обновляет страничку и сбрасывает на прежнее, в базу значение не вносит

Код такой:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 
<body>
  <form method="post" action="update.php">   
    
  <?php
	//Редактируем данные:
	if (isset($_POST["id_requests"])){
	$id = $_POST['id_requests'] ;
	$them = $_POST['theme'];
	$q=mysql_query("UPDATE u3191847_cs_sd.t_requests SET t_requests.theme='".$them."' WHERE t_requests.id_requests='".$id."'");
	if (!q) {
	echo "Не удалось выполнить запрос SQ";
		}   }  
    //Вывод значений из БД              
    $result = mysql_query("SELECT * FROM u3191847_cs_sd.t_requests where id_requests = 1");
    $list = mysql_fetch_array($result);
          echo   " <input type='text' name='theme' border='1' size='34' style='color:blue;'  value=".$list["theme"].">";
     ?>                       
      
	<input type="submit" name="Submit" value="Применить изменения" style="color:blue;">
    </form>
</body>


Заранее спасибо :)

а условие if (isset($_POST["id_requests"])){ вообще выполняется?
я просто нигде в форме не вижу инпута с именем "id_requests"

Насчёт sql-injection, о которых уже упомянули, советую почитать. В частности очень хорошо использовать функцию mysql_real_escape_string.

Как я понимаю приблизительно желалось вот это (смотрите отличия):
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 
<body>
  <form method="post" action="update.php">   
    
  <?php
  //Редактируем данные:
  if (isset($_POST["id_requests"])){
    $id = mysql_real_escape_string($_POST['id_requests']);
    $them = mysql_real_escape_string($_POST['theme']);
    $q=mysql_query("UPDATE u3191847_cs_sd.t_requests SET t_requests.theme='{$them}' WHERE t_requests.id_requests='{$id}'");
    if (!q) {
      echo "Не удалось выполнить запрос SQL";
    }
  }   
  //Вывод значений из БД              
  $result = mysql_query("SELECT * FROM u3191847_cs_sd.t_requests where id_requests = 1");
  $list = mysql_fetch_array($result);
  echo   " <input type='text' name='theme' border='1' size='34' style='color:blue;'  value='{$list["theme"]}'>";
  ?>                       
      
  <input type="hidden" name="id_requests" value="1">
  <input type="submit" name="Submit" value="Применить изменения" style="color:blue;">
  </form>
</body>



Не проверял, но вроде так должно работать.
...
Рейтинг: 0 / 0
Помогите разобраться с Update БД на php
    #38523050
Foxy7Bu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное! работает как надо :)
...
Рейтинг: 0 / 0
Помогите разобраться с Update БД на php
    #38523066
Foxy7Bu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если несложно, можете еще посмотреть что с капчей у меня не так.
Проверку на правильность осуществляет, но данные в базу не заносит.
Если полностью удалить капчу - данные успешно в базу вносятся, т.е. проблема именно с капчей, а не с формой добавления в БД.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
 <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 <?php
 
  //--Если передана капча
  if ( isset($_POST['captcha']) )
  {
    $code = $_POST['captcha']; //--Получаем введенную пользователем капчу
     session_start();
    //--Сравниваем
    if ( isset($_SESSION['captcha']) && strtoupper($_SESSION['captcha']) == strtoupper($code) )
      echo 'Правильно!';
        if (isset($_GET["title"])){
            $title = $_GET["title"];
            $desc = $_GET["description"] ;
            $add = "insert into t_requests (theme, description) values ('$title','$desc')";
                }
      else {
      echo 'Неправильно!';}
    //--Удаляем из сессии код капчи
    unset($_SESSION['captcha']);
 
    exit();
  }      
 ?>     
         <table align="center">
        <tr><td>Заголовок:</td>
           <td><input name="title" type="text"  placeholder="Введите краткую тему запроса"></td>
        </tr>
        <tr><td valign="top" align="right" style="color:blue;"> Описание: </td>
            <td><textarea name="description" cols="95" rows="10" placeholder="Укажите максимальное количество деталей, связанных с возникшей проблемой"></textarea> </td>
        </tr>
        </table>
        <div align="center">
        <img src="captcha.php?sid=<?php echo rand(10000, 99999); ?>" width="120" height="20" alt="" />

        <input type="text" name="captcha" />

        <input type="submit" value="Отправить запрос" />
        </div> 
        </form>
</body>



В отдельном файле capcha.php прописываю:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<?php
 
  $letters = 'ABCDEFGKIJKLMNOPQRSTUVWXYZ';
 
  $caplen = 6;
  $width = 120; $height = 20;
  $font = 'comic.ttf';
  $fontsize = 14;
 
  header('Content-type: image/png');
 
  $im = imagecreatetruecolor($width, $height);
  imagesavealpha($im, true);
  $bg = imagecolorallocatealpha($im, 0, 0, 0, 127);
  imagefill($im, 0, 0, $bg);
 
  putenv( 'GDFONTPATH=' . realpath('.') );
 
  $captcha = '';
  for ($i = 0; $i < $caplen; $i++)
  {
    $captcha .= $letters[ rand(0, strlen($letters)-1) ];
    $x = ($width - 20) / $caplen * $i + 10;
    $x = rand($x, $x+4);
    $y = $height - ( ($height - $fontsize) / 2 );
    $curcolor = imagecolorallocate( $im, rand(0, 100), rand(0, 100), rand(0, 100) );
    $angle = rand(-25, 25);
    imagettftext($im, $fontsize, $angle, $x, $y, $curcolor, $font, $captcha[$i]);
  }
 
  session_start();
  $_SESSION['captcha'] = $captcha;
 
  imagepng($im);
  imagedestroy($im);
 
?>
...
Рейтинг: 0 / 0
Помогите разобраться с Update БД на php
    #38523137
Anjey aka PM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxy7Bu,

А статейку-то я на вашем месте бы почитал...
...
Рейтинг: 0 / 0
Помогите разобраться с Update БД на php
    #38523409
Foxy7Bu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение найдено!!!!

Запуск сессии прописываем в начале файла до соединения с БД, а не в середине, как было изначально

Код: php
1.
2.
3.
4.
<?php
    session_start();
   require_once "db.php";
  ?>



и потом сам код:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
 <?php
 
  //--Если передана капча
  if ( isset($_POST['captcha']) )
  {
    $code = $_POST['captcha']; //--Получаем введенную пользователем капчу
  
    //--Сравниваем
    if ( isset($_SESSION['captcha']) && strtoupper($_SESSION['captcha']) == strtoupper($code) )
      echo 'Правильно!';
        if (isset($_GET["title"])){
            $title = $_GET["title"];
            $desc = $_GET["description"] ;
            $add = "insert into t_requests (theme, description) values ('$title','$desc')";
                }
      else {
      echo 'Неправильно!';}
    //--Удаляем из сессии код капчи
    unset($_SESSION['captcha']);
 
    exit();
  }      
 ?>     
         <table align="center">
        <tr><td>Заголовок:</td>
           <td><input name="title" type="text"  placeholder="Введите краткую тему запроса"></td>
        </tr>
        <tr><td valign="top" align="right" style="color:blue;"> Описание: </td>
            <td><textarea name="description" cols="95" rows="10" placeholder="Укажите максимальное количество деталей, связанных с возникшей проблемой"></textarea> </td>
        </tr>
        </table>
        <div align="center">
        <img src="captcha.php?sid=<?php echo rand(10000, 99999); ?>" width="120" height="20" alt="" />
 
        <input type="text" name="captcha" />
 
        <input type="submit" value="Отправить запрос" />
        </div> 
        </form>
</body>
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите разобраться с Update БД на php
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]