Перейти к содержимому

Реферальная программа Мегаплана


Найдите ошибку в коде!

#1 hnerd

hnerd
  • Пользователь
  • 284 сообщений
  • Репутация: 18
0

Отправлено 20 Июль 2014 - 19:05

В общем этот код для редактирования новостей через специальную форму, а не через базу данных. Но это код работает частично. Когда я нажимаю на ссылку редактировать, открывается форма для редактирования, где уже имеется текс, взятый из базы данных. Но, когда я нажимаю сохранить. ничего не происходит, текст не менятся! Вот код:

<!doctype html>
<html>

    <head>
        <meta charset="utf-8">
        <title>Редактировать запись</title>
    </head>

    <body>
    <h1>Редактируем статью!</h1><br />
    
    <?php
        include_once("db.php");
        $id = $_GET['id'];
        
        $result = mysql_query("SELECT * FROM news WHERE id='$id'", $connection);
        $row = mysql_fetch_array($result);
        
        if(isset($_POST['save'])){
            $title = strip_tags(trim($_POST['title']));
            $text = strip_tags(trim($_POST['text']));
            $author = strip_tags(trim($_POST['author']));

            mysql_query(" UPDATE news SET title='$title', text='$text', author='$author' WHERE id='$id' ");
        
            mysql_close();
            }
            ?>
            
        <form method="post" action="edit.php?=<?php echo $id; ?>">
            Введите название<br />
            <input type="text" name="title" value="<?php echo $row['title']; ?>" /><br />
            Введите текст<br />
            <textarea cols="50" rows="15" name="text"><?php echo $row['text']; ?></textarea><br />
            Введите свое имя<br />
            <input type="text" name="author" value="<?php echo $row['author']; ?>" /><br />
            <input type="submit" name="save" value="Сохранить" />
        </form>
    </body>
    </html>

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Не могу найти ошибку в файле РНР
  2. Как найти синтаксическую ошибку
  3. Ошибка в коде на validator
  4. Ошибки HTML кода.
  5. Найдите пожалуйста ошибки

#2 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 20 Июль 2014 - 19:15

Какой-то ламерский код, а ошибки какие-либо выводятся при попытке изменить данные?


<form method="post" action="edit.php?id=<?php echo $id; ?>"> ваша ошибка выделена жирным


Если это вы писали, могу показать как всё надёжнее сделать. 


  • 0

#3 hnerd

hnerd
    Topic Starter
  • Пользователь
  • 284 сообщений
  • Репутация: 18

Отправлено 21 Июль 2014 - 12:02

Не спорю, что ошибки ламерские. Я просто практикуюсь создавать простенькие формы на локальном хостинге и простенькие сайты. Пытаюсь отработать все варианты ошибок. Да, это все я написала.. id я написала для постраховки. Все равно не работает с ним и без него!


  • 0

#4 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 21 Июль 2014 - 14:57

Оформите все SQL запросы подобающим образом, возможно в этом ещё проблема


  • 0

#5 KataTelecom

KataTelecom
  • Пользователь
  • 31 сообщений
  • Репутация: 2

Отправлено 28 Июль 2014 - 12:10

Очень криво все пишете!

вместо $result = mysql_query("SELECT * FROM news WHERE id='$id'", $connection);

нужно $result = mysql_query("SELECT * FROM `news` WHERE id='".$id."'", $connection);

Еще в коде есть уязвимости. Нужно добавить фильтры от mysql inj иначе вас похакают.

вместо mysql_query(" UPDATE news SET title='$title', text='$text', author='$author' WHERE id='$id' ");

mysql_query("UPDATE `news` SET `title`='".mysql_real_escape_string($title)."', `text`='".mysql_real_escape_string($text)."', `author`='".mysql_real_escape_string($author)."' WHERE `id`='".mysql_real_escape_string($id)."'");


  • 1

#6 fedornabilkin

fedornabilkin
  • Пользователь
  • 696 сообщений
  • Репутация: 91

Отправлено 06 Август 2014 - 13:01


Очень криво все пишете!

А что же Вы советуете?

Кто же функцию в запрос пихает? Можно прекрасно все добавить в переменную и подставить эту переменную в запрос.

А по поводу


вместо $result = mysql_query("SELECT * FROM news WHERE id='$id'", $connection); нужно $result = mysql_query("SELECT * FROM `news` WHERE id='".$id."'", $connection);

Все там правильно. В двойных кавычках вполне допустимо использовать переменные.


  • 0
Как часто в горестной разлуке,В моей блуждающей судьбе, ФО, я думал о тебе.


#7 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 06 Август 2014 - 13:27

А ещё проще PDO использовать


А если ещё придираться, то вижу ленивые SQL запросы, которые не в коем случае не рекомендуется использовать. Они нагрузку создают, которая порой совсем не нужна


  • 0

#8 kamchatniyoleg

kamchatniyoleg
  • Пользователь PRO
  • 1 178 сообщений
  • Репутация: 84

Отправлено 07 Август 2014 - 08:06

Ixman, А почему PDO , а не active records ? 

 

А я вижу не оптимизированные запросы =) Даже для обычных ...  :diablo:


  • 0
Сервис электронного информирования клиентов PostTrail.ru
Отслеживание посылок Почты России в автоматическом режиме! Лояльность клиента - прибыль магазина!


#9 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 07 Август 2014 - 09:06

kamchatniyoleg, вопрос не в этом, человек пытается понять азы, у него получается и возникают вопросы. Поэтому я считаю сейчас не уместно грузить чем-либо, так как нужно уловить суть в понятии механизмов и принципов работы. А все остальное - это придёт потом. Я ещё ни одного новичка не видел, который бы сразу всё правильно и оптимально делал.


  • 0

#10 Ixman

Ixman
  • Пользователь PRO
  • 2 159 сообщений
  • Репутация: 432

Отправлено 07 Август 2014 - 09:32

kamchatniyoleg, прочитал про active records, не сталкивался с ним, так как он в основном во фреймворках используется. А чем он лучше PDO? Там надо реализовывать класс, а PDO это уже готовый и фактически безопасный вариант + к нему своя оболочка для удобной работы и не нужен active records. Хотя конечно у него есть свои плюсы, но не убедил он меня


  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru