Nie jestem autorem poniższego skryptu, "raczkuję" w używaniu języka php. W związku z tym proszę o pomoc osoby, które mogą i zechcą jej udzielić.
Skrypt działa poprawnie jeśli chodzi o dodawanie nowych rekordów oraz ich usuwanie. Problem dotyczy edycji.
index.php<?
if(isset($_POST['pass'])) //Haslo przechowujemy w sesjach {
if($_POST['pass']=='1234') //Wpisz haslo w miejsce "1234"
{
$_SESSION['admin']='ok';
}
}
if((!isset($_SESSION['admin']) || $_SESSION['admin']!='ok') && $_GET['admin']!='wyloguj') {
echo '<form method="POST" action="index.php?main=admin"> <p align="center">
Niestety nie jesteś zalogowany.<br> Proszę podać hasło:<br>
<input type="password" name="pass" size="20"><br>
<input type="submit" value="OK"></p>
</form>';
}
if(isset($_GET['admin']) && $_GET['admin']=='wyloguj') {
$_SESSION['admin']='';
echo 'Nastapiło wylogowanie!<br />Przejdź do <a href="/index.php">Strony Głównej<br /> Przejdź do <a href="/news/">News</a></a>'; }
if($_SESSION['admin']=='ok')
{
or
die('Nieudane polaczenie z baza danych...'); or
die('Nie udalo sie wybrac bazy danych...');
echo '<center><strong>NEWS′Y:</strong></center><br /><br />'; $link=mysql_query('SELECT * FROM news ORDER BY id desc'); {
echo '<strong>'.$wiersz['tytul'].'</strong>'; echo '<a href="index.php?newsy=edytuj&id='.$wiersz['id'].'"><span style="color:green">edytuj</span></a>'; echo '<a href="index.php?newsy=usun&id='.$wiersz['id'].'"><span style="color:red">usuń</span></a>'; }
echo '<br /><center><strong>Dodaj newsa:</strong><br>'; echo '<form method="POST" action="index.php?newsy=dopisz"> Autor:<br />
<input type="text" name="autor" size="24"><br>
Tytuł:<br />
<input type="text" name="tytul" size="64"><br />
Treść:<br />
<textarea rows="5" name="tresc" cols="42"></textarea><br />
<input type="submit" value="Dodaj">
</form>';
if(isset($_GET['newsy']) && $_GET['newsy']=='edytuj' && isset($_GET['id'])) {
$id=$_GET['id'];
$link=mysql_query("SELECT * FROM news WHERE id='$id'");
echo '<strong>Edytuj newsa:</strong><br />'; echo '<form method="POST" action="index.php?newsy=edytuj&id='.$wiersz['id'].'"> Napisał:<br />
<input type="text" name="autor" size="24" value="'.$wiersz['autor'].'"><br />
Tytuł:<br />
<input type="text" name="tytul" size="64" value="'.$wiersz['tytul'].'"><br />
Treść:<br />
<textarea rows="5" name="tresc" cols="42">'.$wiersz['tresc'].'</textarea><br />
<input type="submit" value="Edit">
</form>';
}
elseif(isset($_GET['newsy']) && $_GET['newsy']=='dopisz') {
$autor=$_POST['autor'];
$tytul=$_POST['tytul'];
$tresc=$_POST['tresc'];
$data=date('d.m.Y, H:i');
mysql_query("INSERT INTO news VALUES(0,'$autor','$tytul','$tresc','$data')"); echo 'Pomyślnie dodałem newsa<br /><br /><strong>Autor:</strong> '.$autor.'<br /><strong>Nowy tytuł:</strong><br />'.$tytul.'<br /><strong>Treść:</strong><br />'.$tresc.'<br /><strong>Data: </strong>'.$data.'.<br /><br />';
}
elseif(isset($_GET['newsy']) && $_GET['newsy']=='wyedytuj' && isset($_GET['id'])) {
$autor=$_POST['autor'];
$tytul=$_POST['tytul'];
$tresc=$_POST['tresc'];
$id=$_GET['id'];
mysql_query("UPDATE news SET autor='$autor' tytul='$tytul' tresc='$tresc' WHERE id='$id'"); echo 'Pomyślnie edytowałem newsa! <br /><br /><strong>Autor:</strong><br />'.$autor.',<br /><strong>Nowy tytuł:</strong><br />'.$tytul.',<br /><strong>Nowa treść:</strong><br />'.$tresc.'<br /><br />';
}
elseif(isset($_GET['newsy']) && $_GET['newsy']=='usun' && isset($_GET['id'])) {
$id=$_GET['id'];
echo 'Pomyślnie usunąłem newsa numer '.$id.'!<br />';
}
?>
<a href="/news/news.php?admin=wyloguj"><span style="color:red"><strong>Wyloguj</strong></span></a></center><br /><br /><br />
<?
}
?>
W bazie danych stworzyłem tabelę z następującymi polami:
CREATE TABLE `news` (
`id` INT NOT NULL AUTO_INCREMENT ,
`autor` TINYTEXT NOT NULL ,
`tytul` TINYTEXT NOT NULL ,
`tresc` TEXT NOT NULL ,
`data` VARCHAR( 50 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
Za wyświetlanie News'ów odpowiada plik:
news.php<?
or
die('Nieudane polaczenie z baza danych...'); or
die('Nie udalo sie wybrac bazy danych...'); $link=mysql_query("SELECT * FROM news ORDER BY id desc LIMIT 4"); {
echo '</strong> napisał:'; if($_SESSION['admin']=='ok')
{
echo '<a href="/news/index.php?newsy=edytuj&id='.$wiersz['id'].'"><span style="color:green">edytuj</span></a>'; echo '<a href="/news/index.php?newsy=usun&id='.$wiersz['id'].'"><span style="color:red">usuń</span></a>'; echo '<a href="/news/index.php?admin=wyloguj"><span style="color:red"><strong>Wyloguj Admin</strong></span></a>'; }
}
?>
Tak jak wspomniałem, dodawanie i usuwanie nowych rekordów przebiega prawidłowo (no może nie idealnie, bo po dodaniu newsa i odświeżeniu formularza/strony, dodaje się ponownie news w następnym rekordzie).
Jeśli chodzi o edycję to nie dzieje się nic, nie następują żadne zmiany w bazie.
Za pomoc z góry dziękuję.