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 tip de <input> creaza o paleta de culori pentru selectare culoare?
type="text" type="color" type="date"
<input type="color" name="get_color" />
Care metoda CSS roteste elementul HTML la un anumit numar de grade?
scale() translate() rotate()
#some_id:hover {
  transform: rotate(60deg);
  -ms-transform: rotate(60deg);    /* IE 9 */
  -moz-transform: rotate(60deg);   /* Firefox */
}
Click pe functia care returneaza numarul cel mai mare.
pow() min() max()
var maxn = Math.max(8, 4, 88, 56);
alert(maxn);      // 88
Ce functie previne ca un fisier sa fie inclus mai mult de o data intr-o pagina?
include() include_once() require()
include_once("un_fisier.php");
Care este traducerea corecta pentru: "Ahead of time"?
Peste timp La timp Inainte de vreme
Most people arrived ahead of time.
- Cei mai multi oameni au sosit inainte de vreme (prea devreme).
Indicati traducerea corecta a cuvantului "buenísimo"
mai bun mai putin bun extrem de bun
Este fruto es buenísimo.
- Acest fruct este extrem /nemaipomenit de bun.
Script de comentarii 2

Last accessed pages

  1. Lumea Lipsiăta de Vinovăţie (60)
  2. Capitole de teorie din Curs de Miracole (694)
  3. Functii echivalente PHP is_ pentru testare tip date (172)
  4. Cursuri Limba Italiana (6849)
  5. Comparative neregulate (1602)

Popular pages this month

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