Gå til innhold

Hjelp med registreringssystem


Anbefalte innlegg

Hei.

 

Jeg driver og lager et påloggingsystem, og jeg lager en registreringsfunksjon.

 

Problemet mitt er at scriptet alltid retunerer med "brukeren finnes allerede". Kan dere se hva som er feil?

 

<?php
if (isset($_POST['brukernavn']))
{
 $brukernavn = mysql_real_escape_string($_POST['brukernavn']);
 $passord = mysql_real_escape_string($_POST['passord']);
 $fornavn = mysql_real_escape_string($_POST['fornavn']);
 $etternavn = mysql_real_escape_string($_POST['etternavn']);
 $tilgang = '4';

 include('funksjoner/connect.php');

 mysql_select_db("db", $con);

 $mysql_sporring = "SELECT * FROM brukere where brukernavn='$brukernavn'";
 $resultat   = mysql_query($mysql_sporring);

 if (mysql_affected_rows() == 0) 
 {
  $sql="INSERT INTO bruker (brukernavn, passord, fornavn, etternavn, tilgang)
  VALUES ('$brukernavn', '$passord', '$fornavn', '$etternavn', '$tilgang')";

  if (!mysql_query($sql,$con))
  {
die('Error: ' . mysql_error());
  }
  else echo "1 bruker er lagt til";
 }
 else echo 'brukeren finnes allerede';

 mysql_close($con);
}
else
{
echo '

<form action="index.php?side=registrer" method="post">
<table border="0">
<tr> 
<td>Brukernavn</td>
<td><input type="text" name="brukernavn"></td>
</tr>
<tr>
<td>Passord</td>
<td><input type="password" name="passord"></td>
</tr>
<tr>
<td>Fornavn</td>
<td><input type="text" name="fornavn"></td>
</tr>
<tr>
<td>Etternavn</td>
<td><input type="text" name="etternavn"></td>
</tr>
<tr>
<td><input type="submit" value="registrer"></td>
<td> </td>
</tr>
</table>
</form>
'; } ?>

Lenke til kommentar
Videoannonse
Annonse

Det er rart, jeg har nemmelig testa det og det fuker fint.

Prøv med:


$mysql_sporring = "SELECT * FROM table where blabal'";
 $resultat   = mysql_query($mysql_sporring) or 
 die (mysql_error());

 if (mysql_num_rows($resultat) == 1)
 {
 echo "FINNES";
 }
else 
{
echo " FINNES IKKE"
}
;

Lenke til kommentar
Gjest Slettet+142

Er det snakk om mange "or die( mysql_error() )" da, er det kanskje lurt å ha en funksjon for det, som sjekker en get-variabel eller lignende bare for å sjekke om mysql-errors skal printes ut. Er jo mye enklere å kunne kun endre på 1 variabel enn å måtte kommentere ut eller fjerne det for hvert sted den skal kjøres :)

 

 

function die_m(){
/*
#  $variabel = $_GET["verbose"]; // GET-variabel
#  $variabel = $_SESSION["verbose"]; // SESSION-variabel
#  $variabel = true; // eller false - satt manuelt i funksjonen
*/
$variabel = $_GET["verbose"];

if( $variabel == true ) die( mysql_error() );
die();
}

//Eksempelbruk:
$q = mysql_query("SELECT ...") or die_m();

Mulig at jeg tar feil også altså..

 

Lenke til kommentar

For å gjøre det enklere kan man lage sin egen query-funksjon.

 

//----------------
// Debug constant
// Set to 1 to enable debugging
//--------------

define( 'DEBUG', 0 );

function query( $query, $force_debug='0' )
{
 if( DEBUG == 1 or $force_debug == 1 )
 {
mysql_query( $query ) or die( "<textarea>" . mysql_error() . "</textarea>" );
 }
 else
 {
@mysql_query( $query ); // @ kan selvfølgelig sløyfes
 }
}
query( "SELECT bar FROM foo" );
query( "SELECT bar FROM foo", 1 );

Endret av M4rTiN
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...