pisze sobie rejestracje z walidacja formularza. o ile walidacja dziala ok to juz z rejestracja jest problem:/
cos nie dziala:
wywala blad:
<?php
ERRNO: 8 TEKST: Undefined variable: user_name LOKALIZACJA: ../validate.class.php, linia 68
?>
<?php
require_once ('error_handler.php');
require_once ('config.php');
class Validate
{
private $mMysqli;
function __construct()
{
$this->mMysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
}
function __destruct()
{
$this->mMysqli->close();
}
public function ValidateAJAX($inputValue, $fieldID)
{
switch($fieldID)
{
// sprawdza poprawność nazwy użytkownika
case 'txtUsername':
return $this->validateUserName($inputValue);
break;
// sprawdza poprawność adresu email
case 'txtEmail':
return $this->validateEmail($inputValue);
break;
}
}
// sprawdza, czy wypełnione są wszystkie pola
public function ValidatePHP()
{
// flaga błędu zostaje ustawiona na 1, jeśli wystąpi błąd
$errorsExist = 0;
// czyści flagi błędów w sesji
if (isset($_SESSION['errors'])) unset($_SESSION['errors']); // domyślnie wartości pól są uznane za poprawne
$_SESSION['errors']['txtUsername'] = 'hidden';
$_SESSION['errors']['txtEmail'] = 'hidden';
// weryfikuje nazwę użytkownika
if (!$this->validateUserName($_POST['txtUsername']))
{
$_SESSION['errors']['txtUsername'] = 'error';
$errorsExist = 1;
}
// weryfikuje email
if (!$this->validateEmail($_POST['txtEmail']))
{
$_SESSION['errors']['txtEmail'] = 'error';
$errorsExist = 1;
}
// jeśli nie znaleziono błędów, to ustawia wartość pomyślnej weryfikacji
if ($errorsExist == 0)
{
// usuwa znaki specjalne przez dodaniem wiadomości do bazy
$user_name = $this->mMysqli->real_escape_string($user_name);
$user_email = $this->mMysqli->real_escape_string($user_emai);
// tworzy zapytanie SQL, które dodaje nową wiadomość do serwera
$query = 'INSERT INTO chat_users(user_name,user_email) ' .
'VALUES (NOW(), "' . $user_name . '" , "' . $user_email . '")';
$result = $this->mMysqli->query($query);
}
else
{
// jeśli są błędy, zapisuje wprowadzone dane
foreach ($_POST as $key => $value)
{
$_SESSION['values'][$key] = $_POST[$key];
}
return 'index.php';
}
}
// weryfikacja nazwy użytkownika, nie może być pusta lub już rejestrowana
private function validateUserName($value)
{
// przycięcie spacji początkowych i końcowych oraz zmiana znaków na kod
$value = $this->mMysqli->real_escape_string(trim($value)); // pusta nazwa użytkownika nie jest poprawna
if ($value == null)
return 0; // niepoprawna nazwa
// sprawdza czy użytkownik nie występuje już w bazie
$query = $this->mMysqli->query('SELECT user_name FROM chat_users ' .
'WHERE user_name="' . $value . '"');
if ($this->mMysqli->affected_rows > 0)
return '0'; // niepoprawna nazwa
else
return '1'; // poprawna nazwa
}
// weryfikuje email
private function validateEmail($value)
{
// poprawne formaty email: *@*.*, *@*.*.*, *.*@*.*, *.*@*.*.*)
//return (!eregi('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$', $value)) ? 0 : 1;
if ($value == null)
return 0; // niepoprawna nazwa
// sprawdza czy użytkownik nie występuje już w bazie
$query = $this->mMysqli->query('SELECT user_email FROM chat_users ' .
'WHERE user_email="' . $value . '"');
if ($this->mMysqli->affected_rows > 0)
return '0'; // niepoprawna nazwa
else
return '1'; // poprawna nazwa
}
}
?>