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
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?
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
ö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
eiku hei nyt minä sain sen toimimaan kiitti avusta
Aihe on jo aika vanha, joten et voi enää vastata siihen.