Gå til innhold

Registrerings script funker ikke


Anbefalte innlegg

Jeg har nå suttet omtrent en dag å prøvd å lage et vellykket registrerings script til hjemmesiden min.

 

Men jeg får det ikke til å funke, når jeg trykker på submit så funker ingen ting.

 

Og så lurer jeg på om det finnes noe anna rart der.

 

Gammel Kode

<?php

include "db_kobling.php";

function validemail($address)
{
   return preg_match("/^[a-zA-Z_\\-][\\w\\.\\-_]*[a-zA-Z0-9_\\-]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$/i", $address);
} 

if ($_SESSION['brukernavn'] == 1){
header("location:innlogga.php");
}else{

if(isset($HTTP_GET_VARS['submit'])){

	//Hente fra Form
	$brukernavn = $_POST['brukernavn'];
	$passord = $_POST['passord'];
	$epost = $_POST['epost'];
	$epost2 = $_POST['epost2'];

	//sikkerhet
	$brukernavn = stripslashes($brukernavn);
	$passord = stripslashes($passord);
	$epost = stripslashes($epost);
	$epost2 = stripslashes($epost2);

	//sikkerhet
	$brukernavn  = mysql_real_escape_string($brukernavn);
	$passord  = mysql_real_escape_string($passord);
	$epost  = mysql_real_escape_string($epost);
	$epost2  = mysql_real_escape_string($epost2);

	//lengde brukernavn og passord

	if (strlen($brukernavn) > 3){
		echo "Brukernavnet må være større enn 3 tegn";
		exit();
	}elseif (strlen($brukernavn) < 20){
		echo "Brukernavnet må være mindre enn 20 tegn";
		exit();
	}

	if (strlen($passord) > 3){
		echo "Passordet ditt må være større enn 3 tegn";
		exit();
	}elseif (strlen($passord) < 15){
		echo "Passordet ditt må være mindre enn 15 tegn";
		exit();
	}

	//Sjekke om E-post og epost2 er like

	if ($epost != $epost2){
		echo "e-post addressene passer ikke";
		exit();
	}

	//validere mail
	if (validemail($epost)){

	}else{
		echo "Ugyldig E-post";
		exit();
	}

	//sjekk om brukernavn og epost er registret
$sql_epost_sjekk = mysql_query("SELECT epost FROM brukere 
           WHERE epost='$epost'"); 
$sql_brukernavn_sjekk = mysql_query("SELECT brukernavn FROM brukere 
           WHERE brukernavn='$brukernavn'"); 

$epost_sjekk = mysql_num_rows($sql_epost_sjekk); 
$brukernavn_sjekk = mysql_num_rows($sql_brukernavn_sjekk); 

if(($epost_sjekk > 0) || ($brukernavn_sjekk > 0)){ 
   echo "Det har oppstått en feil..<br />"; 
   if($epost_sjekk > 0){ 
echo "Eposten er allerede registrert!";

exit();
       unset($epost); 
   } 
   if($brukernavn_sjekk > 0){ 
       echo "Brukernavnet er allerede i bruk!";
	exit(); 
       unset($brukernavn); 
   } 
}

$reg = mysql_query("INSERT INTO 'brukere' ('id', 'brukernavn', 'passord', 'epost', 'ip', 'registrert') VALUES ('', '$brukernavn', '$passord', '$epost')");

if ($reg){
echo "Du er registrert";
}	





}else{
?>
<table style="width:300px">
<form name="form1" method="post" action="registrer.php">
<tr><th colspan="2">Registrer</th></tr>
<tr>
<td>Brukernavn:</td>
<td><input name="brukernavn" type="text" /></td>
</tr>
<tr>
<td>Passord:</td>
<td><input name="passord" type="text" /></td>
</tr>
<tr>
<td>Epost:</td>
<td><input name="epost" type="text" /></td>
</tr>
<tr>
<td>Gjenta Epost:</td>
<td><input name="epost2" type="text" /></td>
</tr>
<tr><td colspan="2"><input name="submit" type="submit" value="Regsitrer" /></td></tr>
</form>
</table>
<?php
}
}
?>

 

NY Kode

<?php

include "db_kobling.php";

function validemail($address)
{
return preg_match("/^[a-zA-Z_\\-][\\w\\.\\-_]*[a-zA-Z0-9_\\-]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$/i", $address);
}

if ($_SESSION['brukernavn'] == 1){
header("location:innlogga.php");
}else{

if(isset($_POST['submit'])){

//Hente fra Form
$brukernavn = $_POST['brukernavn'];
$passord = $_POST['passord'];
$epost = $_POST['epost'];
$epost2 = $_POST['epost2'];

//sikkerhet
$brukernavn = stripslashes($brukernavn);
$passord = stripslashes($passord);
$epost = stripslashes($epost);
$epost2 = stripslashes($epost2);

//sikkerhet
$brukernavn = mysql_real_escape_string($brukernavn);
$passord = mysql_real_escape_string($passord);
$epost = mysql_real_escape_string($epost);
$epost2 = mysql_real_escape_string($epost2);

//lengde brukernavn og passord

if (strlen($brukernavn) < 3){
echo "Brukernavnet må være større enn 3 tegn";
exit();
}elseif (strlen($brukernavn) > 20){
echo "Brukernavnet må være mindre enn 20 tegn";
exit();
}

if (strlen($passord) < 3){
echo "Passordet ditt må være større enn 3 tegn";
exit();
}elseif (strlen($passord) > 15){
echo "Passordet ditt må være mindre enn 15 tegn";
exit();
}

//Sjekke om E-post og epost2 er like

if ($epost != $epost2){
echo "e-post addressene passer ikke";
exit();
}

//validere mail
if (validemail($epost)){

}else{
echo "Ugyldig E-post";
exit();
}

//sjekk om brukernavn og epost er registret
$sql_epost_sjekk = mysql_query("SELECT epost FROM brukere
WHERE epost='$epost'");
$sql_brukernavn_sjekk = mysql_query("SELECT brukernavn FROM brukere
WHERE brukernavn='$brukernavn'");

$epost_sjekk = mysql_num_rows($sql_epost_sjekk);
$brukernavn_sjekk = mysql_num_rows($sql_brukernavn_sjekk);

if(($epost_sjekk > 0) || ($brukernavn_sjekk > 0)){
echo "Det har oppstått en feil..<br />";
if($epost_sjekk > 0){
echo "Eposten er allerede registrert!";

exit();
unset($epost);
}
if($brukernavn_sjekk > 0){
echo "Brukernavnet er allerede i bruk!";
exit();
unset($brukernavn);
}
}

$reg = mysql_query("INSERT INTO 'brukere' ('brukernavn', 'passord', 'epost', 'ip') VALUES ('', '$brukernavn', '$passord', '$epost')");

if ($reg){
echo "Du er registrert";
}





}else{
?>
<table style="width:300px">
<form name="form1" method="post" action="registrer.php">
<tr><th colspan="2">Registrer</th></tr>
<tr>
<td>Brukernavn:</td>
<td><input name="brukernavn" type="text" /></td>
</tr>
<tr>
<td>Passord:</td>
<td><input name="passord" type="text" /></td>
</tr>
<tr>
<td>Epost:</td>
<td><input name="epost" type="text" /></td>
</tr>
<tr>
<td>Gjenta Epost:</td>
<td><input name="epost2" type="text" /></td>
</tr>
<tr><td colspan="2"><input name="submit" type="submit" value="Regsitrer" /></td></tr>
</form>
</table>
<?php
}
}
?>

 

Hva er feilen der, når jeg trykker submit kommer det bare opp blankt skjerm, ingen ting er skrevt inn i databasen heller.

Endret av sjotto
Lenke til kommentar
Videoannonse
Annonse

han får antagelig opp formen på nytt.

 

if(isset($HTTP_GET_VARS['submit'])){

 

denne linjen vil aldri bli sann. når du poster et form får php post variabler. denne linjen ser etter get variabler. dessuten er $HTTP_GET_VARS og $HTTP_POST_VARS gammelt og uforetrukket.

 

endre til

 

if (isset($_POST['submit'])) {

Lenke til kommentar

Du har en del feil:

if (strlen($brukernavn) > 3){
echo "Brukernavnet må være større enn 3 tegn";
exit();
}elseif (strlen($brukernavn) < 20){
echo "Brukernavnet må være mindre enn 20 tegn";
exit();
}

Her skal vel alle sammenligninger være motsatt. Det samme gjelder der du sjekker lengden av passord.

 

$reg = mysql_query("INSERT INTO 'brukere' ('id', 'brukernavn', 'passord', 'epost', 'ip', 'registrert') VALUES ('', '$brukernavn', '$passord', '$epost')");

Denne spørringen vil feile pga at 'ip' og 'registrert' ikke får noen verdi. Dessuten er vel 'id' autoinkrementert? ingen vits i å angi den.

 

En siste ting å pirke på er at bruk av tabeller i layouten er utgått på dato. Du bør heller benytte css.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...