Comment system

Comment system

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Napisano: 22 Apr 2014 17:28

Pravim neki jednostavam sistem za komentarisanje u PHP-u za moj sajt i trenutno se sastoji iz dva fajla.


setup.php - služi da se odradi posao kreiranja baze i tablice (neki vid instalacije)
komentari.php - ovo je stranica sa komentarima


Arrow setup.php

<html>    <head>       <meta charset="utf-8">    </head> </html> <?php $konektor = mysqli_connect("localhost","root",""); if ($konektor) {    $upit1 = "CREATE DATABASE komentari";    if(mysqli_query($konektor,$upit1)) {       $upit2 = "CREATE TABLE podaci (Ime varchar(20), Komentar varchar(150))";       mysqli_select_db($konektor,"komentari");       echo "Baza <b>komentari</b> je uspešno kreirana.<br/>";       if (mysqli_query($konektor,$upit2)) {          echo "Sve je u redu, sada možete obrisati <b>setup.php</b> fajl.";       } else {          die("Desila se greška pri konektovanju sa bazom podataka " . mysqli_error($konektor));       }    } else {       die("Desila se greška pri konektovanju sa bazom podataka " . mysqli_error($konektor));    } } else {    die("Desila se greška pri konektovanju sa bazom podataka " . mysqli_error($konektor)); } ?>

Arrow komentari.php

<html> <head>    <meta charset="utf-8">    <link rel="stylesheet" type="text/css" href="style.css"> </head> </html> <?php    $konekcija = mysqli_connect("localhost","root","");    if($konekcija) {       mysqli_select_db($konekcija,"komentari");       $upit2 = "SELECT * FROM podaci";       $rezultat = mysqli_query($konekcija,$upit2);          while ($row = mysqli_fetch_array($rezultat)) {             echo "<b>" . $row['Ime'] . "</b>:<br>" . $row['Komentar'] . "<hr><br>";          }    } else {       die("Desila se greška pri konektovanju sa bazom: " . mysqli_error($konekcija));    }         if ($_POST) {        $ime = $_POST['userName'];       $komentar = $_POST['commentContainer'];       $kod = $_POST['code'];       $konekcija = mysqli_connect("localhost","root","");          $tacan_unos = $_POST['sakriven_ispis'];       if(isset($_POST['userName']) || isset($_POST['commentContainer']) || isset($_POST['code'])) {          $prolaz = true;          $napomena = '';          if (empty($ime)) {             $napomena .= "Morate popuniti sva polja!<br>";             $prolaz = false;             }             if (empty($komentar)) {                $napomena .= "Morate uneti komentar!<br>";                $prolaz = false;             }             if (empty($kod)) {                $napomena .= "Morate uneti kod kako biste potvrdili da niste robot!<br>";                $prolaz = false;             }             if ($kod != $tacan_unos) {                $napomena .= "Niste uneli ispravan kod, pokušajte opet!<br>";                $prolaz = false;             }       }    $konekcija = mysqli_connect("localhost","root","");    if ($konekcija) {       mysqli_select_db($konekcija, "komentari");       if ($prolaz == true) {       $upit = "INSERT INTO podaci(Ime, Komentar) VALUES(\"" . $ime . "\",\"" . $komentar . "\")";          if(mysqli_query($konekcija,$upit)){             if( $kod == $tacan_unos && $prolaz == true && empty($napomena)) {                echo "<div class='blok'><div class='label'><b>Komentar je uspešno poslat!</b></div></div>";             } else {                 echo "<div class='napomena'><div class='label'>" . $napomena . "</div></div>";              }          } else {             die("Desila se greška pri konektovanju sa bazom: " . mysqli_error($konekcija));          }       } else {          echo "<div class='napomena'><div class='label'>" . $napomena . "</div></div>";       }    } } /*    $konekcija = mysqli_connect("localhost","root","");    if($konekcija) {       mysqli_select_db($konekcija,"komentari");       $upit2 = "SELECT * FROM podaci";       $rezultat = mysqli_query($konekcija,$upit2);          while ($row = mysqli_fetch_array($rezultat)) {             echo "<b>" . $row['Ime'] . "</b>:<br>" . $row['Komentar'] . "<hr><br>";          }    } else {       die("Desila se greška pri konektovanju sa bazom: " . mysqli_error($konekcija));    } } */ ?> <html> <body>    <div class="blok2">       <b>Postavi komentar</b>    </div>    <div class="blok">       <div class="label">       <form method="POST" action="">          <table border="0">          <tr>             <td><b>Ime:</b></td>             <td><input type="text" name="userName"></td>          </tr>          <tr>             <td><b>Komentar:</b></td>             <td><textarea rows="5" cols="30" name="commentContainer"></textarea></td>          </tr>          <tr>             <td><?php $ispis = substr(uniqid ('', true), -7); echo "<b>Kod:</b> (<i>vaš kod je: " . $ispis ." </i>)"; ?></td>             <td><input type="text" name="code"> <!-- baza sa tacnim kodom -> --> <input type="hidden" name="sakriven_ispis" value="<?php echo $ispis; ?>" /></td>          </tr>          <tr>             <td><a href="pomoc.html#sigurnosniKod" target="_blank">Zašto je potreban kod?</a></td>             <td><a href="pomoc.html#neuspesnoKomentarisanje" target="_blank">Zašto komentar neće da se pošalje?</a></td>          </tr>          <tr>             <td><input type="submit" value="Pošalji"></td>             <td></td>          </tr>          </table>       </form>       </div>    </div> </body> </html>

E sad, postoji jedan problem. Svi komentari se izlistavaju na jednoj stranici, a ja želim da se stariji komentari nalaze na prethodnim stranicama, konkretno da se ne nalaze svi komentari na jednoj stranici da se ne bi nagomilali ali nemam ideju kako to da uradim. I da, još me zanima kako da dodam vreme kada je komentarisano???

Dopuna: 22 Apr 2014 17:57

Pfff, sad tek videh da se to što ja tražim zove paginacija Razz Probaću sam ovo da uradim pa vam javljam ako uspem.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

Ovo nece da radi na 99.99% hostinga (maltene nigde osim na localhostu) jer nemas privilegije kreiranja baze. Ili peglaj to, i to tako da koristi postojecu bazu a samo kreira tabelu (a usput proverava da li moze da se zakaci na bazu), ili zahebi. Nema trece.

Been there, done that.

I jos jedna, veoma bitna stvar: NEVER TRUST USER INPUT. U suprotnom, ode baza.



offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Rastafarii ::Ovo nece da radi na 99.99% hostinga (maltene nigde osim na localhostu) jer nemas privilegije kreiranja baze.

Znam, ovo je samo eksperimentisanje na lokalu Smile

Ko je trenutno na forumu
 

Ukupno su 967 korisnika na forumu :: 27 registrovanih, 4 sakrivenih i 936 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., bojank, celik, djboj, DPera, dzoni19, Georgius, Goran 0000, Hans Gajger, Kubovac, Marko Marković, MB120mm, Mercury, okopanja, ozzy, Panter, RED4G-304, Regrut Boskica, rodoljub, ruma, sabac015555m, Sir Budimir, User98, Vlada78, vrag81, wizzardone, Šraf