Witam, jestem w trakcie kursu php, próbuję zapisać to samo co prowadzący na filmie ale nie chce działać, byłoby super gdyby ktoś mógł coś podpowiedzieć Przeglądarka wyświetla błędy:
Notice : Undefined variable: login in B:\xampp\htdocs\sklep\index.php on line 55
Notice : Undefined variable: login in B:\xampp\htdocs\sklep\index.php on line 65
mimo że mam poprzez ifa przypisanie podanego przez użytkownika loginu do $login i zapamiętanie sesji.
Popatrz na niego jeszcze raz i spróbuj dojść gdzie popełniłeś błąd. Kolejna kwestia, że błędy które wyświetla Ci php jednoznacznie sugerują z czym jest problem.
Programowanie to głównie myślenie, często kreatywne, a tego, żaden kurs ani szkolenie nie nauczy.
Jeszcze wrzuciłem to do IDE żeby lepiej na to zerknąć i wychodzi na to, że lekko wprowadziłem Cię w błąd. Masz źle popisane IFy - konkretnie masz bałagan z klamrami. Poniżej masz kod z ogarniętymi wcięciami, łatwiej będzie Ci znaleźć błąd
nie widzę tutaj błędu, if przechodzi leżeli login i haslo się zgadzają lub jeżeli sesja zalogowanie równe 1, dalej jeżeli przeszło przez pierwszy if ze względu na zgodność log i pass to przypisz do zmiennej sesyjnej podany login, potem zmień sesję zalogowanie na 1, czyli po odświeżeniu powinien przejść tego ifa ze względu na to że sesja zalogowanie równe 1 pominąć drugiego ifa i wyświetlić że zalogował na to samo konto, a tego nie robi. Sam do tego nie dojdę, co wczoraj zmieniałem jedno to psuło się drugie, a błędu nie widzę
Musisz douczyć się o zakresie widoczności (zasięgu) zmiennych. Jeśli definujesz jakieś zmienne w jednym zakresie widoczności nie są one widoczne (dostępne) w innym. Przykład:
<?php
$animal = 'owca'; // zmienna "globalna" dla pliku
{ // jakiś nowy blok kodu - inny obszar widoczności zmiennych
$fruit = 'truskawka';
echo $animal; // jest ok bo pochodzi z "wyższego poziomu" widoczności
echo $fruit; // jest ok bo jest to zmienna lokalna
}
{ // kolejny blok kodu - inny obszar widoczności zmiennych
$color = 'czerwony';
echo $animal; // jest ok bo pochodzi z "wyższego poziomu" widoczności
echo $fruit; // NIE JEST OK bo pochodzi z innego obszaru widoczności
echo $color; // jest ok bo jest to zmienna lokalna
{ // zagnieżdżony blok kodu - inny obszar widoczności zmiennych
$status = 'zrobione';
echo $animal; // jest ok bo pochodzi z "wyższego poziomu" widoczności
echo $fruit; // NIE JEST OK bo pochodzi z innego obszaru widoczności
echo $color; // jest ok bo pochodzi z "wyższego poziomu"
echo $status; // jest ok bo jest to zmienna lokalna
}
}
echo $animal; // jest ok bo jest to zmienna lokalna
echo $fruit; // NIE JEST OK bo pochodzi z innego obszaru widoczności
echo $color; // NIE JEST OK bo pochodzi z innego obszaru widoczności
echo $status; // NIE JEST OK bo pochodzi z innego obszaru widoczności
?>
ok rozumiem. Dziwne tylko, że jest to praktycznie ten sam kod co na kursie (nazwy zmiennych tylko inne) i niby na filmie to działa. Jak rozumiem muszę inaczej ustawić klamry if’ów tak żeby brały pod uwagę odpowiednie zmienne? Dzięki za pomoc
Tak, jest to jedno z rozwiązań. Kursy są często nieaktualne, to to jest taka podstawa, że nie miała prawa zmienić się od powstania php.
Jeśli jest to kurs na yt to możesz podesłać link na pw to zerknę być może coś przeoczyłeś.