ďťż

[PHP]Prosze o wskazanie błędów w skrypcie

       

Podstrony


telcocafe

<?php $zmienna = $_GET['zmienna']; $wynik = 'blad'; $uchwyt = @fopen("plik.txt", "r"); if ($uchwyt) { do { $bufor = fgets($uchwyt, 4096); if ($bufor == $zmienna) { break; $wynik = 'ok'; } } while (!feof($uchwyt)); fclose($uchwyt); } echo $wynik; ?>

Chodzi o to zeby skrypt wczytywał kolejne linie z pliku do zmiennej $bufor i sprawdzał czy jest ona taka sama jak zmienna $zmienna, az do końca pliku. Jeśli zmienne okażą się takie same to powinien przerwac wykonywanie pętli i wyświetlic 'ok', jesli nie to 'blad'. Problem w tym, ze czego bym nie podał, zawsze dostaje 'blad' <_<



Nie możesz wykonywać takiego porównania
if ($bufor == $zmienna)
Bo terez zmienna $bufor jest wskaźnikiem na pierwszy element tablicy i nie możesz jej porównywać do innej zmiennej. Użyj strcmp:
if (strcmp($bufor,$zmienna)==0)
Oczywiście $zmienna jest zmienną tekstową <_< .
Użytkownik krajew4 edytował ten post 08 lipiec 2006, 07:22
<?php $zmienna = $_GET['zmienna']; $wynik = 'zle'; $uchwyt = @fopen("ffa.kaboom", "r"); if ($uchwyt) { do { $bufor = fgets($uchwyt, 4096); if (strcmp($bufor,$zmienna)==0) { break; $wynik = 'ok'; } } while (!feof($uchwyt)); fclose($uchwyt); } echo $wynik; ?>

Dlaczego teraz po przekazaniu do skryptu poprawnego ciągu, zmienna $wynik nie zawiera 'ok' tylko zawsze jest 'zle' ?

if (strcmp($bufor,$zmienna)==0) { break; $wynik = 'ok'; }
powinno być
if (strcmp($bufor,$zmienna)==0) { $wynik = 'ok'; break; }
:P :P



Dalej to samo :Jumpy: Podaje dobrą wartość - 'zle', podaje złą - 'zle' <_<. To jest tak jak w delphi ze ta pętelka gdy będzie true to nadpisze starą wartość $wynik, która jest ustawiona od początku na 'zle' ?
Użytkownik Private edytował ten post 08 lipiec 2006, 09:32
U mnie taki kod działa:
<?php $zmienna = $_GET['zmienna']; $wynik = 'blad'; $uchwyt = @fopen("plik.txt", "r");    if ($uchwyt)    {        do        {        $bufor = fgets($uchwyt, 4096);        echo $bufor;            if (strcmp($bufor,$zmienna)==0)            {            $wynik = 'ok';            break;            }        }        while (!feof($uchwyt));        fclose($uchwyt);    } echo $wynik; ?>
W pliku plik.txt mam zapisane:
skrypt
A wywołuję skrypt tak:
http://127.0.0.1/~cr...?zmienna=skrypt i dostaję ok :) :)
Użytkownik krajew4 edytował ten post 08 lipiec 2006, 10:15
OK, problem rozwiązany na innym forum :)


OK, problem rozwiązany na innym forum :)

Daj ten kod, co żeś go na innym forum dostał.

no chapaj zawartość przez file_get_contents 1. szybsze 2. sprawniejsze 3. mniejsze objętościowo 4. dżezi :>

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.