Witam,
tak jak pisałem w temacie zmienna $post_id oraz $comment_id nie pobierają wartości z URL. Jeśli do tych zmiennych nie zostaną dostarczone odpowienie wartości podczas edycji wpisu wczesniejesze wartości nie są przenoszone do formularza by je edytować. Dodane wpisy sa umieszczane w bazie danych ale z braku wartości w zmiennej nie zostają one wyświetlone na stronie. Po ręcznym wisaniu wartości do zmiennej $post_id wpis wyswietla sie normalnie.
Wartość do pobrania z URL dla zmiennej $post_id
Kod
blog/modify_comment.php?id_artykulu=1&akcja=Edycja
Wartość do pobrania z URL dla zmiennej $comment_id
Kod
blog/modify_comment.php?id_komentarza=1&akcja=Edycja
Poniżej zamieszczam kod pliku obsługującego skrypt do edycji wpisow.
<?php
require_once('config.php');
include('db_login.php');
require_once('DB.php');
$smarty->assign('blog_title', $blog_title);
$smarty->display('header.tpl');
if (!isset($_SESSION['username'])) { echo 'Proszę się <a href="login.php">zalogować</a>.'; $stop=TRUE;
}
$connection=DB::connect("mysql://$db_username:$db_password@$db_host/$db_database");
if (!$connection) {
die('Nie można połączyć się z bazą danych'. DB
::errorMessage($connection)); }
$stop=false;
$post_id=$_POST['id_artykulu'];
$title=$_POST['tytul'];
$body=$_POST['tresc'];
$action=$_POST['akcja'];
$category_id=$_POST['id_kategorii'];
$user_id=$_SESSION['user_id'];
$comment_id=$_POST['id_komentarza'];
if ($_GET['akcja']=='usuwanie' and !$stop) {
$comment_id=$_GET['id_komentarza'];
$query="DELETE FROM komentarze WHERE id_komentarza='". $comment_id ."' AND uzytkownik_id = '". $user_id ."'";
$result=$connection->query($query);
if (DB::isError($result)) {
die ('Nie można wykonać zaputania do bazy danych'. DB
::errorMessage($result)); }
echo ('Pomyślnie usunięto wiersz.<br />'); $stop=TRUE;
}
if ($_GET['id_komentarza'] AND !$stop) {
$comment_id=$_GET['id_komentarza'];
$query="SELECT * FROM komentarze NATURAL JOIN uzytkownicy WHERE id_komentarza=". $_GET['id_komentarza'];
$result=$connection->query($query);
if (DB::isError($result)) {
die ('Nie można wykonać zapytania do bazy danych'. DB
::errorMessage($result)); }
while ($result_row=$result->fetchRow(DB_FETCHMODE_ASSOC)) {
$comments[]=array('title'=>htmlentities
($result_row['tytul']), 'body'=>htmlentities($result_row['tresc']),
'comment_id'=>$result_row['id_komentarza']);
}
$post_id=$_GET['id_artykulu'];
$smarty->assign('akcja', 'edycja');
$smarty->assign('komentarze', $comments);
$smarty->display('comment_form.tpl');
$smarty->display('footer.tpl');
}
if ($_POST['submit'] AND !$stop) {
if ($title=='') {
echo ('Pole tytuł musi być wypelnione. <br />'); $found_error=TRUE;
$stop='TRUE';
}
if ($body=='') {
echo ('Pole treść musi być wypelnione. <br />'); $found_error=TRUE;
$stop='TRUE';
}
if ($_POST['akcja']=='dodawanie' AND !$stop) {
$query="INSERT INTO komentarze VALUES (NULL, "."'". $user_id ."','". $post_id ."','". $title ."','". $body ."', NULL)";
$result=$connection->query($query);
if (DB::isError($result)) {
die ('Nie można wykonać zapytania do bazy danych'. DB
::errorMessage($result)); }
echo('Pomyślnie dodano artykuł. <br />'); $stop='TRUE';
}
if ($_POST['akcja']=='edycja' and !$stop) {
$query="UPDATE komentarze SET tytul='". $title ."', tresc='". $body ."' WHERE id_komentarza='". $comment_id ."' AND uzytkownik_id='". $user_id ."'";
$result=$connection->query($query);
if (DB::isError($result)) {
die ('Nie można wykonać zapytania do bazy danych'. DB
::errorMessage($result)); }
echo ('Rekor pomyślnie zaktualizowano. <br />'); $stop='TRUE';
}
}
if (!$stop) {
$post_id=$_GET['id_artykulu'];
$result_row=array('tytul'=>NULL
, 'tresc'=>NULL
, 'id_komentarza'=>NULL
); $comments[]=$result_row;
$smarty->assign('komentarze', $comments);
$smarty->assign('akcja', 'dodawanie');
$smarty->display('comment_form.tpl');
}
if ($found_error) {
$post_id=$_POST['id_artykulu'];
$result_row=array('tytul'=>htmlentities
($title), 'tresc'=>htmlentities
($body), 'id_komentarza'=>htmlentities
($id_komentarza)); $comments[]=$result_row;
$smarty->assign('komentarze', $comments);
$smarty->display('comment_form.tpl');
}
$smarty->display('footer.tpl');
?>
Czekam na Wasza pomoc