Curs Php-mysql


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 se foloseste in <table> pentru a crea celula de tip "header"?
<thead> <th> <td>
<table><tr>
  <th>Title 1</th>
  <th>Title 2</th>
</tr></table>
Ce proprietate CSS seteaza distanta dintre randuri?
line-height word-spacing margin
.some_class {
  line-height: 150%;
}
Care functie deschide o noua fereastra.
alert() confirm() open()
document.getElementById("id_button").onclick = function(){
  window.open("http://coursesweb.net/");
}
Indicati functia PHP care returneaza un array cu numele fisierelor si directoarelor dintr-un director.
mkdir() scandir() readdir()
$ar_dir = scandir("dir_name");
var_export($ar_dir);
Care din urmatoarele forme a verbului "sleep" (a dormi) se foloseste pentru viitor?
sleeping slept will sleep
He will sleep there.
- El va dormi acolo.
Care din urmatoarele forme a verbului "dormir" (a dormi) se foloseste pentru viitor?
dormido dormirá durmiendo
Él dormirá allí.
- El va dormi acolo.
Script comentarii 3

Last accessed pages

  1. Auto schimbare imagini (1536)
  2. Download carti electronice si programe pentru Limba Engleza (43677)
  3. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (270985)
  4. Cursuri limba engleza gratuite si lectii online (64636)
  5. Coduri pt culori (69574)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (699)
  2. Coduri pt culori (312)
  3. Exercitii engleza - English Tests and exercises - Grammar (306)
  4. Gramatica limbii engleze - Prezentare Generala (298)
  5. Cursuri limba engleza gratuite si lectii online (280)