Gå til innhold

[løst selv]Trenger litt hjelp med mitt registreringssytem


Anbefalte innlegg

Jeg har litt problemer med brukerregistreringen jeg jobber med nå..

 

Feil meldingene vil ikke vises :s

 

Kan dere se i koden min under å forklare meg hva jeg har gjort det feil ?

 

<?php

if(array_key_exists('registrer', $_POST)) {

 $brukernavn = $_POST['bruker'];
 $passord = $_POST['pass'];
 $passord2 = $_POST['passord2'];
 $email = $_POST['email'];

 $regdato = date("d, m, y || H:i:s");
 $ip = $_SERVER['REMOTE_ADDR'];


 //brukernavn
 if(empty($brukernavn)) {
	 $error['bruker'] = 'Du fylte ikke inn et brukernavn!';
 }
 if(strlen($brukernavn) < 3) {
	 $error['bruker'] = 'Brukernavnet må inneholde minst 3 tegn!';
 }
 if(strlen($brukernavn) > 20) {
	 $error['bruker'] = 'Brukernavnet kan ikke inneholde mer enn 20 tegn!';
 }

 //passord
 if(empty($passord) || empty($passord2)) {
	 $error['pass'] = 'Du fylte ikke inn begge passord-feltene!';
 }
 if(strlen($passord) || strlen($passord2) < 5) {
	 $error['pass'] = 'Passordet må inneholde mindre enn 5 tegn!';
 }
 if(strlen($passord) || strlen($passord2) > 20) {
	 $error['pass'] = 'Passordet kan ikke inneholde mer enn 20 tegn!';
 }

 //mail
 if(empty($email)) {
	 $error['email'] = 'Du fylte ikke inn en e-mail!';
 }
 $monster = '/^[^@]+@[^\s\r\n\'";,@%]+$/';
 if(!preg_match($monster, trim($email))) {
	 $error['email'] = 'Mailen du skrev inn er ikke gyldig!';
 }

 if(!$error) {
	 mysql_connect("$host", "$bruker", "$pass"); mysql_select_db($db);
	 $regi = "INSERT INTO brukere (id, bruker, nick, pass, rank, peng, gjeng, liv, gunner, beskytt, fritekst, kills, krim, gta, oc, bosted, livopp, reis, bank, tidbank, online, moderator, datoreg, email, ip) 
	 VALUES('', '$brukernavn', '$passord', '100', '1000000', '0', '100', '0', '0', '', '0', '0' ,'0', '0', '0', 'Oslo', '0', '0', '5000000', '0', '0', '0', '$regdato', '$email', '$ip'";
	 $ok = mysql_query($regi) or die (mysql_error());

	 echo 'Din brukerkonto er nå registrert hos oss, og du kan nå logge inn!';
 }

}
else {
if (isset($error['bruker'])) {
echo "<span class=\"error\">".$error['bruker']."</span>";
}

?>

<form action="" method="post">
<table align="center" width="400" style="margin-top:50px;">
 <tr>
 <td width="150">Ønsket brukernavn:</td>
 <td><input type="text" name="bruker" /></td></tr>
 <tr>
 <td width="150">Ønsket passord:</td>
 <td><input type="password" name="pass" /></td></tr>
 <tr>
 <td width="150">Passord igjen:</td>
 <td><input type="password" name="passord2" /></td></tr>
 <tr>
 <td width="150">Din e-mail:</td>
 <td><input type="text" name="email" /></td></tr>
 <tr>
 <td> </td><td><input type="submit" name="registrer" value=" Fullfør Registreringen " /></td></tr>
</table>
</form>
<?php } ?>

Endret av creAtiive
Lenke til kommentar
Videoannonse
Annonse
if(strlen($passord) || strlen($passord2) < 5) {
	$error['pass'] = 'Passordet må inneholde mindre enn 5 tegn!';
}
if(strlen($passord) || strlen($passord2) > 20) {
	$error['pass'] = 'Passordet kan ikke inneholde mer enn 20 tegn!';
}

 

Prøv dette i stedet.

if(strlen($passord) <5 || strlen($passord2) < 5) {
	$error['pass'] = 'Passordet må inneholde mindre enn 5 tegn!';
}
if(strlen($passord) > 20 || strlen($passord2) > 20) {
	$error['pass'] = 'Passordet kan ikke inneholde mer enn 20 tegn!';
}

Dessuten bør du bruke mysql_real_escape_string() før du bruker inndata i spørringen din for å beskytte mot sql injection.

Lenke til kommentar

Hehe, jeg fant jeg fant :p

 

  if(strlen($passord) || strlen($passord2) < 5) {
	$error['pass'] = 'Passordet må inneholde mindre enn 5 tegn!';

 

Riktignok bare en skriveleif(regner med det skal være mer enn 5 tegn, og mindre enn 20).

Endret av kpolberg
Lenke til kommentar

Ser jeg har vel ikke svart akkurat på det du spurte om. Nedenfor er et lite sammendrag av programflyten i koden din:

<?php

if(array_key_exists('registrer', $_POST)) {
// feilsjekking og registrering
}
else {
if (isset($error['bruker'])) {
echo "<span class=\"error\">".$error['bruker']."</span>";
}
// Vis skjema
?>

 

Årsaken til at feilmeldingene ikke vises er at du skriver dem ut sammen med skjemaet, og skjemaet skrives kun ut dersom det ikke er sendt inn fra før.

Lenke til kommentar

Jeg fikset det selv igårnatt :)

 

Men, takk for svarene :love:

 

 

 

 

<?php

 

if(array_key_exists('registrer', $_POST)) {

$brukernavn = mysql_real_escape_string($_POST['bruker31']);

$passord = mysql_real_escape_string($_POST['pass3']);

$email = mysql_real_escape_string($_POST['email']);

 

$regdato = date("d, m, y || H:i:s");

$ip = $_SERVER['REMOTE_ADDR'];

 

 

//brukernavn

if(empty($brukernavn)) {

$error['bruker'] = 'Du fylte ikke inn et brukernavn!';

}

if(strlen($brukernavn) < 3) {

$error['bruker'] = 'Brukernavnet må inneholde minst 3 tegn!';

}

if(strlen($brukernavn) > 20) {

$error['bruker'] = 'Brukernavnet kan ikke inneholde mer enn 20 tegn!';

}

 

$sjekk = mysql_query("SELECT * FROM brukere WHERE `nick`='$brukernavn'");

$tell = mysql_num_rows($sjekk);

if($tell > 0) {

$error['bruker'] = 'Brukernavnet er <u>opptatt</u>! Venligst velg et annet.';

}

 

//passord

if(empty($passord)) {

$error['pass'] = 'Du fylte ikke inn passord-feltet!';

}

if(strlen($passord) < 5) {

$error['pass'] = 'Passordet må inneholde mer enn 5 tegn!';

}

if(strlen($passord) > 100) {

$error['pass'] = 'Passordet kan ikke inneholde mer enn 100 tegn!';

}

 

//mail

if(empty($email)) {

$error['email'] = 'Du fylte ikke inn en e-mail!';

}

$monster = '/^[^@]+@[^\s\r\n\'";,@%]+$/';

if(!preg_match($monster, trim($email))) {

$error['email'] = 'Mailen du skrev inn er ikke gyldig!';

}

 

if(!$error) {

$regi = "INSERT INTO brukere (id, nick, pass, rank, peng, gjeng, liv, gunner, beskytt, fritekst, kills, krim, gta, oc, bosted, livopp, reis, bank, tidbank, online, moderator, datoreg, email, ip)

VALUES('', '$brukernavn', '" . md5($passord) . "', '100', '1000000', '0', '100', '0', '0', '', '0', '0' ,'0', '0', '0', 'Oslo', '0', '0', '5000000', '0', '0', '$regdato', '$email', '$ip')";

$ok = mysql_query($regi) or die (mysql_error());

 

 

}

}

if(isset($ok)) {

?>

<span class="velykket"><a href="index.php">Din brukerkonto er nå registrert hos oss, og du kan nå logge inn!</a></span>

<?php

}

else {

 

if (isset($error['bruker'])) {

echo "<span class=\"error\">".$error['bruker']."</span>";

}

if (isset($error['pass'])) {

echo "<span class=\"error\">".$error['pass']."</span>";

}

if (isset($error['email'])) {

echo "<span class=\"error\">".$error['email']."</span>";

}

 

 

?>

 

<form action="" method="post">

<table align="center" width="400" style="margin-top:50px;">

<tr>

<td width="150">Ønsket brukernavn:</td>

<td><input type="text" name="bruker31" <?php if(isset($error)) {echo "value=\"$brukernavn\"";} ?> /></td></tr>

<tr>

<td width="150">Ønsket passord:</td>

<td><input type="password" name="pass3" <?php if(isset($error)) {echo "value=\"$passord\"";} ?> /></td></tr>

<tr>

<td width="150">Din e-mail:</td>

<td><input type="text" name="email" <?php if(isset($error)) {echo "value=\"$email\"";} ?> /></td></tr>

<tr>

<td> </td><td><input type="submit" name="registrer" value=" Fullfør Registreringen " /></td></tr>

</table>

</form>

<?php } ?>

 

 

Endret av creAtiive
Lenke til kommentar
if (isset($error['bruker'])) {

echo "<span class=\"error\">".$error['bruker']."</span>";

}

if (isset($error['pass'])) {

echo "<span class=\"error\">".$error['pass']."</span>";

}

if (isset($error['email'])) {

echo "<span class=\"error\">".$error['email']."</span>";

}

 

Eller:

if (isset($error)) {
foreach($error as $errortext) {
	echo "<span class=\"error\">$errortext</span>";
}
}

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...