ugrás a tartalomhoz

vendégkönyv

Batka1985 · 2010. Május. 2. (V), 16.58
Sziasztok! Az itt található oldallal van némi gondom: link
A vendégkönyvet szeretném az oldalba beilleszteni, amit előzőleg a netről szedtem le.
Problémám az, hogy a vendégkönyv index.php néven van mentve. Ha beleírok, értelem szerűen frissülne az oldal az új tartalommal. De ekkor az én saját oldalam index oldala töltődik be. Megpróbáltam átnevezni a vendégkönyvet index.php-ről guest.php-ra.
Megnéztem a php forrást, hogy hol kéne szintén kijavítani az "index"-et guestra, de amiket próbáltam nem jöttek össze. Végignéztem a vendégkönyv php függvényeit, és a header() függvényt próbáltam módosítani, de így is ugyanaz maradt az eredmény. Mit kéne módosítanom, h a vendégkönyv ne index.php, hanem az említett pl. guest.php néven is működjön? Előre is köszi a tippeket!
Itt a forrás:
<?php
ob_start();
?>

<?php

if (isset($_GET['error']))
{
    print "Hiba: Minden mező kitöltése kötelező!<br />";
}

//egy oldalon ennyi üzenet
$egyoldalon    =   "10";

//a tároló fájl neve
$f             =   "tarol.txt";


$handle        =   fopen($f,"r");

if ($tomb = @fread($handle,filesize($f)))
{
  $uzenetek     =    explode ("\n",$tomb);
  $uzenetek     =    array_reverse($uzenetek);
  $uzenetszam   =    (count($uzenetek)-1);
 
  if (!isset($_GET['lap']))
  {
    $_GET['lap'] = 1;
  }
 
  $lapszam = intval(($uzenetszam+($egyoldalon-1))/$egyoldalon);
   
  if ($lapszam!=1)
  {
    print "<div id=\"sorszam\">Oldalak: ";

for($i=1;$i<=$lapszam;$i++)
{

 if ($i!=$_GET['lap'])
 {
        echo '<a href="'.$PHP_SELF.'?lap='.$i.'">['.$i.']</a>';
 }//if
     else
 {
   echo $i;
 }//else
}//for
 
    print "<br />Összes üzenet:$uzenetszam</div>";
  }//if

  if ($_GET['lap'] !== 1)
  {
    $i = ($_GET['lap']-1)*$egyoldalon;
  }

  if ($_GET['lap'] == 1){
    $i = 1;
  }

  while($uzenetek[$i] == true)
  {
   
if ($egyoldalon > 0)
{
      $resz = explode("|",$uzenetek[$i]);
?>
     
<?php
      $i++;
      $egyoldalon--;
    }//if
    else
{
      break;
    }
  }//while
}//if fread

else
{
  print ("Hiba: Nem tudom megnyitni a fájlt ,Vagy nincs még bejegyzés");
}
?>
</body>
</html>


<?php
if (isset($_POST['mehet']))
{

  if ($_POST['uzenet'] !== "" && $_POST['nev']!== "" && $_POST['email'] !== "")
  {
    $fajl      =    "tarol.txt";
    $handle    =    fopen($f,"a+");
    $tomb      =    fread($handle,filesize($f));
    $uzenetek  =    explode ("\n",$tomb);
    $aktualis  =    count($uzenetek);
    $uzenet    =    $_POST['uzenet'];
    $uzenet    =    htmlspecialchars($uzenet);
    $uzenet    =    str_replace("[sm01]","<img src='sm01.gif' alt='sm01' />",$uzenet);
    $uzenet    =    str_replace("[sm02]","<img src='sm02.gif' alt='sm02' />",$uzenet);
    $uzenet    =    str_replace("[sm03]","<img src='sm03.gif' alt='sm03' />",$uzenet);
    $uzenet    =    str_replace("[sm04]","<img src='sm04.gif' alt='sm04' />",$uzenet);
    $uzenet    =    str_replace("[sm05]","<img src='sm05.gif' alt='sm05' />",$uzenet);
    $uzenet    =    str_replace("\n","<br />",$uzenet);
    $row       =    $_POST['nev']."|";
    $row      .=    $_POST['email']."|";
    $row      .=    $uzenet."|";
    $row      .=    date("Y-m-d H:m:s")."|";
    $row      .=    $aktualis."\n";
    fwrite($handle,$row);
    header ("location: index.php");
  }
 
  else
  {
    header ("location: index.php?error=1");
  }
}

?>
<?php
ob_end_flush();
?>
 
1

Form

Poetro · 2010. Május. 2. (V), 17.39
A form nem szerepel ebben a beidézett részben, pedig szerintem abban is index.php-re hivatkozik.
2

Lehet h igazad van A form

Batka1985 · 2010. Május. 2. (V), 21.04
Lehet h igazad van
A form első sora ami érdekes szerintem:
<form name="beir" method="post" action="<?=$_SERVER['PHP_SELF']?>">
E szerint a vendégkönyv azaz az index.php önmaga dolgozza fel a megkapott infókat.
Ezt én megváltoztattam így:
<form name="beir" method="post" action="guest.php">
Azért guest.php, mert átneveztem index.php-ről
Továbbá megváltoztattam ezt is:
...
  header ("location: guest.php");
  }
 
  else
  {
    header ("location: guest.php?error=1");
  }

Itt szintén az index.php-t írtam át guest.php-re, mindkét helyen
Ekkor már azt csinálja a progi, hogy már kiírja az üzenetet de egy teljesen új oldalra.
Így: link

Gondolo még mindig a FORM sorban van a hiba, és gondolom az action résznél. Mit kéne ott javítanom szerinted?
3

Továbbá megváltoztattam ezt

kuka · 2010. Május. 3. (H), 10.26
Továbbá megváltoztattam ezt is:
...
header ("location: guest.php");

Miért? Ha azt akarod, hogy az index.php jelenjen meg utána, akkor hagyd azt. Legfennebb annyi szépítéssel, hogy a vendégkönyv részt tölteted be:

header("index.php?x=guest");
4

Köszi! Működik!

Batka1985 · 2010. Május. 3. (H), 19.52
Köszi! Működik!
5

Esetleg tudnátok nekem tippet

Batka1985 · 2010. Május. 3. (H), 20.33
Esetleg tudnátok nekem tippet mondani, h ehhez a vendégkönyvhöz milyen spam szűrőt használjk? Valami egyszerűen beállítható és hatékony kéne:D
6

Akismet

janoszen · 2010. Május. 3. (H), 21.01
Ha van a szerveren Spamassassin, akkor spamd protokollon tudod használni és van hozzá PHP-s osztály is. Ha nincs, akkor pl Akismet.
7

Akkor kérnék 1 kis segítséget

Batka1985 · 2010. Május. 3. (H), 23.54
Akkor kérnék 1 kis segítséget az Akismet telepítésénél. Letöltöttem az Akismet.com oldalról. Lejött az akismet.php és a .gif
A telepítési útmutató azt írja h töltsem fel a wp-content-en belül a plugins könyvtárba
Ezt létre kéne hoznom a szerveremen?
És aztám meg azt írja h aktiváljam a Worldress plugin menujében. Az meg merre van???
Aztán meg jöhet az API key.
Előre is elnézést kérek a gagyi kérdésekért, de szeretném rendesen megcsinálni viszont ezzel az Akismettel még nem boldogulok!
Köszi a türelmeteket!:)
8

A telepítési útmutató azt

kuka · 2010. Május. 4. (K), 11.20
A telepítési útmutató azt írja h töltsem fel a wp-content-en belül a plugins könyvtárba

Nem. Azt a WordPress felhasználóknak írja. Neked azt írja, hogy
Untar or unzip the archive and put the Akismet.class.php file somewhere accessible to your scripts. Use include or a derivative to import it into your script.

Bővebben lásd például itt: http://achingbrain.net/stuff/php/akismet , feltéve, hogy atw.hu-n PHP 5 fut.
9

Na most már letöltöttem a

Batka1985 · 2010. Május. 4. (K), 19.58
Na most már letöltöttem a helyes verziót. A segédlet alapján amit linkeltél, az
Akismet.class.php-ban kitöltöttem ahogy a linkelt ábrán is volt. De ezek mind kommentben vannak. Ha kiszedem a komment jeleket azonnal hibákat ír ki az oldalamon. Mivel a komment rész html kódot tartalmaz a php-n belül. De ha komentbe hagyom nem fog működni (gondolom)
10

A segédlet alapján amit

kuka · 2010. Május. 6. (Cs), 08.23
A segédlet alapján amit linkeltél, az
Akismet.class.php-ban kitöltöttem ahogy a linkelt ábrán is volt.

Micsináltál? Az Akismet.class.php-ben még véletlenül sem kell kitöltsél semmit.
11

Akkor viszont nem értem, hogy

Batka1985 · 2010. Május. 6. (Cs), 19.21
Akkor viszont nem értem, hogy miért van a kódrészletben, amit a linkben láthatsz itt kiemelve pirossal, és beírva a kódba az APIKey és az URL?
Bár szerintem még most se sikerült aktiválnom a spamvédelmet:(
12

A Usage részbeli forráskódról

kuka · 2010. Május. 7. (P), 15.39
A Usage részbeli forráskódról beszélsz? Merthogy éppen arról van szó. Azt írod be a saját PHP scriptedbe.
13

De azt írja, h töltsem le a

Batka1985 · 2010. Május. 8. (Szo), 14.23
De azt írja, h töltsem le a akismet.class.php filet. Majd include fgv segítségével hívjam meg az oldalamon. És gondolom az APY keyt amit megkaptam nem kell beleírni ebbe a php-ba, mint ahogy a pirosal kijelölt rész is mutatná? Vagy totál sz*rul csináltam?
Elmagyaráznád nekem, vagy ha tudsz valami egyszerűbb megoldást a spam-ek ellen, és leírnád azt is szivesen venném. Előre is bocs a fárasztó kérdésekért!