Hey hey, ik heb het volgende script, gebruikers registreren zich en hun opgegeven informatie wordt dan verwerkt:
register.php
registerdone.php
Ik geef op de volgende manier dus de max. lengte van de username en password aan die worden opgegeven op de vorige pagina:
Probleem is dat dit absoluut geen effect heeft... de username en password worden gewoon in de database gepropt ook al zijn ze veel te lang.
Ik heb het ook al zo geprobeerd:
en nog een paar andere manieren, maar niets schijnt te werken. Zit er ergens een foutje in het script?
register.php
PHP:
<?
echo'
<form name="register" method="post" action="registerdone.php">
<input name="username" type="text" value="username" size="20"/><br>
<input name="password" type="text" value="password" size="20"/><br>
<input name="email" type="text" value="email" size="20"/><br>
<input type="hidden" value="'. $_SERVER['REMOTE_ADDR'] .'" name="ip"/>
<input type="submit" name="submit" value="submit"/>
<input type="reset" name="reset" value="reset"/>
</form>';
?>
registerdone.php
PHP:
<?
include("config.php");
$query = "SELECT username FROM users WHERE username='".$_POST[username]."'";
$result = mysql_query($query) or die('Error, query failed');
if (mysql_num_rows($result) == "1")
{
//Melding bij geen quotes in database
echo"<center>That username is already taken, please pick another one.</center><br><br>";
}
else
{
$query = "SELECT email FROM users WHERE email='".$_POST[email]."'";
$result = mysql_query($query) or die('Error, query failed');
if (mysql_num_rows($result) == "1")
{
//Melding bij geen quotes in database
echo"<center>That e-mail address is already in use, creating more than one account is not allowed.</center><br><br>";
}
else
{
$maxName = "20";
$maxPass = "10";
//Afbeelding controleren
$username = '".$_POST[username]."';
$password = '".$_POST[password]."';
if($username > $maxName || $password > $maxPass)
{
echo "<b>Your username and/or password are too long, click <a href='javascript:history.go(-1)' >here</a> to return.</b>";
}
else
{
$Query = "INSERT INTO users SET id = '', ip='".$_POST[ip]."', username='".$_POST[username]."', password='".$_POST[password]."', email='".$_POST['email']."'";
$Result = mysql_query($Query) or die (mysql_error());
echo "Account succesfully created!<br />
You can now use your username and password to log in.";
}
}
}
?>
Ik geef op de volgende manier dus de max. lengte van de username en password aan die worden opgegeven op de vorige pagina:
PHP:
$maxName = "20";
$maxPass = "10";
//Afbeelding controleren
$username = '".$_POST[username]."';
$password = '".$_POST[password]."';
if($username > $maxName || $password > $maxPass)
{
echo "<b>Your username and/or password are too long, click <a href='javascript:history.go(-1)' >here</a> to return.</b>";
Probleem is dat dit absoluut geen effect heeft... de username en password worden gewoon in de database gepropt ook al zijn ze veel te lang.
Ik heb het ook al zo geprobeerd:
PHP:
if('".$_POST[username]."' > 20 || '".$_POST[password]."' > 10)
{
echo "<b>Your username and/or password are too long, click <a href='javascript:history.go(-1)' >here</a> to return.</b>";
en nog een paar andere manieren, maar niets schijnt te werken. Zit er ergens een foutje in het script?