Witam,
według mojej oceny problem polega na tym, że do zmiennej $user_id nie jest przenoszony id użytkownika, czego skutkiem jest błędne wyswietlanie strony oraz złe umieszczanie danych w db.
<?php
include('db_login.php');
require_once('DB.php');
require_once('config.php');
$stop = FALSE;
$found_error = FALSE;
$smarty -> assign('blog_title', $blog_title);
$smarty -> display('header.tpl');
if (!isset($_SESSION['username'])) { $stop = TRUE;
}
$post_id = $_POST['id_artykulu'];
$title = $_POST['tytul'];
$body = $_POST['tresc'];
$action = $_POST['akcja'];
$category_id = $_POST['id_kategorii'];
$user_id = $_SESSION['uzytkownik_id'];
$connection = DB::connect(\"mysql://$db_username:$db_password@$db_host/$db_database\");
if (DB::isError($connection)) {
die ('Nie mozna nawiazac polaczenia z baza danych: '. DB::errorMessage($connection));
}
if ($_GET['akcja'] == 'usuwanie' and !$stop) {
$get_post_id=$_GET['id_artykulu'];
$query=\"DELETE FROM artykuly WHERE id_artykulu='\".$post_id.\"' AND uzytkownik_id='\".$user_id.\"'\";
$result = $connection->query($query);
if (DB::isError($result)) {
die ('Nie mozna wykonac zapytania do bazy danych: '. DB::errorMessage($result));
}
echo ('Pomyslnie usuniety wiersz. ');
$stop='TRUE';
}
if ($_GET['id_artykulu'] AND !$stop) {
$get_post_id=$_GET['id_artykulu'];
$query=\"SELECT * FROM uzytkownicy NATURAL JOIN artykuly NATURAL JOIN kategorie WHERE id_artykulu=$get_post_id\";
$result=$connection->query($query);
if (DB::isError($result)) {
die ('Nie mozna wykonac zapytania do bazy danych: '. DB::errorMessage($result));
}
while ($result_row=$result->fetchRow(DB_FETCHMODE_ASSOC)) {
$posts[]=$result_row;
}
$smarty->assign('akcja', 'edycja');
$smarty->assign('artykuly', $posts);
$query='SELECT id_kategorii, kategoria FROM kategorie';
$smarty->assign('kategorie', $connection->getAssoc($query));
$smarty->display('post_form.tpl');
$stop='TRUE';
}
?>
reszta kodu
<?php
if ($_POST['submit'] AND !$stop) {
if ($title=='') {
echo ('Tytul nie moze byc pusty. ');
$found_error=TRUE;
$stop='TRUE';
}
if ($body=='') {
echo ('Tresc nie moze byc pusta. ');
$found_error=TRUE;
$stop='TRUE';
}
if ($_POST['akcja']=='dodawanie' AND !$stop) {
$query=\"INSERT INTO artykuly VALUES (NULL, \".\"'\". $category_id .\"','\". $user_id .\"','\". $title .\"','\". $body .\"', NULL)\";
$result=$connection->query($query);
if (DB::isError($result)) {
die ('Nie mozna wykonac zapytania do bazy danych: '. DB::errorMessage($result));
}
echo ('Pomyslnie dodano artykul. ');
$stop='TRUE';
}
}
if ($_POST['akcja']=='edycja' AND !$stop) {
$query=\"UPDATE artykuly SET id_kategorii ='\". $category_id .\"', `tytul`='\". $title .\"', `tresc`='\". $body .\"' WHERE id_artykulu='\". $post_id .\"' AND `uzytkownik_id`='\". $user_id .\"'\";
$result=$connection->query($query);
if (DB::isError($result)) {
die ('Nie mozna wykonac zapytania do bazy danych: '. DB::errorMessage($result));
}
echo ('Rekord pomyslnie zaktualizowany. ');
$stop='TRUE';
}
if (!$stop) {
$result_row=array('tytul'=>NULL
, 'tresc'=>NULL
); $posts[]=$result_row;
$query='SELECT id_kategorii, kategoria FROM kategorie';
$smarty->assign('kategorie', $connection->getAssoc($query));
$smarty->assign('artykuly', $posts);
$smarty->assign('akcja', 'dodawanie');
$smarty->display('post_form.tpl');
}
if ($found_error) {
$result_row=array('tytul'=>\"$title\", 'tresc'=>\"$body\", 'id_artykulu'=>\"$posts_id\"); $posts[]=$result_row;
$smarty->assign('artykuly', $posts);
$smarty->assign('artykuly', $posts);
$smarty->display('post_form.tpl');
}
$smarty->display('footer.tpl');
?>
Czekam na Wasze pomysły (IMG:
http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Ten post edytował apup 11.07.2009, 11:48:51