Salut
Se poate adauga la script-ul tau fara baza de date o calasa de paginare ?
Multumesc.
Paginare la Script comentarii 3
-
- Mesaje:61
Paginare la Script comentarii 3
MarPlo
Mesaje:4343
Salut
Se poate asa:
1. Copie fisierul "class.pagination.php" cu clasa de paginare de la adresa Clasa Paginare in acelasi loc unde e "coment.php".
2. Inlocuieste continutul din "coment.php" cu acest cod:
Se poate asa:
1. Copie fisierul "class.pagination.php" cu clasa de paginare de la adresa Clasa Paginare in acelasi loc unde e "coment.php".
2. Inlocuieste continutul din "coment.php" cu acest cod:
Cod: Selectaţi tot
<?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('/','\\',':','*','|',"'",'"','@','?','='), '', preg_replace('/pg=[0-9]*/', '', $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 = '<p class="num_e"><span class="clasn"> ● '. $name. "</span>". '(<i>'. $data. "</i>)</p>";
// Daca adresa de e-mail e primita si este diferita de '@ptional'
if (isset($_POST['email']) && $_POST['email']!="@ptional") {
$datem = '<span class="clasem"> e-mail : '. strip_tags($_POST['email']). "</span>";
}
else { $datem = ""; }
$datec = '<div class="bloc_com">'. $coment. "</div><br />". PHP_EOL;
$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(!file_put_contents($fisier, $ad, FILE_APPEND | LOCK_EX)) 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 = str_ireplace(PHP_EOL, '', file_get_contents($fisier));
preg_match_all('/\<p class="num_e"\>(.*?)\<\/div\>\<br \/\>/i', $coment, $cm);
include('class.pagination.php');
$objPg = new Pagination();
$coment = $objPg->getArrRows($cm[0]);
}
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 .'<hr />'; // Afiseaza comentariile (continutul variabilei $coment)
if(isset($objPg)) echo $objPg->getLinks(); // linkuri paginare
?>
<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<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: <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>
dim
Mesaje:61
Multumesc pt ajutor
dar poti sa imi explicit si mie urmatoarea line pe care nu o inteleg??
daca ii elimin class nu imi mai afiseaza nimic
multumesc inca o data pt raspunsurile date
dar poti sa imi explicit si mie urmatoarea line pe care nu o inteleg??
Cod: Selectaţi tot
if(file_exists($fisier)) {
$coment = str_ireplace(PHP_EOL, '', file_get_contents($fisier));
preg_match_all('/\<p class="num_e"\>(.*?)\<\/div\>\<br \/\>/i', $coment, $cm);
multumesc inca o data pt raspunsurile date
MarPlo
Mesaje:4343
Daca fisierul din $fisier exista, functia str_ireplace() sterge caracterele de randuri noi (PHP_EOL inlocuit cu nimic '') in continutul preluat cu file_get_contents(); ca sa fie tot continutul intr-o singura linie (sa nu incurce expresia regulata din : preg_match_all() ).
Functia preg_match_all() e folosita sa preia ce e intre tagurile: "<p class="num_e">" si primul "</div><br />" (notatia exact asa cum e la adaugarea comentariilor in $fisier). Asta ca sa adauge comentariile intr-un array ca sa poata fi paginate cu clasa Pagination.
- Daca mai sunt ate coduri /functii care nu stii ce fac, gasesti in manualul php (php.net) explicatii si exemple.
Functia preg_match_all() e folosita sa preia ce e intre tagurile: "<p class="num_e">" si primul "</div><br />" (notatia exact asa cum e la adaugarea comentariilor in $fisier). Asta ca sa adauge comentariile intr-un array ca sa poata fi paginate cu clasa Pagination.
- Daca mai sunt ate coduri /functii care nu stii ce fac, gasesti in manualul php (php.net) explicatii si exemple.