Ссылка пусть приходит с 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
Но тут не в этом дело, просто человек вставил в функции.
|
как правильно сделать?!
Спустя 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"]); |
а как лучше то сделать?!
Спустя 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) |
|
Сразу пишет 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
такая ссылка
такая ссылка