Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: mikä on vikana ?

janux [03.07.2002 15:24:24]

#

sanokaapa suoraan että mikä tässä scriptissä on vikana

<?php
$tiedosto = fopen("bans.txt", "r") or die("ERROR 999 out of error numbers");
while(!feof($tiedosto)) // looppi
{
$read = fgets($tiedosto, 1024);
}
if($tiedosto=="$REMOTE_ADDR\n")
{
 print "Valitan sinut on bannattu";
 print "<meta http-equiv='refresh' content='1;url=http://www.hackers.com'>";
}
fclose($tiedosto);
?>

tuon scriptin pitäsi tarkistaa että onko filussa kävijän ip ja jos on niin kävijä lentää ulos mutta tuo ei toimi niin mikä tossa buggaa

trinit [03.07.2002 16:11:08]

#

Muuta koko skritpti muotoon:

<?php
$tiedosto = fopen("bans.txt", "r") or die("ERROR 999 out of error numbers");

  while(!feof($tiedosto)) // looppi alkaa
  {
    $read = trim(fgets($tiedosto, 1024));

    if ($read==$REMOTE_ADDR)
    {
      fclose($tiedosto);
      print "<meta http-equiv='refresh' content='1;url=http://www.hackers.com'>;";
    }
  } // looppi päättyy
fclose($tiedosto);
?>

Skriptissäsi oli muutamia todella pahoja virheitä, kuten puuttuva while-lausekkeen lopettava } -merkki. Lisäksi yritit verrata tiedosto-osoitinta ($tiedosto) kävijän IP-osoitteeseen ($REMOTE_ADDR) ja $REMOTE_ADDR oli vielä lainausmerkkien sisällä \n -merkki lopussa.

Taisi tulla aika monta virheilmoitusta jos todellakin tuota yritit ajaa PHP-tulkin läpi?

trinit [03.07.2002 16:16:33]

#

Sinne jäi vielä yksi virhe näköjään, muuta kohta:
url=http://www.hackers.com'>;;";

muotoon
url=http://www.hackers.com'>";

Parempi olisi käyttää header-funktiota <meta> tagin sijasta. Header siirtää selaimen sille osoitettuun osoitteeseen, mutta header funktio ei toimi jos sitä ennen on printattu jotain sivulle. Lisätietoja header:sta löytyy PHP Manualista

janux [03.07.2002 16:24:27]

#

öh tuo sun scripti toimii muuten mutta tulee Warning: 1 is not a valid File-Handle resource in c:\server\ban.php on line 5

janux [03.07.2002 16:27:16]

#

eiku hei nyt minä sain sen toimimaan kiitti avusta

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta