Avatar billede viccer Nybegynder
27. juni 2006 - 17:04 Der er 3 kommentarer og
1 løsning

tjekke om bruger findes i forvejen..

Hey, jeg har en side hvor man kan oprette sig som brugere der virker, mit problem er at man ikke må kunne oprette samme brugernavne..

jeg har scriptet, men det virker ik.. den kommer ikke med fejlmeddelser eller noget, den submitter bare og lægger brugeren ind i databasen selv om brugernavnet eksisterer i forvejen..

<?php
$fornavn=$_POST['fnavn'];
$efternavn=$_POST['enavn'];
$vejnavn=$_POST['vejnavn'];
$bynavn=$_POST['bynavn'];
$postnr=$_POST['postnr'];
$bruger=$_POST['brugernavn'];
$pass=$_POST['password'];
$pass2=$_POST['password2'];
$telefon=$_POST['telefon'];


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


mysql_connect ('localhost', 'root', '');
mysql_select_db ('pizza');
$query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) ";
$result=mysql_query($query);
echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen";
exit();

} // submit slut
?>
<?php

mysql_connect ('localhost','root', '');
mysql_select_db ('pizza');
$query="SELECT brugernavn FROM users WHERE brugernavn ='$bruger'";
$result=mysql_query($query);
if (mysql_num_rows($result)==1){
                $message .="Dette brugernavn er allerede i brug, prøv et nyt!";
                $bn=FALSE;
}else{
                $bn=TRUE;
}

?>

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

      <table>
      <tr>
        <td>Fornavn: </td>
        <td><input type="text" name="fnavn" id="fnavn" maxlength="15" value=""/></td>
      </tr>
      <tr>
        <td>Efternavn: </td>
        <td><input type="text" name="enavn" maxlength="30" value=" "/> </td>
      </tr>
      <tr>
        <td>Vejnavn: </td>
        <td><input type="text" name="vejnavn" maxlength="30" value=""/></td>
      </tr>
      <tr>
        <td>By: </td>
        <td><input type="text" name="bynavn" maxlength="30"  value=""/></td>
      </tr>
      <tr>
        <td>Postnummer: </td>
        <td><input type="text" name="postnr" size="4" maxlength="4" value=""/> </td>
      </tr>
      <tr>
        <td>Ønsket brugernavn: </td>
        <td><input type="text" name="brugernavn" maxlength="15" value=" "/> </td>
      </tr>
      <tr>
        <td>Password: </td>
        <td><input type="password" name="password" maxlength="15" value=""/> </td>
      </tr>
      <tr>
        <td>Gentag password: </td>
        <td><input type="password" name="password2" maxlength="15" value=""/> </td>
      </tr>
      <tr>
        <td>Evt. telefonnummer: </td>
        <td><input type="text" name="telefon" maxlength="8" value=""/> </td>
      </tr>
      <tr>
        <td></td>
        <td><input name="Submit" type="submit" value="Opret bruger" /></td>
      </tr>
      </table>

      </form>

jeg har tjekket andre spørgsmål herinde, men ingen hjalp..
please kig på det, det er garenteret bare en grim dummerfejl..
Avatar billede coderdk Praktikant
27. juni 2006 - 17:50 #1
Du kan ændre:

if (isset ($_POST['Submit'])){
mysql_connect ('localhost', 'root', '');
mysql_select_db ('pizza');
$query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) ";
$result=mysql_query($query);
echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen";
exit();

} // submit slut

til:

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


mysql_connect ('localhost', 'root', '');
mysql_select_db ('pizza');
$query="INSERT IGNORE INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) ";
$result=mysql_query($query);
if ( mysql_affected_rows() > 0 )
{
  echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen";
  exit();
}
else
{
  echo "Brugeren findes i forvejen!";
  exit;
}

} // submit slut

Bemærk dog at det KUN vil virke, hvis du har en unique/primary constraint på brugernavnet :P

Ellers skal du ændre:

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


mysql_connect ('localhost', 'root', '');
mysql_select_db ('pizza');
$query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) ";
$result=mysql_query($query);
echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen";
exit();

} // submit slut
?>
<?php

mysql_connect ('localhost','root', '');
mysql_select_db ('pizza');
$query="SELECT brugernavn FROM users WHERE brugernavn ='$bruger'";
$result=mysql_query($query);
if (mysql_num_rows($result)==1){
                $message .="Dette brugernavn er allerede i brug, prøv et nyt!";
                $bn=FALSE;
}else{
                $bn=TRUE;
}


til:

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

mysql_connect ('localhost','root', '');
mysql_select_db ('pizza');
$query="SELECT brugernavn FROM users WHERE brugernavn ='$bruger'";
$result=mysql_query($query);
if (mysql_num_rows($result)==1){
                $message .="Dette brugernavn er allerede i brug, prøv et nyt!";
                $bn=FALSE;
}else{
                $bn=TRUE;
}

if ( $bn )
{
mysql_connect ('localhost', 'root', '');
mysql_select_db ('pizza');
$query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) ";
$result=mysql_query($query);
echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen";
exit();
}
} // submit slut
?>
<?php
Avatar billede viccer Nybegynder
27. juni 2006 - 19:01 #2
Den skal selvfølgelig tjekke om navnet eksisterer før den submitter så den er jeg helt med på..
Og jeg var faktisk sikker på det var det da jeg prøvede.. men problemet er detsamme, den lægger den bare ind i databsen uden noget ellers.. jeg ved ikke hvordan man sætter den der primary constrain, eller om jeg kan.. sidder og bruger en wamp server..
har også prøvet at kopiere din ind, og det er desamme..
Irriterende at den ikke bare kan fortæle der er fejl..!!
Avatar billede viccer Nybegynder
28. juni 2006 - 17:38 #3
har fundet ud af det selv, tak for indsatsen:)
Avatar billede coderdk Praktikant
28. juni 2006 - 20:51 #4
hehhe det var så lidt ;) bogstaveligt talt! :-D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester