Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienna w includowanym pliku
Forum PHP.pl > Forum > PHP
Rufus_84
Witam
Mam nastepujący problem:
Kod:

  1. $firstname = $_POST['firstname'];
  2. $lastname = $_POST['lastname'];
  3. $email = $_POST['email'];
  4. $password = $_POST['password'];
  5. $rpassword = $_POST['rpassword'];
  6. $terms = $_POST['regulamin'];
  7.  
  8. $wrong='';
  9. if(isset($_POST['register'])) {
  10.  
  11.  
  12. if(isValidName($firstname) && isValidName($lastname) && isValidEmail($email) && $password!='' && $rpassword!='' && thesame($password, $rpassword)==true && isset($terms)) {
  13.  
  14. $db = new database;
  15.  
  16. $db->select("SELECT * FROM users WHERE email = :email");
  17. $data = $db->execute(array(
  18. ':email' => $email
  19. ));
  20.  
  21. if(count($data) > 0) {
  22. $wrong = 'Użytkownik o podanym adresie email już istnieje.';
  23. $ok = '';
  24. registerForm();
  25. }else {
  26. $db->insert(
  27. "INSERT INTO users (id, imie, nazwisko, email, haslo) VALUES (:id, :imie, :nazwisko, :email, MD5(:haslo))",
  28. array(':id' => NULL,
  29. ':imie' => $firstname,
  30. ':nazwisko' => $lastname,
  31. ':email' => $email,
  32. ':haslo' => $password
  33. )
  34. );
  35.  
  36. $ok = '<h3>Rejestracja zakończona pomyślnie.<br><a href="zaloguj">Zaloguj się</a>, aby dodać ofertę.</h3>';
  37. $wrong = '';
  38. }
  39. }else {
  40. $erricon = '<i class="fa fa-exclamation-circle"></i>';
  41. if(!isValidName($firstname)) $wrong .= $erricon.' Podaj poprawne imię<br/>';
  42. if(!isValidName($lastname)) $wrong .= $erricon.' Podaj poprawne nazwisko<br/>';
  43. if(!isValidEmail($email)) $wrong .= $erricon.' Podaj poprawny adres email<br/>';
  44. if($password=='') $wrong .= $erricon.' Podaj hasło<br/>';
  45. if(thesame($password, $rpassword)==false) $wrong .= $erricon.' Hasła muszą być takie same<br/>';
  46. if(!isset($terms)) $wrong .= $erricon.' Musisz zaakceptować regulamin<br/>';
  47. registerForm();
  48. }
  49. }else {
  50. registerForm();
  51. }


Problem polega na tym, że jeżeli w pliku register-form.php który jest includowany za pomocą funkcji registerForm(); chcę wyświetlić błędy

  1. <?php if($wrong != '') : ?>
  2. <div class="wrong"><?php echo $wrong; ?></div>
  3. <?php endif; ?>
  4. <?php if($ok != '') : ?>
  5. <div class="ok"><?php echo $ok; ?></div>
  6. <?php endif; ?>


Nic sie nie pojawia

Czy jest jakiś sposób aby zmienne mogły zostać wyświetlone w pliku includowanym?
Z góry wielkie dzięki za pomoc

Rafał
Daimos
Ale Ty nigdzie w tym kodzie, który podałeś, nie zamieszczasz tego pliku.

Jakbyś robił:
  1. include('register-form.php')

To by działało, tak jak sobie tego życzysz, ale domyślam się, że robisz to przez funkcję registerForm();, więc musisz podać przez nią parametr, np:
  1. $wrong = true;
  2. function registerForm($wrong)
  3. {
  4. include('register-form.php');
  5. }
  6.  
  7. registerForm($wrong);

Po takim zabiegu, będziesz miał dostępną zmienną $wrong w Twoim pliku. Zmienne deklarowane poza funkcją, nie są widoczne w środku. I mam nadzieje, że nikt nie wspomni tu o global.
Rufus_84
Dzięki
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.