Acesta este un script relativ simplu, prin care vizitatorii unui site pot adauga comentarii pe o pagina web (.php).
Poate fi folosit cu mai multe pagini din acelasi site.
Comentariile sunt pastrate in fisiere text, pe server, astfel nu este nevoie de lucru cu baze de date.
- Diferenta fata de celalat script similar (Script comentarii 2), pe care-l puteti gasi aici, este ca acesta afiseaza comentariile in ordine de sus in jos, adica ultimul comentariu adaugat este afisat jos, sub celelalte deja existente.
Scriptul e format din 3 fisiere principale (mai jos veti gasi codul pentru fiecare):


Mod de implementare

Creati un director denumit "coment" si aceste 3 fisiere (in acelasi loc unde aveti fisierul .php in care doriti sa includeti acest script) si adaugati in ele codul pentru fiecare, prezentat mai jos.
- Sau puteti descarca scriptul de la link-ul Download (de sus)
Dupa ce aveti cele trei fisiere pe server, adaugati in zona HEAD a paginii in care includeti scriptul urmatorul cod (pt. grafica CSS): In locul unde vreti sa fie afisate comentariile, adaugati urmatorul cod php: Ultimul pas, pentru ca fisierele text, in care sunt salvate comentariile, sa poata fi create pe server, dati directorului 'coment' permisiuni CHMOD 0777, de citire, scriere, executie (pe server, in clientul de FTP, click dreapta pe director, alegeti "Properties" apoi bifati toate casutele pt. permisiuni de citire, scriere, executie).

- Comentariile adaugate si afisate cu acest script vor apare in pagina similar cu cele din imaginea de mai jos.

Script comentarii


Cod - coment.php

<?php
// Script comentarii de la https://marplo.net/php-mysql
$dir = 'coment/';		// Directorul unde sunt stocate fisierele cu comentariile
$file0 = strip_tags(basename($_SERVER['REQUEST_URI']));		// Preia adresa /numele paginii curente
$file = str_replace(array('/','\\',':','*','|',"'",'"','@','?','='), '', $file0);	// Sterge caracterele speciale din adresa

// Defineste calea si numele fisierelor .txt de stocare a comentariilor
$fisier = $dir. $file. '.txt';			// Defineste cale spre fisierul care va contine comentariile

// Daca sun primite date din formular
if (isset($_POST['nume']) && isset($_POST['comentariu']) && isset($_POST['hideanti_spam']) && isset($_POST['anti_spam'])) {
  // Daca e corect codul anti-spamm
 if($_POST['hideanti_spam']==$_POST['anti_spam']) {
  // Creaza directorul din $dir, daca nu exista
  if (!is_dir("coment")) { mkdir("coment", 0777); }

  // Creaza fisierul pt. pastrarea comentariilor (daca acesta nu exista)
  if (!file_exists($fisier)) {
    touch($fisier);   // Creaza fisierul
    chmod($fisier, 0777);   // Atribue fisierului permisiuni totale
  }

  // Preia datele din form
  $name = strip_tags($_POST['nume']); 
  $data = date(" j-F-Y, g:i a ");
  $coment0 = strip_tags($_POST['comentariu']);    // Elimina tag-urile HTML din comentariu

  // 'wordwrap' scurteaza cuvintele la maxim 35 caractere
  // 'nl2br' adauga <br /> la linie noua
  $coment = '<p class="comm">'. nl2br(wordwrap($coment0, 35, " ", true)). '</p>';


  // Aranjeaza datele preluate din form
  $daten = "\r\n". '<p class="num_e"><span class="clasn"> &#9679; '. $name. "</span>\r\n". '(<i>'. $data. "</i>)</p>\r\n";
  
  // Daca adresa de e-mail e primita si este diferita de '@ptional'
  if (isset($_POST['email']) && $_POST['email']!="@ptional") {
    $datem = '<span class="clasem">&nbsp; &nbsp; &nbsp; &nbsp; e-mail : '. strip_tags($_POST['email']). "</span>\r\n";
  }
  else { $datem = ""; }

  $datec = '<div class="bloc_com">'. $coment. "</div><br /> \r\n"; 
  $ad = $daten. $datem. $datec; 
  if ($name == "") { $ad = ""; }	// Pt. siguranta in caz de refresh gol


  // Sterge datele din fisier, adauga comentariul nou si cel din fisierul de rezerva
  if($fha = fopen($fisier, "ab")) {
    $fa = fwrite($fha, $ad);
    fclose($fha);
  }
  else echo "</h4<Fisierul pt. adaugare comentarii nu a putut fi deschis</h4>";

  // Scriptul JS pt. fereastra Alert care apare dupa adaugarea datelor
  // Si face redirect la aceeasi pagina, pt. a evita re-adaugarea mesajului in caz de Refresh
  echo '<script type="text/javascript">
   window.alert("Mesajul a fost adaugat cu succes");
   window.location = "http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']. '";
  </script>';
  exit;
 }
 else { echo '<h4>Caractere anti-spamm incorecte</h4>'; }
}

// Preia intr-o variabila comenrariile ce vor fi afisate
if(file_exists($fisier)) { $coment = file_get_contents($fisier); }
else { $coment = '<span class="clasn"><i> - Nu exista nici un comentariu. Fii tu primul care adauga!</i></span>'; }

$anti_spam = substr(md5(time()), 3, 5);	// Se definesc caracterele antispam
?>

<!-- Incepe locul comentariilor -->
<div id="cm" align="left">
 <h2>Comentarii :</h2><hr />

<?php echo $coment;		// Afiseaza comentariile (continutul variabilei $coment) ?>
<hr />

<script type="text/javascript" src="check.js"></script> 
<div id="fcom" align="center">
 <h3>Adauga comentariu</h3>

 <form name="formc" onsubmit="return Validate()" method="post" action="<?php echo $file0; ?>">
 <!-- https://marplo.net -->
  <input type="hidden" name="hideanti_spam" value="<?php echo $anti_spam; ?>" />
  <label for="nume">Nume : </label>
  <input type="text" name="nume" id="nume" size="18" maxlength="40" /><br />
  <label for="email">E-mail : </label> 
  <input type="text" name="email" id="email" size="18" maxlength="40" value="@ptional" onclick="if(this.value=='@ptional')this.value='';" onblur="if(this.value.length&lt;2)this.value='@ptional';" /><br />
<label for="comentariu">Scrie comentariu (<i> Maxim 500 caractere </i>) : </label><br />
  <textarea name="comentariu" id="comentariu" cols="35" rows="6"></textarea>
  <br /><a href="https://marplo.net" style="font-size:8px; color:#dadafe;">cursuri jocuri anime</a><br />
  Adaugati urmatorul cod: &nbsp; <b><?php echo $anti_spam; ?></b><br />
  <label for="anti_spam"> Verificare </label> <input type="text" name="anti_spam" id="anti_spam" size="5" maxlength="6" /><br />
  <input type="submit" value="Trimite" id="submit" />
 </form>
</div>
</div>

Cod - check.js

function Validate() {
  var obj = document.forms.formc;
  if (obj.nume.value.length<2 || obj.nume.value.length>30) {
	alert('Numele trebue sa contina intre 2 si 30 caractere!');
	obj.nume.focus();
	return false;	
  }
  else if (obj.email.value.indexOf("@")==-1 || obj.email.value.length<7 || obj.email.value.length>40) {
	alert('Introducei o adresa de e-mail corecta, cu maxim 40 caractere');
	obj.email.focus();
	return false;
  }
  else if (obj.comentariu.value.length<5 || obj.comentariu.value.length>500) {
	alert('Comentariul trebue sa contina intre 5 si 500 caractere!');
	obj.comentariu.focus();
	return false;
  }
  else if(obj.hideanti_spam.value!=obj.anti_spam.value) {
	alert('Caractere anti-spamm incorecte!');
	obj.anti_spam.focus();
	return false;
  }

  return true;
}

Cod - style.css

#cm {
  margin:25px 155px 5px 180px;
  text-align:left;
}

#cm h2 {
  width:115px;
  height:19px;
  margin-top:1px;
  margin-bottom:-3px;
  padding-left:3px;
  font-family:Arial, sans-serif;
  font-size:17px;
  letter-spacing:1px;
  color:#ff2323;
  border-top:1px solid #aaaaaa;
}

#cm .num_e {
  margin-bottom:-2px;
  margin-top:2px;
  font-family:Arial, sans-serif;
  font-size:12px;
  text-align:left;
}

#cm .clasn {
  margin-bottom:-3px;
  padding-right:2px;
  font-family:Arial, sans-serif;
  font-size:14px;
  letter-spacing:1px;
  font-weight:bold;
  color:blue;
}

#cm .clasem {
  margin-bottom:1px;
  font-family:Arial, sans-serif;
  font-size:13px;
  color:green;
}

#cm .bloc_com {
  width:655px;
  background-color:#efeffe;
  margin-top:2px;
  margin-bottom:-15px;
  margin-left:45px;
  font-family:Arial, sans-serif;
  font-size:15px;
  padding:1px 2px;
  text-align:left;
}

#cm  .comm {
  width:650px;
  margin:1px auto;
  text-indent:22px;
  text-align:left;
}

/* Grafica form-ului pt. adaugare comentarii */

#cm h3 {
  margin-top:0px;
  margin-bottom:7px;
  font-family:Arial, sans-serif;
  font-size:17px;
  text-decoration:underline;
  letter-spacing:1px;
  text-align:center;
  color:#010101;
}

#cm input, textarea {
  border:1px solid #101010;
  font-family:Arial, sans-serif;
  font-size:15px;
  letter-spacing:1px;
  color:#111111;
  background:#ffe0ff;
}

#cm input:focus, textarea:focus {
  background:#fffedd;
}

#cm label {
  padding:1px 0px 1px 0px;
  font-family:Arial, sans-serif;
  font-size:15px;
  color:blue;
}

#cm #submit {
  margin-top:2px;
  margin-bottom:2px;
  padding:0px;
  font-family:Arial, sans-serif;
  font-size:14px;
  color:#111111;
}

#cm #submit:hover {
  margin-bottom:0px;
  background:#fffedd;
  border:2px double #333333;
  cursor:pointer;
}

Scriptul este gratuit, fara vreun suport supimentar, dar daca aveti intrebari sau probleme de instalare cu acest script, postati pe Forum-ul la sectiunea "PHP - MySQL".

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag HTML5 adauga o aplicatie externa (SWF, PDF) in pagina web?
<mark> <embed> <canvas>
<embed src="flash_game.swf" width="450" height="350" />
Ce pseudo-element adauga un anume stil la prima linie de text din element?
:first-letter :before :first-line
#id:first-line {
  font-weight: bold;
  color: blue;
}
Clic pe proprietatea obiectului window care preia sau seteaza adresa URL a paginii curente.
window.location window.self window.status
var url = window.location;
alert(url);
Indicati functia PHP care preia continutul unui fisier sau pagina si-l adauga intr-un sir.
fopen() file_put_contents() file_get_contents()
$homepage = file_get_contents("http://www.marplo.net/");
echo $homepage;
Care din urmatoarele perechi de numere sunt in ordine unul dupa altu?
seven - eight ten - six three - five
This fruit has seven or eight seeds.
- Acest fruct are sapte sau opt seminte.
Care din urmatoarele perechi de numere sunt in ordine unul dupa altu?
diez - seis siete - ocho tres - cinco
Esta fruta tiene siete u ocho semillas.
- Acest fruct are sapte sau opt seminte.
Script comentarii 3

Last accessed pages

  1. Proverbe, expresii si zicatori (9667)
  2. Curs CSS Online Tutoriale CSS3 (38672)
  3. Prepozitii - Exercitii si teste engleza incepatori (5435)
  4. Blog si Cugetari Personale (33114)
  5. Exercitii engleza - English Tests and exercises - Grammar (43426)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1355)
  2. Curs HTML gratuit Tutoriale HTML5 (942)
  3. Curs si Tutoriale JavaScript (868)
  4. Curs si Tutoriale Ajax (847)
  5. Curs CSS Online Tutoriale CSS3 (814)