|
In acest tutorial va voi arata cum sa creati o carte de oaspeti cu ajutorul caruia veti putea adauga comentarii pe site, pornind de la structura HTML a formularului pana la codul PHP. Pentru a parcurge acest tutorial trebuie sa ai cunostiinte de baza de html, lucrul cu fisiere si prelucrarea datelor din formulare.
Tot ceea ce trebuie sa faceti este sa creati un fisier add_comment.php pe care sa-l includeti pe paginile in care vreti sa apara formularul si comentariile:
Aici poti vedea un demo al formularului pe care il vom realiza.
Ce este cartea de oaspeti?
Cartea de oaspeti reprezinta o metoda de interactiune cu utilizatorii unei pagini web. Cu ajutorul unei carti de oaspeti, utilizatorii pot adauga comentariile si parerile lor cu privire la anumite articole, stiri, editoriale, etc. postate pe site.
Formularul HTML
Iata formularul HTML cu ajutorul caruia vom trimite datele spre procesare:
<form action="<? $PHP_SELF; ?>" method="post">
<input type="text" name="mesaj" value="<? echo $_POST['mesaj']; ?>" id="comentarii-nume"/><br />
<textarea name="mesaj2" cols="45" rows="5" id="comentarii-mesaj"><? echo $_POST['mesaj2']; ?></textarea><br />
<input type="submit" name="trimite_mesaj" value="Trimite" class="btn"/>
</form>
Formularul este unul simplu ce contine doua campuri (pentru nume si mesaj) si buton de submit.
Dupa cum poti observa, datele sunt transmise prin post catre $PHP_SELF, variabila globala ce semnifica fisierul curent (cel care este afisat in bara de navigare a browserului). Aceasta cale este folosita deoarece fisierul add_comment.php poate fi inclus in orice alt fisier php.
Fisierul add_comment.php
Pentru inceput trebuie sa ne asiguram ca formularul trimite comentariile pe pagina dorita cu ajutorul instructiunii basename($_SERVER['SCRIPT_FILENAME']). In acest mod, variabila $titlu_site va contine titlul paginii cu extensia ".php". De exemplu, daca includem "add_comment.php" in fisierul "pagina_mea.php", variabila $titlu_site va fi egala cu "pagina_mea.php".
<?php $titlu_site = basename($_SERVER['SCRIPT_FILENAME']);?>
In acest exemplu, comentariile vor fi stocate in fisiere ".txt" cu acelasi nume cu fisierele .php. De aceea, folosim functia str_replace() pentru a schimba extensia ".php" in ".txt".
<?php
$titlu_site = str_replace('_','',$titlu_site);
$titlu_site = str_replace('.php','.txt',$titlu_site);
?>
Rezultat: Comentariile vor fi stocate in: "paginamea.txt".
In continuare, formatam data si setam diferenta de fus orar pentru a afisa corect ora Romaniei. In acest sens folosim functia date() si 3 variabile: $data, $ora, $minute.
Prima variabila contine ziua (j), luna(M) si anul(Y). A doua variabila contine ora(H), iar cea de a treia minutele (i) si secundele(s).
<?php
$data = date('j M Y');
$ora = date('H')+7;
$minute =date('i:s');
?>
Apoi, cream directorul comentarii si deschidem cu functia fopen fisierul ce contine comentariile.
<?php
$fp = fopen("comentarii/".$titlu_site ." ", "a");
fclose($fp);
?>
Incepem procesarea datelor trimise de formular odata ce este apasat butonul de submit (trimite_mesaj). Daca unul din campurile nume sau mesaj nu este completat, afisam mesajul de eroare si oprim executia scriptului.
<?php
if (isset($_POST['trimite_mesaj'])) {
if($_POST['mesaj'] == "" && $_POST['mesaj2'] == ""){
echo "<div class='eroare'>Completeaza numele si mesajul</div>";
}
else if($_POST['mesaj'] == ""){
echo "<div class='eroare'>Completeaza numele</div>";
}
else if($_POST['mesaj2'] == ""){
echo "<div class='eroare'>Completeaza mesajul</div>";
}?>
Daca ambele campuri au fost completate afisam mesajul: "Comentariu adaugat cu succes" si continuam procesarea datelor, respectiv inlaturarea caracterelor html invalide si scrierea in fisierul .txt.
<?php else{
echo "<div class='succes'>Comentariu adaugat cu succes.</div>";
$mesaj = htmlentities($_POST['mesaj']);
$mesaj2 = htmlentities($_POST['mesaj2']);
$mesaj2 = str_replace(":D","<img src='comentarii/smiley/1.gif' alt='smiley'/>","$mesaj2");
$mesaj2 = str_replace(":P","<img src='comentarii/smiley/2.gif' alt='smiley'/>","$mesaj2");
$mesaj2 = str_replace(":))","<img src='comentarii/smiley/3.gif' alt='smiley'/>","$mesaj2");
$mesaj2 = str_replace(":)","<img src='comentarii/smiley/4.gif' alt='smiley'/>","$mesaj2");
$mesaj2 = str_replace("=))","<img src='comentarii/smiley/5.gif' alt='smiley'/>","$mesaj2");
$fp = fopen("comentarii/".$titlu_site ." ", "a");
fwrite($fp, "<div class='comentarii-titlu'>
<div class='comentarii-data'>$data, $ora:$minute</div>
<div class='comentarii-titlu2'><b>$mesaj</b></div>
</div>
<p class='comentarii-mesaj2'>$mesaj2</p>");
fclose($fp);
}?>
Iata cum poti include acest script in fisierele tale:
<?php include "add_comment.php"; ?>
si cum putem includem comentariile trimise:
<?php
include "comentarii/".$titlu_site ." ";
echo "<div class='copyright'>
<a href='http://mozzartut.isgreat.org' id='copyright'>© mozzartut 2010</a>
</div>";
?>
Pentru a downloada sursele complete, inclusiv fisierul css si imaginile cu smileys pe care le-am folosit pentru formatare, acceseaza linkul Download din partea de sus a paginii.
|