скрипт за редакция

Dido_net

Registered
Имам следният скрипт:

<?php
include("auth.php");

$avtor = $_POST['avtor'];
$zaglavie = $_POST['zaglavie'];
$id = $_GET['id'];
$id_post=$_POST['id'];
$text = $_POST['text'];


if(isset($zaglavie) and isset($text)){
$zaglavie = htmlspecialchars($zaglavie);
$avtor = htmlspecialchars($avtor);
$text = nl2br($text);
include('/home/d3admin/public_html/7a/include/config.php');
$conn = mysql_connect("localhost",$user,$pass) or die (mysql_error());
$db = mysql_select_db($dbs, $conn) or die (mysql_error());
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
$sql = "UPDATE news SET zaglavie = '$zaglavie', avtor = '$avtor', text = '$text' WHERE id = '$id_post'";
$db = mysql_query($sql) or die (mysql_error());
if($sql){echo"<meta http-equiv=\"refresh\" content=\"2;url=./news.php\">Новината е обновена успешно успешно !"; echo $zaglavie;}
}



if($avtor==NULL or !isset($zaglavie) or !isset($text)){ ?>
<h2>Редакция на новина</h2><?php
$getid = intval($_GET['id']);
include('/home/d3admin/public_html/7a/include/config.php');
$conn1 = mysql_connect("localhost",$user,$pass) or die (mysql_error());
$db1 = mysql_select_db($dbs, $conn1) or die (mysql_error());
$zaqvka1 = "SELECT * FROM news WHERE id=$getid";
$result1 = @mysql_query($zaqvka1,$conn1) or die(mysql_error());
if(mysql_num_rows($result1) == 0) { echo "Невалидно ID !"; }
$db1 = mysql_query( $zaqvka1, $conn1 );
while($red=mysql_fetch_array($db1))
{
?>
<table border="0">
<form action="" method="post">
<input type="hidden" value="<?php echo $id; ?>">
<tr><td>Автор</td><td>
<select name="avtor"><option SELECTED value="<?php echo $red['avtor']; ?>"><?php echo $red['avtor']; ?><option> </option><option value="DiDo">DiDo</option><option value="SLASH">SLASH</option><option value="vlad3t0">vlad3t0</option></select>
<tr><td>Заглавие</td><td><input type="text" size="50" name="zaglavie" value="<?php echo $red['zaglavie']; ?>"></td></tr>
<tr><td valign="top">Текст</td><td><textarea name="text" rows="10" cols="50"><?php echo $red['text']; ?></textarea></td></tr>
<tr><td align="center" colspan="2"><input type="submit" value="Промени !"></td></tr>
<?php
}
}
?>



не мога да разбера защо не иска да ми ъпдейтне zaglavie, avtor и text... :roll:
 
сложи едно echo да видиш дали се изпълнява този иф
и едно echo на заявката да вдидиш дали всички променливи са ОК
ето пример:

if(isset($zaglavie) and isset($text)){
echo 'updejtwam<br>';
$zaglavie = htmlspecialchars($zaglavie);
$avtor = htmlspecialchars($avtor);
$text = nl2br($text);
include('/home/d3admin/public_html/7a/include/config.php');
$conn = mysql_connect("localhost",$user,$pass) or die (mysql_error());
$db = mysql_select_db($dbs, $conn) or die (mysql_error());
$chars="SET CHARACTER SET cp1251";mysql_query($chars);
echo $sql = "UPDATE news SET zaglavie = '$zaglavie', avtor = '$avtor', text = '$text' WHERE id = '$id_post'";
$db = mysql_query($sql) or die (mysql_error());
if($sql){echo"<meta http-equiv=\"refresh\" content=\"2;url=./news.php\">Новината е обновена успешно успешно !"; echo $zaglavie;}
}
 
забелязах само, че формата ти е на POST а виж тук:

$getid = intval($_GET['id']);
$id = $_GET['id'];

П.П.
Също не мога да разбера смисъла на използване на intval
 
заради това:
<input type="hidden" value="<?php echo $id; ?>">
...
name='id' си забравил,а имаш $id_post=$_POST['id'];
после с това $id_post търсиш да ъпдейт в базата , но то в случая е NULL

jooorooo, intval е доста полезно.
Връща int от променлива .. т.е. предпазва от инжекция.
Виж повече php.net/intval тука.
 

Back
Горе