Curs Php-mysql


Acest script adauga comentarii postate de vizitatori 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.
Comentariile sunt adaugate in ordine de jos in sus, adica ultimul comentariu adaugat este afisat deasupra celorlalte.
Acest script e format din 3 fisiere principale (mai jos veti gasi codul pentru fiecare):


- Pachetul pe care-l puteti descarca de la link-ul Download (dreapta-sus) contine, pe langa fisierele acestui script, o alta arhiva "script_comentarii-mysql" cu o varianta ce foloseste pentru stocarea comentariilor o baza de date MySQL.

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
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 sopre 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)
  // Copie datele din fisierul de baza in unul de rezerva
  if (file_exists($fisier)) { $fc = fopen($fisier, "rb"); }
  else {
    touch($fisier);   // Creaza fisierul
    chmod($fisier, 0777);   // Atribue fisierului permisiuni totale
    $fc = fopen($fisier, "rb");
  }

  // Preia datele din fisier (le va adauga dupa comentaril tocmai trimis)
  $fcr = @fread($fc, filesize($fisier));
  fclose($fc);


  // 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
  $ad .= $fcr;		// Adauga comentariile mai vechi (preluate in $fcr) dupa cel nou primit

  // Adauga noul continut format in fisierul text si retine mesaj daca a putut fi adaugat sau nu
  $re = file_put_contents($fisier, $ad) ? 'Mesajul a fost adaugat cu succes' : 'Mesajul NU a putut fi adaugat';

  // 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("'.$re.'");
   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
Ce tag adauga imagine in pagina web?
<div> <img> <span>
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Care din aceste coduri CSS afiseaza textul inclinat?
font-style: italic; text-decoration: underline; font-weight: 500;
#id {
  font-style: italic;
}
Clic pe functia jQuery care ascunde animat un element HTML.
click() hide() show()
$(document).ready(function() {
  $(".a_class").click(function(){ $(this).hide("slow"); });
});
Clic pe functia definita corect in PHP.
fname function() {} function fname() {} function $fname() {};
function fname($a, $b) {
  echo $a * $b;
}
Indicati forma pentru Prezent Perfect Continuu a verbului "to walk" (a merge).
have walked have been walking be walking
I have been walking for 5 hours.
- Merg pe jos de 5 ore.
Indicati Trecutul Nedefinit pentru verbul "ser" (a fi) la forma Yo.
será sería fui
Yo fui entrenador.
- Am fost antrenor.
Script de comentarii 2

Last accessed pages

  1. Numerale, Numere in limba engleza - Numerals (50992)
  2. Creare formulare (8686)
  3. Poezii pentru copii, in engleza (38532)
  4. Contact page (1297)
  5. Creare link-uri (18695)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1245)
  2. Curs HTML gratuit Tutoriale HTML5 (957)
  3. Coduri pt culori (714)
  4. Creare si editare pagini HTML (566)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (520)
Chat
Discuta sau lasa un mesaj pt. ceilalti utilizatori
Full screenInchide