Robię formularz rejestracji. Napisałem klasę, która będzie walidować dane. W każdym przypadku, gdy walidacja nie przebiega poprawnie dodaję zmienną (nie sesyjną tylko zwykłą) zawierającą informację o błędzie. Tą zmienną chcę później wyświetlić w formularzu, jeżeli walidacja nie przebiegnie poprawnie.
Plik z klasą będzie 'includowany' do pliku php zaweirającego formularz rejestracji - dlatego używam zwykłych zmiennych a nie sesyjnych. Wydawało mi się, że "include("plik.php") oznacza, że treść pliku, który includuję będzie tak jakby znajdować się w treści pliku, do którego wstawiam includowany plik - stąd nie ma potrzeby używania zmiennych sesyjnych.
Czy moje zrozumienie funkcji "include" jest prawidłowe? Jeżeli tak, to dlaczego treść zmiennych mi się nie wyświetla (w przypadku zdefiniowania zmiennych sesyjnych treść się wyświetla poprawnie).
PLIK z klasą (class_signup.php)
class Signup
{
public function validation($data)
{
$ok = true;
$email = $data['email'];
$pass = $data['password'];
//email validation
if( empty($email))
{
$ok = false;
$email_err = "Pole e-mail nie może być puste";
}
elseif ((filter_var($email, FILTER_VALIDATE_EMAIL)) ==false)
{
$ok = false;
$email_err = "Wprowadzono niepoprawny adres email";
}
//password validation
if( (strlen($pass)<5) || (strlen($pass)>20))
{
$ok = false;
$pass_err = "Hasło musić posiadać nie mniej niż 5 i nie więcej niż 20 znaków";
}
//t&C validation
if ((!isset($data['rules'])) || ($data['rules'] != "on"))
{
$ok = false;
$rules_err = "Potwierdź akceptację regulaminu";
}
}
}
PLIK z formularzem rejestracji
<?php
include ("classes/class_signup.php");
if( $_SERVER['REQUEST_METHOD']=="POST")
{
$sign = new Signup();
$sign->validation($_POST);
}
?>
...... i dalej
<form method="POST" action="">
<span class="big">Zarejestruj się</span><br>
Posiadanie konta jest w pełni darmowe.<br><br>
<input type="email" name="email" placeholder="Adres email" class="text"><br>
<?php
if( isset($email_err))
{
echo $email_err;
unset ($email_err);
}
?>
<br>
<input type="password" name="password" placeholder="Hasło" class="text"><br>
<?php
if( isset($pass_err))
{
echo $pass_err;
unset ($pass_err);
}
?>
<br>
<label><input type="checkbox" name="rules">Potwierdzam akceptację <a href="#">regulaminu</a></label><br>
<?php
if( isset($rules))
{
echo $rules;
unset ($rules);
}
?>
<br>
<input type="submit" value="Zarejestruj się" class="button1"><br><br>
</form>