Tu byłem gościem

Wygodna obsługa bazy MySQL w języku PHP pozwala łatwo dodawać atrakcyjne funkcje do witryn internetowych. W artykule pokażemy, jak przygotować księgę gości, w której odwiedzający stronę internauci mogą wpisywać komentarze.

Wygodna obsługa bazy MySQL w języku PHP pozwala łatwo dodawać atrakcyjne funkcje do witryn internetowych. W artykule pokażemy, jak przygotować księgę gości, w której odwiedzający stronę internauci mogą wpisywać komentarze.

Do zbudowania księgi potrzebujemy dwóch skryptów PHP. Główny skrypt, ksiegagosci.php, pobiera wpisy z bazy i wyświetla je, natomiast drugi - dodajwpis.php, uruchamiany po wypełnieniu formularza, wpisuje zawartość poszczególnych pól do bazy danych. Sam formularz (zwykła strona HTML) umieścimy w pliku dodaj.php.

Wpisy będą przechowywane w bazie danych MySQL o nazwie ksiegagosci. Baza ta zawierać będzie jedną tabelę również o nazwie ksiegagosci, o następującej strukturze:

id INT

pseudo VARCHAR(20)

email VARCHAR(20)

adres VARCHAR(40)

tytul VARCHAR(50)

tresc TEXT

data DATETIME

Nasz projekt uruchomimy na platformie AMP (Apache/MySQL/PHP), zbudowanej z najnowszych wersji tych aplikacji, które zamieściliśmy na naszych płytach CD - Apache 2.0.53, PHP 5.03, MySQL 4.1.10a.

Jednym ze sposobów utworzenia bazy przechowującej wpisy jest uruchomienie programu MySQL Command Line Client i wpisanie w wierszu zgłoszenia MySQL:

mysql> create database ksiegagosci;

mysql> use ksiegagosci

mysql> create table ksiegagosci (id int

pseudo varchar(20), email varchar(20)

adres varchar(40), tytul varchar(50)

tresc text, data datetime);

Można to zrobić za pomocą konta administratora root z hasłem podanym podczas instalacji MySQL lub użyć gotowego skryptu makebaza.txt. Przykładowe polecenie korzystające z konta user z hasłem pass wygląda następująco:

mysql -u user -ppass < makebaza.txt

Mamy gotową bazę i możemy przygotować formularz, czyli plik dodaj.php. Oto jego kod:

...

<form action=dodajwpis.php method=post>

<table border=0>

<tr>

<td><p>Wprowadź swój pseudonim:</p></td>

<td><input type=text name=pseudo

maxlength=20></td>

</tr>

<tr>

<td><p>Wprowadź swój adres e-mail:</p>

</td><td><input type=text name=email

maxlength=20></td>

</tr>

<tr>

<td><p>Wprowadź adres swojej strony

internetowej:</p></td>

<td><input type=text name=adres

maxlength=40></td>

</tr>

<tr>

<td><p>Wprowadź nagłówek wpisu:</p>

</td><td><input type=text name=tytul

maxlength=50></td>

</tr>

</table>

<p>Wprowadź treść wpisu:</p>

<textarea name=tresc cols=50 rows=10>

</textarea><br><br>

<input type=submit value=Dodaj>

</form>

...

Najważniejszy fragment powyższego listingu to, oczywiście, deklaracja formularza (<form action=dodajwpis.php method=post>), w której wskazujemy skrypt odpowiedzialny za dodanie wpisów do bazy danych. Warto też zwrócić uwagę na atrybut maxlength elementów typu input (pól tekstowych). Definiuje on maksymalną liczbę znaków, które użytkownik może wprowadzić w dane pole tekstowe. Podane wartości są identyczne z rozmiarami pól w bazie danych. Mimo że element textarea nie oferuje parametru maxlength, to odpowiednie ograniczenie długości treści wpisu do księgi utworzymy w kolejnym skrypcie - dodajwpis.php, który dodaje wpis do bazy danych:

...

<body>

...

<?

$pseudo = $_POST["pseudo"];

$email = $_POST["email"];

$adres = $_POST["adres"];

$tytul = $_POST["tytul"];

$tresc = $_POST["tresc"];

$data = $_POST["data"];

if (($pseudo<>"")&&($tytul<>"")&&($tresc<>""))

{

$polaczenie=

mysql_connect("localhost","user","pass");

mysql_select_db("ksiegagosci",$polaczenie);

$rezultat=

mysql_query("select max(id) as

najwiekszy from ksiegagosci",$polaczenie);

$tablica=mysql_fetch_array($rezultat);

$liczba=$tablica["najwiekszy"]+1;

$data=strftime("%Y-%m-%d %H:%M:%S");

$tresc=substr($tresc,0,1000);

$zapytanie="INSERT INTO ksiegagosci

('id','pseudo','email','adres','tytul'

'tresc','data') VALUES ('".$liczba."'

'".$pseudo."','".$email."','".$adres."'

'".$tytul."','".$tresc."','".$data."');";

mysql_query($zapytanie,$polaczenie);

echo "<p><h3>Dodano wpis!</h3></p>";

mysql_close($polaczenie);

}

?>

<p><a href=

"ksiegagosci.php">Powrót</a></p>

</body>

...

Pierwsza instrukcja warunkowa if, ma stwierdzić, czy użytkownik nie próbuje wprowadzić pustego wpisu (sprawdzane są najważniejsze pola). Następnie skrypt łączy się z bazą danych, wyznacza kolejną wartość pola id, generuje wartość dla pola data i ogranicza zawartość pola tresc do 1000 znaków za pomocą funkcji substr($łańcuch, $od_ktorego, $ileznakow), która pobiera $ileznakow znaków z łańcucha $łańcuch, poczynając od znaku o indeksie $od_ktorego. Tak przygotowane dane są następnie wstawiane do bazy MySQL instrukcją mysql_query. Ostatnim, choć mającym kluczowe znaczenie skryptem jest ksiegagosci.php:


Zobacz również