Pisałem stronę internetową na własny użytek. Mam problem, bo formularz w logowanie.php ma problem z przesłaniem danych do login.php z metodą GET i POST.
Kod zatrzymuje się w linijce 25 pliku login.php
Stronę testuję na WAMP wersja 2.4 x84
login.txt (2,4 KB)
logowanie.txt (1,0 KB)
Z jakim błędem zatrzymuje się parser php?
Pisanie strony w ten sposób nawet na własny użytek to tylko proszenie się o kłopoty.
Gdy wywołuję echo $_POST[“login”] wywala Undefined index: login.
Wiem, że to oznacza nieistniejący wpis w tablicy, ale powinien istnieć skoro najpierw wysyłam wypełniony formularz do login.php a on próbuje to wyświetlić…
Tak, tylko że formularz wysyłasz GETem a nie POSTem więc taki index nie istnieje w tablicy POST.
No i nie wiem jak u Ciebie, ale u mnie w pliku który przesłałeś jest to linijka 18.
Przed wysłaniem chciałem sprawdzić, czy działa metoda GET. Też odpada.
Przed wysłaniem nie zdążyłem z powrotem poprawić na POST, moja wina!
Ale na obydwu metodach wysypuje się…
EDIT: Jak wysyłałem metodą GET to w górnym pasku nie było tej składni login.php/?login=cośtam&password=jeszcze
Nie masz atrybutu name w polach formularza więc php nie wie jak nazywają się zmienne, a przeglądarka pod jakimi nazwami je wysłać więc prawdopodobnie nie wysyła ich wcale.
Dzięki bardzo! Nawet nie wiedziałem, że takie coś musi być. Na przyszłość przetrzepię internet w poszukiwaniu tutoriali na dany temat nie zaśmiecając przy tym forum
Spoko, ucząc się mogłeś to przeoczyć nawet lecąc według tutoriala
Cześć @wojtek20124, tylko pamiętaj, że funkcja isset() oraz empty() nieco różnią się od siebie.
Isset sprawdza czy taka zmienna istnieje, więc jak masz pole formularza “imie” i nic w takie pole nie wpiszesz, a sprawdzisz sobie w warunku przez isset($_POST[‘imie’]) to zwróci Ci prawdę, bo takie pole istnieje.
Zmienna empty sprawdza czy zmienna jest pusta, więc masz podwójne sprawdzenie, bo najpierw sprawdza czy w ogóle taka zmienna istnieje, a następnie czy jest pusta (null lub pusty string).
Sprawdź sobie co Ci zwróci poniższy przykład
<?php
$value = '';
if(isset($value)){
print_r('true');
}
if(!empty($value)){
print_r('true');
}
Szczegół, o którym dowiedziałem się 5 dni temu z oficjalnej strony php. Z obecnego lenistwa dodałem sprawdzenie, czy napis jest pusty za pomocą operatora ===
Ale dzięki za dobre chęci