<?php

if (isset($_POST['uname']) && isset($POST['password']))

//function validate($data)
//{
//$data = trim($data);
//$data = stripslashes($data);
//$data = htmlspecialchars($data);
//return $data;
//}
{
	$uname = $_POST['uname'];
	$pass = $_POST['password'];

	if (empty($uname))
	 	{
			header("location: index.php?error=User Name is required");
			exit();
		}
			else if (empty($pass))
			{
				header("location: index.php?error=Password is required");
				exit();
			}
				else
				{
					echo "Valid input";
				}
	else
	{
		header("location: index.php");
		exit();
	}
}

?>


Foutmelding


Parse error: syntax error, unexpected 'else' (T_ELSE) in C:\USB WebServer\root\Youtube3\login.php on line 30

IK zie hem niet. Wie Wel?

En nu denk ik zo maar dat op de index.php pagina staat

echo $_GET['error']

Dus als ik jou een mailtje stuur met de link

http://example.com/index.php?error=een hele lap tekst met ergens <a href="">link</a> er in
of
http://example.com/index.php?error=Alle gebruikers moeten hun account bevestigen <link naar evil site>

Dan kun jij zo maar een lek in je eigen site bouwen.

Áls je dat als doet: index.php?error=3
en dan zelf in een lijstje hebben wat foutmelding 3 is (ook in het Engels of Duits etc)
Ik zie vaker dat mensen een redirect doen na een bepaalde error. Maar ik zie het nut er niet van in.
Waarom zou je ze doorsturen? Je kan dit toch prima op dezelfde pagina afvangen?

Als gebruiker zou ik het hinderlijk vinden om steeds op back te moeten drukken als je fouten bij het invullen maakt. (Je weet immers nooit of een username al bestaat, ook al ben je scherp met het invullen van het formulier).
Ik zou inderdaad de fouten verzamelen en boven het formulier opnieuw tonen.

En het formulier direct vullen met de ingevoerde (foute) data

Leuker nog: controleer vooraf de data met javascript zodat je nog voor het submitten al gefilterd hebt.
Maar dan nog steeds ook achteraf om te voorkomen dat iemand een route vindt om de data toch te submitten.

Reageren