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

Kurs PHP odc. 3: Formularz rejestracji - Problem ze znakami alfanumetycznymi

Mały hosting, OGROMNE możliwości
0 głosów
455 wizyt
pytanie zadane 13 lipca 2017 w PHP przez Daniel13 Początkujący (250 p.)

Witam,

Właśnie przerabiam odc. 3 kursu PHP P. Mirosława Zelenta. Zatrzymałem sie na ok. 38 min filmu https://youtu.be/fMJw90n8M60?t=38m55s, ponieważ wpisując w nicku znaki specjalne tj. <b>janek</b> to pokazuje mi udaną walidację. Poza tym podczas odświeżania strony od razu pokazuje mi komunikat "Nick może składać się tylko z liter i cyfr (bez polskich znaków)". Chyba gdzieś źle postawiłem klamry w if'ach, ale nie potrafię się doszukać. Poniżej kod z rejestracja.php

<?php

session_start();

if(isset($_POST['email']))
{
	// udana walidacja? Załóżmy ze tak!
	$wszystko_OK=true;
	// Sprawdz nickname
	$nick = $_POST['nick'];
	
	//Sprawdzenie dlugosci nicka
	if((strlen($nick)<3) || (strlen($nick)>20))
	{
		$wszystko_OK=false;
		$_SESSION['e_nick']="Nick musi posiadac od 3 do 20 znaków!";
	}
	
	if(ctype_alnum($nick)==false)
	{
		$wszsytko_OK=false;
		$_SESSION['e_nick']="Nick może składać się tylko z liter i cyfr (bez polskich znaków)";
	}
	
	
	
	if($wszystko_OK==true)
	{
		// hurra wszystkie testy zaliczone, dodajemy gracza do bazy
		echo "Udana walidacja"; exit();
		
	}
	
}

?>
<!DOCTYPE HTML>
<html land="pl">
<head>
	<meta charset="utf-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
	<title> Osadnicy - załóż darmowe konto</title>
	
	<script src='https://www.google.com/recaptcha/api.js'></script>
	<style>
	.error
	{
		color:red;
		magin-top: 10px;
		margin-bottom: 10px;
	}
	</style>
	
	</head>
	
	<body>
	<form method="post"> 
	
	Nickname: <br/> <input type="text" name="nick"/><br/>
	
	<?php
	
	if(isset($_SESSION['e_nick']))
		
		{
			echo '<div class="error">'.$_SESSION['e_nick'].'</div>';
			unset($_SESSION['e_nick']);
		}
	
	?>
	
	E-mail: <br/> <input type="text" name="email"/><br/>
	
	Twoje hasło: <br/> <input type="password" name="haslo1"/><br/>
	
	Powtórz hasło: <br/> <input type="password" name="haslo2"/><br/>
	<label>
	<input type="checkbox" name="regulamin"/> Akceptuje regulamin
	</label>
	<div class="g-recaptcha" data-sitekey="6Ldg8CgUAAAAAJ47v9ErRDlB2OnaaMLQCE0oHMvJ"></div>
	<br/>
	<input type="submit" value="Zarejestruj się"/>
	
	
	</form>
	
	</body>
	</html>

Proszę o wskazówki co źle zrobiłem.

Pozdrawiam,
Daniel

 

1 odpowiedź

0 głosów
odpowiedź 13 lipca 2017 przez Chess Szeryf (76,730 p.)
wybrane 13 lipca 2017 przez Daniel13
 
Najlepsza

Zapewne wpisałeś jakieś dane w jakieś pole i po naciśnięciu F5 są one ciągle wysyłane ponownie i otrzymujesz odpowiedź. Wyłącz kartę, gdzie masz tę stronę i włącz ją ponownie.

Masz tzw. "literówkę", czyli pomyliłeś się wpisując nazwę zmiennej.

Nie:

 $wszsytko_OK=false;

Tylko:

$wszystko_OK=false;

 

komentarz 13 lipca 2017 przez Daniel13 Początkujący (250 p.)
Tak jest! Dziękuję za odpowiedź :)

Podobne pytania

0 głosów
1 odpowiedź 1,239 wizyt
+1 głos
2 odpowiedzi 804 wizyt
pytanie zadane 11 stycznia 2019 w PHP przez sebol304 Początkujący (290 p.)
0 głosów
1 odpowiedź 1,303 wizyt

93,719 zapytań

142,631 odpowiedzi

323,263 komentarzy

63,266 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...