Cześć,
Czy ktoś wie z jakiego powodu nie wyświetlają mi się polskie znaki w zmiennych sesyjnych wyświetlanych podczas nieprawidłowych danych podanych w rejestracji?
Mam plik główny register.php, kodowany w UTF-8 - jest to plik z formularzem do wypełnienia.
<?php
session_start();
?>
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="utf-8">
<title> Strona Logowania</title>
<meta name="description" content=".">
<meta http-equiv="X-Ua-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
...
...
...
<div class="login_f">
<h2>Nie masz konta? Zarejestruj się!</h2><hr>
<form action="./php/register.php" method="post">
<p><label for="r_login">Nazwa użytkownika:</label><br/>
<input type="text" name="r_login" /><br/>
<?php
if( isset($_SESSION['login_e']))
{
echo '<span class="red">'.$_SESSION['login_e'].'</span><br>';
unset($_SESSION['login_e']);
}
if( isset($_SESSION['login_e_l']))
{
echo '<span class="red">'.$_SESSION['login_e_l'].'</span><br>';
unset($_SESSION['login_e_l']);
}
?>
<label for="r_pass">Hasło:</label><br/>
<input type="password" name="r_pass" />
<?php
if( isset($_SESSION['pass_e']))
{
echo '<span class="red">'.$_SESSION['pass_e'].'</span>';
unset($_SESSION['pass_e']);
}
?>
<label for="r_pass2">Powtórz hasło:</label><br/>
<input type="password" name="r_pass2" />
<label for="r_email">E-mail:</label><br/>
<input type="email" name="r_email" /><br/><br>
<input class="check" type="checkbox" name="r_rules" />
<label for="r_rules"> Potwierdzam akceptację <a href="#">regulaminu</a></label><br></p>
<input type="submit" value="Zarejestruj się" class="submit" />
<form>
W innym folderze mam plik register.php m.in walidujący dane:
<?php
session_start();
//Validation of data from registration form
if( isset($_POST['r_login']))
{
$validation=true;
//login
$login=$_POST['r_login'];
if (ctype_alnum($login)!=true)
{
$validation=false;
$_SESSION['login_e']="Nazwa użytkownika powinna zawierać wyłącznie litery lub cyfry";
header('Location:../register.php');
}
if( (strlen($login)<5)||(strlen($login)>15))
{
$validation=false;
$_SESSION['login_e_l'] ="Nazwa użytkownika powinna zawierać od 5 do 15 znaków";
header('Location:../register.php');
}
//password
$pass=$_POST['r_pass'];
if( (strlen($pass)<5)||(strlen($pass)>15))
{
$validation=false;
$_SESSION['pass_e']="Hasło powinno zawierać od 5 do 15 znaków";
header('Location:../register.php');
}
}
?>
Program zwraca zmienne sesyjne ale nie wyświetla polskich znaków...:
Wie ktoś może gdzie popełniłem błąd?
Pozdrawiam,