XxMichałxX Opublikowano 7 Czerwca 2009 Udostępnij Opublikowano 7 Czerwca 2009 mam taki kod: for ($i=0; $i<5; $i++) { $error[$i]=$_GET["error[".$i."]"]; if ($error[$i]!=='') {echo "<script language='JavaScript'>alert('".$error[$i]."')</script>";} } i chce tego uzyc do errorow, ze np w shoutboxie ktos napisze za dlugie to www.strona.domena.pl/plik.php?error1=Za dlugi post! a jak da za dlugi post + z wuglaryzmami to: www.strona.domena.pl/plik.php?error1=Za dlugi post!&error2=Wulgaryzmy w poscie! No i mam do dyspozycji 5 errorow, no to daje tak, ba daje tylko 2 errory a pięć razy wyskakuje mi pusty alert. czemu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 7 Czerwca 2009 Udostępnij Opublikowano 7 Czerwca 2009 Bo masz pętlę for, nie? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Panboni Opublikowano 7 Czerwca 2009 Udostępnij Opublikowano 7 Czerwca 2009 Pętlą for sprawdź, ile jest errorów, i tyle razy niech się wykonuje kod z pętli for, bo jak na razie wykonuje się, bez względu na ilość errorów, pięć razy. Albo przesyłasz informację o ilości błędów, albo dajesz: $max = 0; while( isset( $_GET[ 'error' . $max ] ) ) $max++; for ($i=0; $i<$max; $i++) { $error[$i]=$_GET["error[".$i."]"]; if ($error[$i]!=='') {echo "<script language='JavaScript'>alert('".$error[$i]."')</script>";} } Proszę bardzo :) . A tak btw - po co w gecie dodajesz nawiasy kwadratowe ([ oraz ]) ? Wychodzi wtedy nie $_GET[ 'error1' ], tylko $_GET[ '[error1]' ], a chyba tak być nie ma :P . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 7 Czerwca 2009 Autor Udostępnij Opublikowano 7 Czerwca 2009 dalej wszystkie pokazuje. tosz samo to: if ($error[$i]!=='') powinno kur** wystarczyc.. poj**ane gówno -,-' nie rozumiem czasami tego php. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Boro Casso Opublikowano 7 Czerwca 2009 Udostępnij Opublikowano 7 Czerwca 2009 przypisz tablicę do zmiennej i dopiero porównuj. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Panboni Opublikowano 7 Czerwca 2009 Udostępnij Opublikowano 7 Czerwca 2009 Przypisał przecież :) . Mazo, spróbuj isset(). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 7 Czerwca 2009 Administratorzy Udostępnij Opublikowano 7 Czerwca 2009 for ($i=0; $i<5; $i++) { if ( !empty( $_GET["error[$i]"] ) ) { echo "<script language='JavaScript'>alert('{$error[$i]}')</script>"; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kofel Opublikowano 7 Czerwca 2009 Udostępnij Opublikowano 7 Czerwca 2009 for ($i=0; $i<5; $i++) { if ( !$_GET["error[$i]"] ) { echo "<script language='JavaScript'>alert('{$error[$i]}')</script>"; } } Wywali NOTICE ale podobno taki sposób jest szybszy, ale to pojęcie względne ;D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Nobody Opublikowano 8 Czerwca 2009 Udostępnij Opublikowano 8 Czerwca 2009 Nie lepiej wszystkie treści błędów walnąć do jednej zmiennej i wtedy wyświetlić? A tak to użytkownik będzie w nieskończoność klikał ENTER bądź OK... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Czerwca 2009 Administratorzy Udostępnij Opublikowano 8 Czerwca 2009 Ja, gdy np. mam zapisywanie postów na forum, to po kolei sprawdzam czy po wysłaniu formularza wszystkie warunki są spełnione. Jest zmienna $zapisz = true; no i teraz lecimy: sprawdzam, czy użytkownik ma prawa pisać posty, czy użytkownik dodał nick, jeżeli jest niezalogowany, czy podał temat, czy podał treść postu, czy wcisnął zapisz czy podgląd - jeżeli gdzieś się coś nie zgadza, to $zapisz = false i blok kodu zapisujący post się nie wykona, ale mimo to sprawdzane są dalej wszystkie warunki dodania postu - a każdy dodaje jeden blok HTMLa z opisem błędu (gdy pracuje się z systemem szablonów, to jest to prostsze do stworzenia). Nie ma żadnych JSów, nie ma też żadnego przesyłania błędów w adresie strony - w końcu po to jest PHP, żeby kod sam generował błędy i je wyświetlał na stronie, a nie dopuszcał wtedy do wykonania określonej akcji. Schemat wyglądał by tak: $zapis = true; $error = array(); if ( empty( $_POST['zmienna'] )) { $error[] = 'Brakuje nicku!'; $zapis = false; } if ( $forum['prawa'] != $prawa['gosc'] ) { $error[] = 'Masz za małe prawa!'; $zapis = false; } ... // i tak dalej, różne testy if ( $zapis == true ) { // tutaj np. zapis posta, albo coś innego i przekierowanie: header('Location: tresc.php'); } else { echo '<h1>Błąd!</h1>' . implode('<hr>',$error); } // wyświetlanie normalnej zawartości strony, bo jezeli był błąd, to trzeba poprawić formularz, mozna do inputów powstadzać tekst który został przesłany metodą POST, zeby user nie wpisywał go drugi raz Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się