Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] rejestracja uzytkownika
Forum PHP.pl > Forum > XML, AJAX
trucksweb
pisze sobie rejestracje z walidacja formularza. o ile walidacja dziala ok to juz z rejestracja jest problem:/
cos nie dziala:
wywala blad:
  1. <?php
  2. ERRNO: 8 TEKST: Undefined variable: user_name LOKALIZACJA: ../validate.class.php, linia 68
  3. ?>



  1. <?php
  2.  
  3. require_once ('error_handler.php'); 
  4. require_once ('config.php');
  5.  
  6. class Validate
  7. {
  8.  
  9. private $mMysqli;
  10.  
  11. function __construct()
  12. {
  13. $this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
  14. }
  15.  
  16. function __destruct()
  17. {
  18. $this->mMysqli->close();
  19. }
  20.  
  21.  
  22. public function ValidateAJAX($inputValue, $fieldID)
  23. {
  24.  
  25. switch($fieldID)
  26. {
  27. // sprawdza poprawność nazwy użytkownika
  28. case 'txtUsername':
  29. return $this->validateUserName($inputValue);
  30. break;
  31. // sprawdza poprawność adresu email
  32. case 'txtEmail':
  33. return $this->validateEmail($inputValue);
  34. break;
  35.  
  36. }
  37. }
  38. // sprawdza, czy wypełnione są wszystkie pola
  39. public function ValidatePHP()
  40. {
  41. // flaga błędu zostaje ustawiona na 1, jeśli wystąpi błąd
  42. $errorsExist = 0;
  43. // czyści flagi błędów w sesji
  44. if (isset($_SESSION['errors']))
  45. unset($_SESSION['errors']);
  46. // domyślnie wartości pól są uznane za poprawne
  47. $_SESSION['errors']['txtUsername'] = 'hidden';
  48. $_SESSION['errors']['txtEmail'] = 'hidden';  
  49. // weryfikuje nazwę użytkownika
  50. if (!$this->validateUserName($_POST['txtUsername']))
  51. {
  52. $_SESSION['errors']['txtUsername'] = 'error';
  53. $errorsExist = 1;
  54. }
  55.  
  56. // weryfikuje email
  57. if (!$this->validateEmail($_POST['txtEmail']))
  58. {
  59. $_SESSION['errors']['txtEmail'] = 'error';
  60. $errorsExist = 1;
  61. }
  62.  
  63. // jeśli nie znaleziono błędów, to ustawia wartość pomyślnej weryfikacji
  64. if ($errorsExist == 0)
  65. {
  66.  
  67. // usuwa znaki specjalne przez dodaniem wiadomości do bazy
  68. $user_name = $this->mMysqli->real_escape_string($user_name);
  69. $user_email = $this->mMysqli->real_escape_string($user_emai);
  70.  
  71. // tworzy zapytanie SQL, które dodaje nową wiadomość do serwera
  72.  $query = 'INSERT INTO chat_users(user_name,user_email) ' .
  73. 'VALUES (NOW(), "' . $user_name . '" , "' . $user_email . '")';
  74. $result = $this->mMysqli->query($query);
  75.  
  76. }
  77. else
  78. {
  79. // jeśli są błędy, zapisuje wprowadzone dane
  80. foreach ($_POST as $key => $value)
  81. {
  82. $_SESSION['values'][$key] = $_POST[$key];
  83. }
  84. return 'index.php';
  85. }
  86. }
  87. // weryfikacja nazwy użytkownika, nie może być pusta lub już rejestrowana
  88. private function validateUserName($value)
  89. {
  90. // przycięcie spacji początkowych i końcowych oraz zmiana znaków na kod
  91. $value = $this->mMysqli->real_escape_string(trim($value));
  92. // pusta nazwa użytkownika nie jest poprawna
  93. if ($value == null) 
  94. return 0; // niepoprawna nazwa
  95. // sprawdza czy użytkownik nie występuje już w bazie
  96. $query = $this->mMysqli->query('SELECT user_name FROM chat_users ' .
  97. 'WHERE user_name="' . $value . '"');
  98. if ($this->mMysqli->affected_rows > 0)
  99. return '0'; // niepoprawna nazwa
  100. else
  101. return '1'; // poprawna nazwa
  102. }
  103.  
  104.  // weryfikuje email
  105. private function validateEmail($value)
  106. {
  107. // poprawne formaty email: *@*.*, *@*.*.*, *.*@*.*, *.*@*.*.*)
  108. //return (!eregi('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$', $value)) ? 0 : 1;
  109. if ($value == null) 
  110. return 0; // niepoprawna nazwa
  111. // sprawdza czy użytkownik nie występuje już w bazie
  112. $query = $this->mMysqli->query('SELECT user_email FROM chat_users ' .
  113. 'WHERE user_email="' . $value . '"');
  114. if ($this->mMysqli->affected_rows > 0)
  115. return '0'; // niepoprawna nazwa
  116. else
  117. return '1'; // poprawna nazwa
  118. }
  119.  
  120.  
  121. }
  122. ?>
AxZx
jak to?
patrzysz w linie 68 i nic?

z
  1. <?php
  2. $user_name = $this->mMysqli->real_escape_string($user_name);
  3. $user_email = $this->mMysqli->real_escape_string($user_emai);
  4. ?>


na

  1. <?php
  2. $user_name = $this->mMysqli->real_escape_string($_POST['txtUsername']);
  3. $user_email = $this->mMysqli->real_escape_string($_POST['txtEmail']);
  4. ?>
trucksweb
dry.gif fakt glupi blad, ale i tak nie dziala- nie zapisuje mi danych z formularza ;/
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.