• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP a brak polskich znaków

VPS Starter Arubacloud
0 głosów
131 wizyt
pytanie zadane 14 listopada 2022 w PHP przez zbiku25 Gaduła (3,000 p.)

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,

1 odpowiedź

+3 głosów
odpowiedź 14 listopada 2022 przez SzkolnyAdmin Szeryf (88,580 p.)
wybrane 14 listopada 2022 przez zbiku25
 
Najlepsza
Działa bez zarzutu. Masz coś z kodowaniem plików - sprawdź w edytorze i ewentualnie przekoduj na utf-8 bez BOM.
komentarz 14 listopada 2022 przez zbiku25 Gaduła (3,000 p.)

Masz rację - jeden z plików był zakodowany w ANSI.

Swoją drogą, która opcja w Notepad++ to kodowanie bez bom:

koduj w UTF-8

czy

koduj w UTF-8-BOM

?

2
komentarz 14 listopada 2022 przez SzkolnyAdmin Szeryf (88,580 p.)
edycja 14 listopada 2022 przez SzkolnyAdmin
Samo UTF-8.

Podobne pytania

0 głosów
1 odpowiedź 1,466 wizyt
pytanie zadane 16 marca 2018 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
0 głosów
1 odpowiedź 3,364 wizyt
pytanie zadane 22 lutego 2018 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
0 głosów
1 odpowiedź 461 wizyt
pytanie zadane 21 maja 2018 w PHP przez szachovy Początkujący (270 p.)

92,963 zapytań

141,928 odpowiedzi

321,161 komentarzy

62,297 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...