Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: $_POST sie gubi w metodzie
Forum PHP.pl > Forum > PHP
Apo
Witam
Mam następujący problem:
Mam metode w klasie która odpowiada za zapisanie danych do bazy, no i napisałem sobie sprawdzanie które pole jest puste i jesli jakies jest to dopisuje sie do zmiennej odpowiedni komunikat:

  1. <?php
  2. // ...
  3. private function zapis()
  4.  {
  5.  $email = filtr::zapis($_POST['email']);
  6.  $stare_haslo = filtr::zapis($_POST['starehaslo']);
  7.  $nowe_haslo1 = filtr::zapis($_POST['nowehaslo1']);
  8.  $nowe_haslo2 = filtr::zapis($_POST['nowehaslo2']);
  9.  
  10. $tablica = array($email => 'adres email', $stare_haslo => 'stare hasło', $nowe_haslo1 => 'nowe hasło', $nowe_haslo2=> 'potwierdź hasło');
  11. $alert = '';
  12.  
  13. foreach($tablica as $zmienna => $napis)
  14.  {
  15. if(empty($zmienna)) {
  16. $alert .= '<h1>Pole "'.$napis.'" jest obowiązkowe</h1>'; }
  17.  }
  18.  
  19. if(!empty($alert))
  20. echo $alert;
  21. else
  22. echo 'ok';
  23.  
  24.  }
  25. ?>

I teraz robie mi sie takie cos ze ta pętla robi jakby tylko 2 powtórzenie, przez co jak są np 3 pola puste wypisze tylko jedno. W nazwach zmiennych napewno sie nie pomyliłem, klasa filtr tez jest dobra. Dodatkowo jak robie print_r($tablica) to wysiwetla mi tylko 2 elementy, a php zednego błedu nie wyświetla :/
siemakuba
wydaje mi sie, ze problem jest nastepujacy: blednie zalozyles, ze stworzy ci sie tablica z pustymi kluczami dla tych elementow, ktorych wartosci nie zostaly podane w formularzu i tym samym nie ma ich w $_POST. Owszem, stworzy ci sie taka tablica, ale kazdy kolejny element ktory nie ma wartosci nadpisze poprzedni, bo przeciez w tablicy nie mozesz miec dwoch takich samych kluczy, rajt?

proponuje taka zmiane:

  1. <?php
  2.  
  3. $tablica = array(
  4. $email => 'adres email', 
  5. $stare_haslo => 'stare hasło', 
  6. $nowe_haslo1 => 'nowe hasło', 
  7. $nowe_haslo2=> 'potwierdź hasło'
  8. );
  9.  
  10. // odwracamy:
  11.  
  12. $tablica = array(
  13. 'adres email' => $email, 
  14. 'stare hasło' => $stare_haslo, 
  15. 'nowe hasło' => $nowe_haslo1, 
  16. 'potwierdź hasło' => $nowe_haslo2
  17. );
  18.  
  19. ?>

no i oczywiscie petle troche przerobic zgodnie z nowa tablica i powinno byc OK

pozdr.
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.