Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi

PHP in komentarji

Delite vsebino na Facebooku
Delite vsebino na Twitterju
  V tej lekciji bo predstavljeno, kako s pomočjo PHP-ja na spletno stran dodate možnost dodajanja komentarjev, ki se zapisujejo v datoteko na strežniku.
 
 
1
 
 
Najprej s programom Dreamweaver odpremo novo datoteko in jo poimenujmo index.php.
 
 
2
 
 
Dodamo novo polje Textarea in ga poimenujemo polje_komentar.

S pomočjo tega polja bomo kasneje objavljali komentarje.
 
 
3
 
 
Če se odpre pogovorno okno z vprašanjem Add form tag?, potrdimo z gumbom Yes.

S tem korakom se v našo kodo avtomatsko doda značka <form>, ki omogoča, da se vpisani podatki prenesejo naprej na strežnik.
 
 
4
 
 
Na stran dodamo še gumb, ob pritisku katerega se bo naš komentar poslal na strežnik.
 
 
 
 
 
5
 
 
Trenutni rezultat bi morala biti spletna stran, kot  je prikazana na sliki.

V naslednjem koraku bomo sedaj dodali kodo, ki bo upravljala s komentarji.

Da pridemo v pogled s kodo, kliknemo zavihek Code.
 
 
6
 
 
Sedaj pod značko </form> prilepimo spodnjo kodo:

<table border="1">
<tr>
<td width="161" bgcolor="#CCCCCC">Komentarji</td>
</tr>
<?php
$ime_datoteke = "baza.txt";
//vpis podatkov
if (isset($_POST['polje_komentar'])) {
  //shrani vrednost
  $datoteka = fopen($ime_datoteke, 'a') or die("Ne morem odpreti datoteke.");
  $komentar = $_POST['polje_komentar']." ";
  fwrite($datoteka, $komentar);
  fclose($datoteka);
}

//branje podatkov
if (is_file($ime_datoteke)) {
  $datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
  while (!feof($datoteka)) {
       $vrstica = fgets($datoteka, 4096);
       if (strlen($vrstica)>0) {
            echo "<tr><td>";
            echo htmlspecialchars($vrstica,  ENT_QUOTES, 'UTF-8');
          echo "</td></tr>";
       }
  }
  fclose($datoteka);
}
?>
</table>
 
 
7
 
 
Seveda se je treba vprašati, kaj omenjena koda sploh počne.

V prvem delu v datoteko vpišemo prejete podatke.
$ime_datoteke = "baza.txt";
Najprej v kodi nastavimo ime datoteke, v katero se bodo vpisovali komentarji. Jaz sem izbraz za ime datoteke baza.txt.

if (isset($_POST['polje_komentar'])) {
S to vrstico preverimo, ali je na strežnik bila poslana vsebina polja za komentarje. V kolikor podatki niso bili poslani, se zaradi uporabi if stavka koda ne izvede.

$datoteka = fopen($ime_datoteke, 'a') or die("Ne morem odpreti datoteke.");
S funkcijo fopen najprej odpremo datoteko. Pri tem smo dodali dodaten parameter 'a', ki pove, da naj se obstoječi podatki v datoteki ohranijo.

$komentar = $_POST['polje_komentar']." ";
V spremenjljivko $komentar shrani vrednost, ki je bila poslana na strežnik.

fwrite($datoteka, $komentar);
S funkcijo fwrite vpišem vrednost spremenljivke $komentar v datoteko.

fclose($datoteka);
Na koncu datoteko še zapremo z uporabo funkcije fclose.



 
 
8
 
 
V drugem delu PHP kode iz datotek preberem obstoječe komentarje in jih izpišemo.

if (is_file($ime_datoteke)) {
Najprej s funkcijo is_file preverimo, ali datoteka že obstaja.

$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
Sedaj s funkcijo fopen zopet odpremo datoteko. Tokrat smo uporabili parameter 'r', kar pomeni, da jo bomo uporabili samo za branje. Če se datoteke ne da odpreti, dobimo izpisano sporočilo o napaki.


while (!feof($datoteka)) {

       $vrstica = fgets($datoteka, 4096);
       if (strlen($vrstica)>0) {
          echo "<tr><td>";
          echo htmlspecialchars($vrstica,  ENT_QUOTES, 'UTF-8');
          echo "</td></tr>";
       }
}
Sedaj uporabimo zanko while, v kateri iz datoteke beremo podatke v kosih velikosti 4096 s funkcijo fgets. Podatke beremo, dokler ni izpolnjen pogoj eof, kar pomeni End of file oz. konec datoteke.

S funkcijo strlen preverimo dolžino prebrane vrstice z namenom, da praznih vrstic ne bomo izpisovali.

Za izpis podatkov uporabimo funkcijo echo. Pri tem smo iz varnostnih razlogov uporabili še dodatno funkcijo htmlspecialchars, ki znake, kot so > in < zamenja s tekstovno obliko, s čimer se izognemo, da bi nekdo lahko kot komentar objavljal HTML kodo.

Uporabili smo tudi izpis značk <tr> in <td>, ki se uporabljata pri izpisu tabel in sta uporabljeni samo zaradi lepše oblike izpisa.

fclose($datoteka);
Na koncu datoteko zopet zapremo.
 
 
9
 
 
Sedaj lahko skripto prenesete na spletni strežniku in jo preizkusite, seveda pa jo lahko pred tem tudi oblikovno polepšate.

Celotno kodo iz lekcije pa si lahko prenesete s klikom na
Prenos kode

 
 
Komentiraj
 
 
 
 
 
13.9.2009, 7:46
Super lekcija!
 
 
 
 
13.9.2009, 8:31
Thnx
5
 
 
 
 
13.9.2009, 8:53
podtalje, noro...
ampak, no, meni se zadnje dni dogajajo prav čudne stvari v zvezi z PHP komentarji...
 
 
 
 
13.9.2009, 11:16
Erco, !!!

podtalje, super ja ampak shranjevanje v datoteko MySQL rula
 
 
 
 
13.9.2009, 11:33
Tudi pisanje v datoteko je včasih uporabno.

Sam to npr. uporabljam, ko pri izvrševanju SQL ukazov pride do napake in nato v tem primeru SQL stavek vpišem v datoteko z napakami.
 
 
 
 
13.9.2009, 15:07
Zanimivo, toda izvorna koda mi nekaj ne dela. Ko vpišem komentar mi doda zraven komentarja črko n (npr. komentar je hahaha, sporočilo je hahahan) in vsakič, ko napišem nov komentar se mi stari zbriše in se novi zapiše na mestu prejšnjega.
Je pa res da uporabljam 110mb.com, ki je bolj...
 
 
 
 
13.9.2009, 15:26
V lekciji je napačen del kode:

$komentar = $_POST['polje_komentar']." ";


Pravilno:

$komentar = $_POST['polje_komentar']."\n";


Tale \n pa pomeni novo vrstico. Erco, namesto \n napiši \r. Linux sistemi, na katerem je tvoja stran, namreč uporabljajo le \r za novo vrstico.
 
 
 
 
13.9.2009, 15:36
Mogoče kdo ve, kako bi naredil, da se ne bi videlo tabele?
 
 
 
 
13.9.2009, 15:38
Osnove htmlja:

<table border="0">
 
 
 
 
13.9.2009, 21:27
Zanimivo, toda izvorna koda mi nekaj ne dela. Ko vpišem komentar mi doda zraven komentarja črko n (npr. komentar je hahaha, sporočilo je hahahan) in vsakič, ko napišem nov komentar se mi stari zbriše in se novi zapiše na mestu prejšnjega.
Je pa res da uporabljam 110mb.com, ki je bolj...


Sem ravnokar preveril kodo na 110mb.com in pri meni deluje OK.
http://podtalje.110mb.com/
 
 
 
 
14.9.2009, 16:33
Zakaj meni ne dela: http://igrce.co.cc/
napiše mi: Warning: fopen(baza.txt) [function.fopen]: failed to open stream: Permission denied in /home/a7907128/public_html/index.php on line 28


spremenil: aljo23 (14.9.2009 ob 16.34.51)
 
 
 
 
14.9.2009, 16:38
Zakaj meni ne dela: http://igrce.co.cc/
napiše mi: Warning: fopen(baza.txt) [function.fopen]: failed to open stream: Permission denied in /home/a7907128/public_html/index.php on line 28



Si naredil datoteko baza.tct? Mora biti baza.txt. Samo tako ime velja in nič drugega...


@podtalje, potem sem ga pa jaz izgleda nekaj "vštimal"


spremenil: Erco (14.9.2009 ob 16.39.23)
 
 
 
 
14.9.2009, 16:48
Sem naredil datoteko. Ne vem kaj bi lahko bilo narobe
 
 
 
 
14.9.2009, 17:39
Permission denied. Tvoje gostovanje ne podpira operiranje z datotekami
 
 
 
 
14.9.2009, 19:26
Vzrok za napako je, da hoče skripta pisati v datoteko, kot zgleda pa pravice v mapi to onemogočajo.

Kar sem pogledal, so samo privzete pravice nastavljene tako.

Pravice lahko spremeniš kar s FTP klientom, lahko pa tudi uporabiš vmesnik File Manager, ki ga ponuja to gostovanje in tam izbereš Chmod in nastaviš pravice.
 
 
 
 
21.9.2009, 16:03
LP,

zanima me, če bi lahko kako omejil število komentarjev - na podlagi te lekcije izdelujem majhen shoutbox in bi bilo malo hecno če bi npr. bilo 265 komentarjev čez celo stran .
Zato me zanima, kako bi npr. lahko avtomatično pobrisal komentarje iz datoteke, če se jih recimo nabere 10?


Če se da,

Hvala, Erco!


spremenil: Erco (21.9.2009 ob 16.32.10)
 
 
 
 
21.9.2009, 17:43
Em ... Spodnja koda ti kar izpiše vse komentarje. Najbolje, da namesto izpisa koda vstavi komentarje v Array (množico) in potem pač s for zanko greš od dolžine arraya - 20 do dolžine arraya in izpišeš


while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo "<tr><td>";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "</td></tr>";
}
}
 
 
 
 
22.9.2009, 14:17
Em ... Spodnja koda ti kar izpiše vse komentarje. Najbolje, da namesto izpisa koda vstavi komentarje v Array (množico) in potem pač s for zanko greš od dolžine arraya - 20 do dolžine arraya in izpišeš

while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)&gt;0) {
echo "&lt;tr&gt;&lt;td&gt;";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "&lt;/td&gt;&lt;/tr&gt;";
}
}



Hvala, ko se bom odločil za kaj več kot beta verzijo z veseljem uporabim!
 
 
 
 
25.9.2009, 19:34
<?
mysql_connect('***', '***', '***') OR die('Ne morem se povezati na server!');
mysql_select_db('janpac_forum') OR die('Ne morem izbrati baze!');
$uId = $_COOKIE['phpbb3_1u7t4_sid'];

if (!isset($_COOKIE['phpbb3_1u7t4_sid']))
{
echo "";
} else
{

$row = mysql_fetch_assoc(mysql_query("SELECT * FROM phpbb_sessions WHERE session_id='$uId'"));

if ($row['session_user_id']==1)
{
echo '';

} else {
$query = mysql_query("SELECT username FROM phpbb_users WHERE user_id='" . $row['session_user_id'] . "'");
$uporabnik = mysql_result($query, 0);
echo '<form id="form1" name="form1" method="post" action="">
<label>polje_komentar
<textarea name="polje_komentar" id="polje_komentar" cols="45" rows="5"></textarea>
</label>
<p>
<label>Dodaj komentar
<input type="submit" name="komentar" id="komentar" value="Submit" />
</label>
</p>';
}
}
?>

<table border="0">
<tr>
</tr>
<?php
$ime_datoteke = "baza.txt";
//vpis podatkov
if (isset($_POST['polje_komentar'])) {
//shrani vrednost
$datoteka = fopen($ime_datoteke, 'a') or die("Ne morem odpreti datoteke.");
$komentar = $_POST['polje_komentar']."\n";
fwrite($datoteka . '<<b>' . $uporabnik . '</b>>'. $komentar);
fclose($datoteka);
}

//branje podatkov
if (is_file($ime_datoteke)) {
$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo "<tr><td>";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "</td></tr>";
}
}
fclose($datoteka);
}
?>



Žal mi nekaj tale koda ne deluje. Malo sem kombiniral to iz lekcije, a očitno vpisovanje v datoteko oz. branje ne deluje. Lahko kdo pomaga?
 
 
 
 
28.9.2009, 2:43
Daj poskusi najprej dopisati pri echo '' ukazih, da bo tam kaj izpisal, da vidimo, kje se ustavi.
Napiši npr. echo "1/";

Če pa že ugibam, pa bi rekel, da je problem v vrstici
if (!isset($_COOKIE['phpbb3_1u7t4_sid']))

Tu se išče cookie phpbb3_1u7t4_sid in če ga ni, ne bo nič izpisal.
Daj preveri, če res imaš ta cookie.
 
 
 
 
2.11.2009, 20:01
Erco:
Zakaj meni ne dela: http://igrce.co.cc/
napiše mi: Warning: fopen(baza.txt) [function.fopen]: failed to open stream: Permission denied in /home/a7907128/public_html/index.php on line 28

Si naredil datoteko baza.tct? Mora biti baza.txt. Samo tako ime velja in nič drugega...
@podtalje, potem sem ga pa jaz izgleda nekaj "vštimal"


Ni res da velja samo tako ime, naprimer če imaš localhost je lahko kakršno koli ime, za srver sem pa kodo priredil in sem dodal še ime in na koncu ispis:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm....
<html xmlns="http://www.w3.org/1999/xhtml"&g....
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style2 {
font-size: 18px;
color: #0000FF;
}
-->
</style>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
<p>
<label>Vpiši svoje ime:
<input name="polje_ime" type="text" id="polje_ime" size="15" />
</label>
</p>
<p>Vpiši svoj komentar:
<label>
<textarea name="polje_komentar" cols="45" rows="5" id="polje_komentar"></textarea>
</label>
</p>
<p>
<label>Dodaj komentar
<input type="submit" name="komentar" id="komentar" value="Submit" />
</label>
</p>
</form>
<table width="732" border="1" bordercolor="#FFFFFF" bgcolor="#FFFFFF">
<tr>
<td width="173"><table border="1">
<tr>
<td width="166" bgcolor="#CCCCCC">IME:</td>
</tr>
<?php
$ime_datoteke = "baza_ime.htm";
//vpis podatkov
if (isset($_POST['polje_ime'])) {
//shrani vrednost
$datoteka = fopen($ime_datoteke, 'a') or die("Ne morem odpreti datoteke.");
$ime = $_POST['polje_ime']."\n";
fwrite($datoteka, $ime);
fclose($datoteka);
}

//branje podatkov
if (is_file($ime_datoteke)) {
$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo "<tr><td>";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "</td></tr>";
}
}
fclose($datoteka);
}
?>
</table></td>
<td width="543"><table border="1">
<tr>
<td width="161" bgcolor="#CCCCCC">Komentarji</td>
</tr>
<?php
$ime_datoteke = "baza_komentar.htm";
//vpis podatkov
if (isset($_POST['polje_komentar'])) {
//shrani vrednost
$datoteka = fopen($ime_datoteke, 'a') or die("Ne morem odpreti datoteke.");
$komentar = $_POST['polje_komentar']."\n";
fwrite($datoteka, $komentar);
fclose($datoteka);
}

//branje podatkov
if (is_file($ime_datoteke)) {
$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo "<tr><td>";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "</td></tr>";
}
}
fclose($datoteka);
}
?>
</table></td>
</tr>
</table>
<p>&nbsp;</p>
<p>

<span class="style2">Hvala za Vaš komentar <?php echo $_POST["polje_ime"]; ?>!</span><br />
.

&nbsp;</p>
</body>
</html>
 
 
 
 
2.11.2009, 20:23
markol, seveda daš datoteki ime kakor želiš, če le to potem nakažeš tudi sistemu, ko pišeš PHP...
 
 
 
 
11.2.2010, 19:41
Zanima me če bi se dalo namesto okvirja pod vsak komentar dati vodoravno črto?
 
 
 
 
11.2.2010, 19:45
Valjda

Spremeni

if (is_file($ime_datoteke)) {
$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo "<tr><td>";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "</td></tr>";
}
}
fclose($datoteka);
}


v to:

if (is_file($ime_datoteke)) {
$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "<hr />";
}
}
fclose($datoteka);
}


Mogoče boš moral edino še zbrisati na začetku

<table border="1">
<tr>
<td width="161" bgcolor="#CCCCCC">Komentarji</td>
</tr>


in na koncu

</table>
 
 
 
 
11.2.2010, 19:54
Ali mora bti ime nujno polje_komentar ali ga lahko spremenim?
 
 
 
 
11.2.2010, 19:57
Lahko spremeniš. Ampak potem moraš spremeniti tudi v htmlju:

<input name="polje_komentar" ... />
 
 
 
 
11.2.2010, 20:13
Hvala kljuka, dela.
 
 
 
 
11.2.2010, 21:23
Ok, hvala kljuka

spremenil: DJ Umek (11.2.2010 ob 21.24.10)
 
 
 
 
29.5.2010, 21:03
Ma zame je pa to preteško

Do sedaj vse kar sem delu, mi je pravilno delovalo!
To pa ni šans ?!

Prvo sem spremenil po svoje namesto polje_komentar <polje_klepetalnica>

Potem sem točno tako naredu, kot je razloženo in zmeri se mi pokaže tako

Help!?

 
 
 
 
29.5.2010, 21:18
Pa se da ta komentar tudi izbrisat in mu določiti oceno(če je slaba, se komentar ne prikaže).
 
 
 
 
30.5.2010, 9:10

skrinjar :

Ma zame je pa to preteško
Do sedaj vse kar sem delu, mi je pravilno delovalo!
To pa ni šans ?!
Prvo sem spremenil po svoje namesto polje_komentar &lt;polje_klepetalnica&gt;
Potem sem točno tako naredu, kot je razloženo in zmeri se mi pokaže tako
Help!?
Lahko morda pokažeš kodo ker bo lažje pomagati. To nam pove samo, da nek del kode ni pravilno napisan in ga pokaže kot besedilo.
Si prepričan, da imaš na začetku PHP kode <?php in na koncu ?>?
 
 
 
 
30.5.2010, 13:36
Lejga, moraš preimenovati tudi komponento. Seveda se mora tisti textarea tako imenovat polje_klepetalnica. Drugače je pa vse brezveze.
Koda pa mora izgledat nekako takole:

<table border="1">
<tr>
<td width="161" bgcolor="#CCCCCC">Komentarji</td>
</tr>
<?php
$ime_datoteke = "baza.txt";
//vpis podatkov
if (isset($_POST['polje_klepetalnica'])) {
//shrani vrednost
$datoteka = fopen($ime_datoteke, 'a') or die("Ne morem odpreti datoteke.");
$komentar = $_POST['polje_klepetalnica']."\n";
fwrite($datoteka, $komentar);
fclose($datoteka);
}

//branje podatkov
if (is_file($ime_datoteke)) {
$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo "<tr><td>";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "</td></tr>";
}
}
fclose($datoteka);
}
?>
</table>


Preveri še to, da imaš datoteko baza.txt v isti mapu kot to kodo.
 
 
 
 
30.5.2010, 19:58
Problem je, ker datoteko odpiraš kar lokalno na svojem računalniku.

Datoteka vsebuje PHP kodo, kar pomeni, da moraš datoteko nujno naložiti preko spletnega strežnika s PHP podporo, ker drugače ne bo delovalo.

Povedano še poenostavljeno, do datoteke moraš dostopati preko http://... in ne kot c:\
 
 
 
 
31.5.2010, 15:22
Komentarje pa izbrišeš tako, da v ustvarjeni datoteki baza.txt zbrišeš kar želiš in jo zamenjaš.
 
 
 
 
4.8.2010, 16:29
Na strani kjer se nahajaš, bi imel okno, kjer bi napisal komentar, ko pa bi kliknil na gumb komentiraj, pa bi ta komentar pokazalo na drugi strani.(trenutno se ti pokaže na isti strani) Bi se to dalo?

spremenil: filius (4.8.2010 ob 16.29.19)
 
 
 
 
4.8.2010, 18:03
Kako misliš na drugi strani? V novem oknu ali samo na neki novi strani?
 
 
 
 
5.8.2010, 10:04
Ubistvu bi rad dodajal novice.

Samo me zanima če bi imel naprimer na zmaga.com/dodaj.php textarea in pa gumb, v textarea bi pač napisal novico, ko pa bi kliknil na gumb pa bi se ta novico pojavila na zmaga.com/naslovna.php
 
 
 
 
5.8.2010, 11:50
Ja lahko.
Kot vidiš ima koda dva dela, branje in pisanje podatkov. To pač razcepiš in daš vsak del v novo datoteko.

Ampak za take stvari, kot so komentarji, uporabi raje neko bazo podatkov in ne tekstovne datoteke.


spremenil: kljuka (5.8.2010 ob 11.51.22)
 
 
 
 
5.8.2010, 12:40

kljuka :

Ja lahko.
Kot vidiš ima koda dva dela, branje in pisanje podatkov. To pač razcepiš in daš vsak del v novo datoteko.
Ampak za take stvari, kot so komentarji, uporabi raje neko bazo podatkov in ne tekstovne datoteke.

Kako bi pa to naredil?
 
 
 
 
25.8.2011, 14:39
če se komu da popravit, tale ki je delal lekcijo je naredil napako v kodi, saj sem kodo prenesel, odprl v dreamweaver-ju shranil in dal na spletno stran in rezultat je takšen --> http://www2.arnes.si/~tfajf/index.php
 
 
 
 
25.8.2011, 15:01
Sem sam poizksuil in delal po lekciji in nimam problemov.

http://lukatrzan.si/proba.php

Koda:


<form id="form1" name="form1" method="post" action=""> <label>Besedilo:
<textarea name="polje_komentar" id="polje_komentar" cols="45" rows="5"></textarea>
</label>
<p> <label> <input name="komentar" id="komentar" value="Komentiraj"
type="submit"> </label> </p>
</form>
<table border="1" width="269">
<tbody>
<tr>
<td bgcolor="#cccccc" width="259">Komentarji:</td>
</tr>
<?php $ime_datoteke = "baza.txt";
//vpis podatkov
if (isset($_POST['polje_komentar'])) {
//shrani vrednost
$datoteka = fopen($ime_datoteke, 'a') or die("Ne morem odpreti datoteke.");
$komentar = $_POST['polje_komentar']."\n";
fwrite($datoteka, $komentar);
fclose($datoteka);
}

//branje podatkov
if (is_file($ime_datoteke)) {
$datoteka = fopen($ime_datoteke, 'r') or die("Ne morem odpreti datoteke.");
while (!feof($datoteka)) {
$vrstica = fgets($datoteka, 4096);
if (strlen($vrstica)>0) {
echo "<tr><td>";
echo htmlspecialchars($vrstica, ENT_QUOTES, 'UTF-8');
echo "</td></tr>";
}
}
fclose($datoteka);
}
?>
</tbody>
</table>
 
 
 
 
25.8.2011, 16:45
Tinefajfar:
če se komu da popravit, tale ki je delal lekcijo je naredil napako v kodi, saj sem kodo prenesel, odprl v dreamweaver-ju shranil in dal na spletno stran in rezultat je takšen --&gt; http://www2.arnes.si/~tfajf/index.php


Problem je, ker na strežniku, kamor si posnel kodo, PHP ne deluje in se posledično koda tudi ne izvede.

Povprašaj na Arnes, kako je podporo za PHP. Drugače boš moral najti nek drugi strežnik, ki podpira PHP.
 
 
 
 
26.6.2015, 17:57
Če napišem komentar in kliknem gumb, mi dela, če pa osvežim stran, pa mi zapiše prejšnji komentar. Kaj naj naredim? Drugače pa ostalo dela kot je treba

spremenjeno: filips (26.6.2015, 21:16)
 
 
 
 
26.6.2015, 21:17
Pa še nekaj. Vsaka nova vrstica, ki jo zapišem (enter) se mi prikaže kot nov komentar.
 
 
 
 
30.6.2015, 0:54
Glede osvežitve strani je tako, da ko daš osvežitev, se še enkrat pošljejo zadnji podatki in zato se še enkrat pošlje prejšnji komentar.

V splošnem se to rešuje tako, da takoj na vrhu php skripte, ko dobiš nov komentar, tega zapišeš, nato pa s pomočjo header() funkcije narediš preusmeritev na isto stran, pri čemer se sedaj komentar ne pošlje.
Tako v primeru osvežitve ne bo še enkrat poslal prejšnji komentar.

Bom jutri pripravil eno lekcijo na to temo, da bo bolj jasno.
 
 
 
 
29.8.2015, 18:54
Kako pa narediš, da v tabeli pokaže vse slike ki so v eni mapi?
 
 
 
 
30.8.2015, 0:03
Spodaj je en primer, kako s PHP-jem prebereš vse datoteke v določeni mapi:
http://stackoverflow.com/questions/30621....

Ko enkrat imaš datoteke, pa jih izpišeš v mapi.
 
 
 
 
30.8.2015, 20:42
Sem tam pogledal, pa me zanima kako določiš da ne prikaže datotek php.
 
 
 
 
30.8.2015, 20:49
If stavek. Ce se ime datoteke konca na .php jo ignoriraj.
 
 
 
 
31.8.2015, 9:01
Ne vem kako to narediš
 
 
 
 
31.8.2015, 17:30
foreach(scandir(".") as $el)
{
if(preg_match('/.+\.php/',$el))
continue;
else
echo $el.'<br/>';
}


spremenjeno: podtalje (31.8.2015, 21:53)
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!