X   Сообщение сайта
(Сообщение закроется через 3 секунды)


 

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Найдите ошибку в коде!
hnerd
hnerd
Topic Starter сообщение 20.7.2014, 20:05; Ответить: hnerd
Сообщение #1


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

<!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
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 20.7.2014, 20:15; Ответить: ixman
Сообщение #2


Какой-то ламерский код, а ошибки какие-либо выводятся при попытке изменить данные?
<form method="post" action="edit.php?id=<?php echo $id; ?>"> ваша ошибка выделена жирным
Если это вы писали, могу показать как всё надёжнее сделать. 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
hnerd
hnerd
Topic Starter сообщение 21.7.2014, 13:02; Ответить: hnerd
Сообщение #3


Не спорю, что ошибки ламерские. Я просто практикуюсь создавать простенькие формы на локальном хостинге и простенькие сайты. Пытаюсь отработать все варианты ошибок. Да, это все я написала.. id я написала для постраховки. Все равно не работает с ним и без него!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 21.7.2014, 15:57; Ответить: ixman
Сообщение #4


Оформите все SQL запросы подобающим образом, возможно в этом ещё проблема
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
KataTelecom
KataTelecom
сообщение 28.7.2014, 13:10; Ответить: KataTelecom
Сообщение #5


Очень криво все пишете!
вместо $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)."'");
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 6.8.2014, 14:01; Ответить: fedornabilkin
Сообщение #6


(KataTelecom) *
Очень криво все пишете!

А что же Вы советуете?
Кто же функцию в запрос пихает? Можно прекрасно все добавить в переменную и подставить эту переменную в запрос.
А по поводу
(KataTelecom) *
вместо $result = mysql_query("SELECT * FROM news WHERE id='$id'", $connection); нужно $result = mysql_query("SELECT * FROM `news` WHERE id='".$id."'", $connection);

Все там правильно. В двойных кавычках вполне допустимо использовать переменные.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 6.8.2014, 14:27; Ответить: ixman
Сообщение #7


А ещё проще PDO использовать
А если ещё придираться, то вижу ленивые SQL запросы, которые не в коем случае не рекомендуется использовать. Они нагрузку создают, которая порой совсем не нужна
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kamchatniyoleg
kamchatniyoleg
сообщение 7.8.2014, 9:06; Ответить: kamchatniyoleg
Сообщение #8


[member=Ixman], А почему PDO , а не active records ? 

А я вижу не оптимизированные запросы =) Даже для обычных ...  :diablo:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 7.8.2014, 10:06; Ответить: ixman
Сообщение #9


[member=kamchatniyoleg], вопрос не в этом, человек пытается понять азы, у него получается и возникают вопросы. Поэтому я считаю сейчас не уместно грузить чем-либо, так как нужно уловить суть в понятии механизмов и принципов работы. А все остальное - это придёт потом. Я ещё ни одного новичка не видел, который бы сразу всё правильно и оптимально делал.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 7.8.2014, 10:32; Ответить: ixman
Сообщение #10


[member=kamchatniyoleg], прочитал про active records, не сталкивался с ним, так как он в основном во фреймворках используется. А чем он лучше PDO? Там надо реализовывать класс, а PDO это уже готовый и фактически безопасный вариант + к нему своя оболочка для удобной работы и не нужен active records. Хотя конечно у него есть свои плюсы, но не убедил он меня
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужно исправить ошибку
4 riut81 2118 9.3.2018, 21:31
автор: riut81
Открытая тема (нет новых ответов) Исправить ошибку при загрузке файла и добавить google recaptcha
0 Serg1991 2271 18.2.2015, 18:21
автор: -Serg1991-
Открытая тема (нет новых ответов) Помогите найти ошибку comments.php
0 bogdanchik1408_hb 2635 5.12.2014, 21:25
автор: -bogdanchik1408-
Открытая тема (нет новых ответов) В редакторе шаблона cms допустил ошибку, и теперь все меню сдвинулось в низ.
2 Роман13 2918 11.9.2013, 16:40
автор: -fanaticc-
Открытая тема (нет новых ответов) Помогите найти ошибку
2 Ramzes333 2548 13.8.2013, 18:57
автор: -Ramzes333-


 



RSS Текстовая версия Сейчас: 3.3.2021, 11:32
Дизайн