Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dziwny błąd
Forum PHP.pl > Forum > Przedszkole
cisu
Witam, napotkałem bardzo dziwny błąd i nie wiem jak go rozwiązać.
  1. <?php if(!isset($_GET['akcja'])) {?>
  2. tutaj ma instrukcje
  3. <?php } else {
  4. if($_GET['akcja'] == 'dodaj') {?>
  5. Tutaj mam właśnie problem. Nie działa to, co tutaj jest wstawione.
  6. <?php } } ?>

Teraz tak, w pliku .htaccess mam coś takiego
Kod
RewriteRule ^user,notatki,dodaj$ index.php?page=user&mode=notatki&akcja=dodaj[L]

Mod_rewrite mam włączony prędzej, wszystko działa jak należy. Ale i tak nie działa to, jak mam pod $_GET['akcja']=='dodaj', nie wiem czemu, niby wsio działa a tutaj mam błąd. Jak to rozwiązać? Jak czegoś nie powiedziałem to dopowiem.
amii
Nie wiem czy to pomoże ale spróbuj:
trim($_GET['akcja'])
Kszyhuu
Ten kod wklejony przez Ciebie jest zły. Zamiast if($_GET['akcja'] == 'dodaj') powinno być if (isset ($_GET['akcja']) && $_GET['akcja'] == 'dodaj'). Czyli całość powinna wyglądać tak:

  1. <?php if(!isset($_GET['akcja'])) {?>
  2. tutaj ma instrukcje
  3. <?php } else {
  4. if (isset ($_GET['akcja']) && $_GET['akcja'] == 'dodaj') {?>
  5. Tutaj mam właśnie problem. Nie działa to, co tutaj jest wstawione.
  6. <?php } } ?>
webdice
Daj na początku skryptu

  1. print_r($_GET);


i napisz co Ci się wyświetliło.

~krzychuu, bez sensu, sprawdzasz 2 razu to samo. Pierwszy if sprawdza czy zmienna nie istnieje, jeśli istnieje to sprawdza jaką ma wartość.
emtiej
A ja skopiowałem to co podałeś do pliku index.php na swoim serwerze i wszystko jest ok, może problem tkwi w instrukcjach, których nie podałeś? Chodzi mi o: "tutaj ma instrukcje" i "Tutaj mam właśnie problem. Nie działa to, co tutaj jest wstawione."

Podaj kompletny kod i skopiuj treść błędu jaki ci się wyświetla, bo na razie to jak gra w dużego lotka, można tylko strzelać...
cisu
Cytat(Kszyhuu @ 24.12.2009, 14:59:30 ) *
Ten kod wklejony przez Ciebie jest zły. Zamiast if($_GET['akcja'] == 'dodaj') powinno być if (isset ($_GET['akcja']) && $_GET['akcja'] == 'dodaj'). Czyli całość powinna wyglądać tak:<?php if(!isset($_GET['akcja'])) {?>
tutaj ma instrukcje
<?php } else {
if (isset ($_GET['akcja']) && $_GET['akcja'] == 'dodaj') {?>
Tutaj mam właśnie problem. Nie działa to, co tutaj jest wstawione.
<?php } } ?>

Z tym się absolutnie nie zgodzę, doczytaj kod a potem się wypowiadaj. Najpierw jest instrukcja jeżeli jest Nie je zadeklarowana zmienna $_GE['akcja'] a potem w ELSE, czyli jeżeli nie, dalszy ciąg. Błąd tkwił w pliku .htaccess, trudny do wychwycenia ale tam właśnie był.
Zamiast
Kod
RewriteRule ^user,notatki,dodaj$ index.php?page=user&mode=notatki&akcja=dodaj[L]

ma być
Kod
RewriteRule ^user,notatki,dodaj$ index.php?page=user&mode=notatki&akcja=dodaj [L]

Błędem był brak spacji przed ostatnim znacznikiem [L], zmieniłem to i zadziałało.
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.