Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zmienna w includowanym pliku
Rufus_84
post 19.12.2014, 19:41:26
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 1
Dołączył: 15.12.2012

Ostrzeżenie: (0%)
-----


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ł
Go to the top of the page
+Quote Post
Daimos
post 20.12.2014, 12:50:37
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Daimos 20.12.2014, 12:50:58


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
Rufus_84
post 22.12.2014, 18:16:42
Post #3





Grupa: Zarejestrowani
Postów: 77
Pomógł: 1
Dołączył: 15.12.2012

Ostrzeżenie: (0%)
-----


Dzięki
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 20:05