[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Редактирование данных
HAZARD
Здравствуйте. Возникла проблема, сделал форму редактирования данных, она не воркает, помогите) в теме не флудим)
Ссылка пусть приходит с id, извлекаем из неё номер и вот собсна весь код)
<?
$id = intval($_GET["id"]);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if ($_POST["name"] == "" || $_POST["all"] == "")
print('error');
$name = sqlesc(htmlspecialchars($_POST["name"]));
$all = sqlesc($_POST["all"]);
sql_query("UPDATE news SET heading = $name, text = $all WHERE id = $id");
print('Новость отредактирована.');
stdfoot();
die;
}
$result = sql_query("SELECT heading, text FROM news WHERE id=$id");
$row = mysql_fetch_array($result);
?>
<form method=post action="edit_news.php">
<
table border=0 cellspacing=0 cellpadding=5>
<
tr><td class=rowhead>Название </td><td><input type=text name=name size=50 value="<?=$row['heading']?>"></td></tr>
<
tr><td class=rowhead>Содержание </td><td><TEXTAREA NAME="all" ROWS=10 COLS=50><?=$row['text']?></TEXTAREA></td></tr>
<
tr><td colspan=2 align=center><input type=submit value="OK" class=btn></td></tr>
</
table>
</
form>
<?
?>

Скрипт не работает, в чем проблема?!



Спустя 3 часа, 30 минут, 54 секунды (2.03.2011 - 23:01) inpost написал(а):
Это какой-то фреймворк? Все команды какие-то странные, sqlesc, sql_query(), stdfoot(), что это вообще такое?

Спустя 9 часов, 3 минуты, 52 секунды (3.03.2011 - 08:05) alex12060 написал(а):
inpost


sqlesc() // Это наверное mysql_real_escape_string()
sql_query() // mysql_query()


Но тут не в этом дело, просто человек вставил в функции.


if ($_POST["name"] == "" || $_POST["all"] == "") // Если пустые входные данные
print('error'); // Выводим ошибку на экран
$name = sqlesc(htmlspecialchars($_POST["name"]));
$all = sqlesc($_POST["all"]);
sql_query("UPDATE news SET heading = $name, text = $all WHERE id = $id"); // И РЕДАКТИРУЕМ ДАННЫЕ?!? ЧТО ЗА БРЕД?
print('Новость отредактирована.'); // Убило :D
stdfoot();
die;

Спустя 8 часов, 53 минуты, 9 секунд (3.03.2011 - 16:59) HAZARD написал(а):
Цитата (alex12060 @ 3.03.2011 - 05:05)
inpost


sqlesc() // Это наверное mysql_real_escape_string()
sql_query() // mysql_query()


Но тут не в этом дело, просто человек вставил в функции.


if ($_POST["name"] == "" || $_POST["all"] == "") // Если пустые входные данные
print('error'); // Выводим ошибку на экран
$name = sqlesc(htmlspecialchars($_POST["name"]));
$all = sqlesc($_POST["all"]);
sql_query("UPDATE news SET heading = $name, text = $all WHERE id = $id"); // И РЕДАКТИРУЕМ ДАННЫЕ?!? ЧТО ЗА БРЕД?
print('Новость отредактирована.'); // Убило :D
stdfoot();
die;

как правильно сделать?!

Спустя 2 минуты, 35 секунд (3.03.2011 - 17:01) linker написал(а):
Во-первых, где в коде указание на то, что значение id должно передаваться вместе с запросом? Во-вторых, метод POST, а id получаем из GET
$id = intval($_GET["id"]);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
...
}

Спустя 1 минута, 52 секунды (3.03.2011 - 17:03) HAZARD написал(а):
Цитата (linker @ 3.03.2011 - 14:01)
Во-первых, где в коде указание на то, что значение id должно передаваться вместе с запросом? Во-вторых, метод POST, а id получаем из GET
$id = intval($_GET["id"]);
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
...
}

а как лучше то сделать?!

Спустя 5 минут, 37 секунд (3.03.2011 - 17:09) alex12060 написал(а):

<?php

$id = isset($_GET['id']) ? (int)$_GET['id'] : null;

if ($_POST['OK'])
{
if ($_POST["name"] != "" || $_POST["all"] != "")
//print('error');
$name = sqlesc(htmlspecialchars($_POST["name"]));
$all = sqlesc($_POST["all"]);
sql_query("UPDATE `news` SET `heading` = '$name', `text` = '$all' WHERE `id` = '.sqlesc($id).'");
print('Новость отредактирована.');
stdfoot();
die();
} else {
die('Error!');
}
$result = sql_query("SELECT heading, text FROM news WHERE id=$id");
$row = mysql_fetch_assoc($result);
?>
<form method=post action="edit_news.php?id=<?php echo (int)$_GET['id']; ?>">
<
table border=0 cellspacing=0 cellpadding=5>
<
tr><td class=rowhead>Название </td><td><input type=text name=name size=50 value="<?=$row['heading']?>"></td></tr>
<
tr><td class=rowhead>Содержание </td><td><TEXTAREA NAME="all" ROWS=10 COLS=50><?=$row['text']?></TEXTAREA></td></tr>
<
tr><td colspan=2 align=center><input type=submit value="OK" class=btn></td></tr>
</
table>
</
form>

Спустя 3 минуты, 55 секунд (3.03.2011 - 17:12) HAZARD написал(а):
Цитата (alex12060 @ 3.03.2011 - 14:09)

<?php

$id = isset($_GET['id']) ? (int)$_GET['id'] : null;

if ($_POST['OK'])
{
if ($_POST["name"] != "" || $_POST["all"] != "")
//print('error');
$name = sqlesc(htmlspecialchars($_POST["name"]));
$all = sqlesc($_POST["all"]);
sql_query("UPDATE `news` SET `heading` = '$name', `text` = '$all' WHERE `id` = '.sqlesc($id).'");
print('Новость отредактирована.');
stdfoot();
die();
} else {
die('Error!');
}
$result = sql_query("SELECT heading, text FROM news WHERE id=$id");
$row = mysql_fetch_assoc($result);
?>
<form method=post action="edit_news.php?id=<?php echo (int)$_GET['id']; ?>">
<
table border=0 cellspacing=0 cellpadding=5>
<
tr><td class=rowhead>Название </td><td><input type=text name=name size=50 value="<?=$row['heading']?>"></td></tr>
<
tr><td class=rowhead>Содержание </td><td><TEXTAREA NAME="all" ROWS=10 COLS=50><?=$row['text']?></TEXTAREA></td></tr>
<
tr><td colspan=2 align=center><input type=submit value="OK" class=btn></td></tr>
</
table>
</
form>

Сразу пишет error!

Спустя 20 минут, 6 секунд (3.03.2011 - 17:33) alex12060 написал(а):
Это весь скрипт твой? Выложи весь код.

Спустя 2 минуты, 52 секунды (3.03.2011 - 17:35) HAZARD написал(а):
Цитата (alex12060 @ 3.03.2011 - 14:33)
Это весь скрипт твой? Выложи весь код.

<?
require_once "include/auth.inc.php";
require_once "include/core.php";
stdhead();
dbconn();

$id = isset($_GET['id']) ? (int)$_GET['id'] : null;

if ($_POST['OK'])
{
if ($_POST["name"] != "" || $_POST["all"] != "")
//print('error');
$name = sqlesc(htmlspecialchars($_POST["name"]));
$all = sqlesc($_POST["all"]);
sql_query("UPDATE `news` SET `heading` = '$name', `text` = '$all' WHERE `id` = '.sqlesc($id).'");
print('Новость отредактирована.');
stdfoot();
die();
} else {
die('Error!');
}
$result = sql_query("SELECT heading, text FROM news WHERE id=$id");
$row = mysql_fetch_assoc($result);
?>
<form method=post action="edit_news.php?id=<?php echo (int)$_GET['id']; ?>">
<table border=0 cellspacing=0 cellpadding=5>
<tr><td class=rowhead>Название </td><td><input type=text name=name size=50 value="<?=$row['heading']?>"></td></tr>
<tr><td class=rowhead>Содержание </td><td><TEXTAREA NAME="all" ROWS=10 COLS=50><?=$row['text']?></TEXTAREA></td></tr>
<tr><td colspan=2 align=center><input type=submit value="OK" class=btn></td></tr>
</table>
</form>
<?
///} else { print('<font color=#ff0000><b>ERROR</b></font>'); }
stdfoot();
?>

Спустя 4 минуты, 13 секунд (3.03.2011 - 17:40) HAZARD написал(а):
edit_news.php?id=999
такая ссылка
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.