Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tu dziala tam niedziala
Forum PHP.pl > Forum > PHP
Kostek
Witam
Napisalem pewien skrypt
Na jednym kompie dziala elegancko a na moim nie , na obydwuch kompach sa te same php'y i apach'y z tak powiem biggrin.gif

[php:1:8bc5c39c40]<?php
$zawias = fopen("plik.txt", "r");
while
($line = fgets($zawias))
{
$x=$_POST['login'] .":" .md5($_POST['haslo']) ."n";

if ($line==$x)
{
header("Location:ok.html");
}
}


?>[/php:1:8bc5c39c40]
Niewiem dlaczego niedziala
adwol
Cytat
Na jednym kompie dziala elegancko a na moim nie , na obydwuch kompach sa te same php'y i apach'y z tak powiem

A co w nim nie działa? Zamień dla pewności
[php:1:a0a4e4c79c]<?php
header("Location:ok.html");
?>[/php:1:a0a4e4c79c]
na
[php:1:a0a4e4c79c]<?php
header("Location: ok.html");
?>[/php:1:a0a4e4c79c]
Poza tym, czy używasz w obu przypadkach tej samej przeglądarki?
Kostek
Zmienilem tak jak Podałeś i niedziala nadal

Przeglądarka : Na IE niedziala i na Mozilli niedziala smile.gif
a niedziała to ze nic sie niewyświetla umnie , natomiast u kolegi na kompie wszystko elegancko smiga
spenalzo
Ponieważ wywołujesz header w pętli, to daj za nim die()
[php:1:16b7cb1298]<?php
(...)
{
header("Location: ok.html");
die();
}
(...)
?>[/php:1:16b7cb1298]

Poza tym sprawdź wersję php, ponieważ krótki zapis ($_POST) można stosować od wersji 4.1.0, we wcześniejszych trzeba zamiast $_POST pisać $HTTP_POST_VARS.
Kostek
[php:1:7471d3d9fe]<?php

$zawias = fopen("plik.txt", "r");
while
($line = fgets($zawias))
{
$x=$_POST['login'].":".md5($_POST['haslo'])."n";

if ($line==$x)
{
header("Location: ok.htm");
die();
}
else {
( header("Location: nie.htm"));
}
}



?>[/php:1:7471d3d9fe]
Udoskonaliłem troche skrypt i za kazdym razem pokazuje nie.htm
:/ czyli ja juz niewiem :/ o co chodzi dalej
w pliku plik.txt mam

kostek:3b6f421e7550395e28e091c5565ac80a
[/list]
Kostek
a , co do $_post to w innych skryptach dziala wiec z tym problemu nie ma , wersja : php Version 4.3.2
spenalzo
Jak wyciągasz dane, które masz zapisane linia po linii wyciągaj je przy pomocy [manual:e6f90b4f67]file[/manual:e6f90b4f67], a potem potraktuj to funkcją [manual:e6f90b4f67]rtrim[/manual:e6f90b4f67], żeby usunąć znaki nowej linii i ewentualne spacje.
fgets pobiera niekoniecznie jedną linię, może więcej, ponieważ domyślna długość pobieranego ciągu to 1kb (1024 znaki).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.