Avatar billede kimox Nybegynder
04. november 2005 - 10:25 Der er 9 kommentarer og
1 løsning

Hjælp til bruger check

Hej eksperter.

Jeg har nu følgende script:

              <?php
if(isset($_POST['submit'])) {
function isValidEmail($email_address) {
  $regex = '/^[A-z0-9][\w.-]*@[A-z0-9][\w\-\.]+\.[A-z0-9]{2,6}$/';
  return (preg_match($regex, $email_address));
}

if(strcmp($password1, $password2) == 0)  {
$password = md5($_POST['password1']);
include 'db.php';
$error = false;
$bruger = $_POST['bruger'];
$navn = $_POST['navn'];
$alder = $_POST['alder'];
$komm = $_POST['komm'];
$email = $_POST['email'];
$admin = "2";
if(!isValidEmail($email)) {
    print('Email adressen er ugyldig');
    $error = true;
}
if(!$error) {
    mysql_query("INSERT INTO db_bruger (bruger, password, admin, navn, alder, komm, email) VALUES ('$bruger', '$password', '$admin', '$navn', '$alder', '$komm', '$email')") or die(mysql_error());
}
echo "<div align=\"center\"><span class=\"style2\">Brugeren blev oprettet.</span></div>";
} else {  echo "<span class=\"style2\">De to kodeord er ikke ens.</span>";
}
}
?>


Som jeg UTROLIG gerne vil have lavet den sidste finesse på, det er at den skal inden den opretter brugen, gå ind og tjekke om der findes en bruger med det navn i forvejen.

Håber i vil hjælpe mig med at lave det.
Avatar billede mysitesolution Nybegynder
04. november 2005 - 10:40 #1
$result = mysql_query("select * from db_bruger where bruger = '$bruger'");

if (mysql_num_rows($result) > 0)
{
  //burger eksistere
}
else
{
  //Bruger eksistere ikke
}
Avatar billede heavybreezer Nybegynder
04. november 2005 - 10:40 #2
Har ikke afprøvet den, men måske med dette her ?


              <?php
if(isset($_POST['submit'])) {
function isValidEmail($email_address) {
  $regex = '/^[A-z0-9][\w.-]*@[A-z0-9][\w\-\.]+\.[A-z0-9]{2,6}$/';
  return (preg_match($regex, $email_address));
}

if(strcmp($password1, $password2) == 0)  {
$password = md5($_POST['password1']);
include 'db.php';
$error = false;
$bruger = $_POST['bruger'];
$navn = $_POST['navn'];
$alder = $_POST['alder'];
$komm = $_POST['komm'];
$email = $_POST['email'];
$admin = "2";
if(!isValidEmail($email)) {
    print('Email adressen er ugyldig');
    $error = true;
}
if(!$error) {






$query = "SELECT * FROM db_bruger WHERE user = '".$bruger."'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());


$test = mysql_fetch_array($result);

if (isset($test['bruger'])) {
print("    <font face='verdana' size='2' color='#000000'>
        <b>Brugernavnet \"$user\" er allerede optaget
        vælg venligst et nyt </b></font><br>
        <font face='verdana' size='2' color='#000000' text-decoration='none'>
        </font>");
}
else
{

  mysql_query("INSERT INTO db_bruger (bruger, password, admin, navn, alder, komm, email) VALUES ('$bruger', '$password', '$admin', '$navn', '$alder', '$komm', '$email')") or die(mysql_error());
}
echo "<div align=\"center\"><span class=\"style2\">Brugeren blev oprettet.</span></div>";
} else {  echo "<span class=\"style2\">De to kodeord er ikke ens.</span>";
}
}


}}
Avatar billede heavybreezer Nybegynder
04. november 2005 - 10:40 #3
Ahh too slow ... :)
Avatar billede mysitesolution Nybegynder
04. november 2005 - 10:41 #4
if(!$error) {
  $result = mysql_query("select * from db_bruger where bruger = '$bruger'");

  if (mysql_num_rows($result) > 0)
  {
    //burger eksistere
  }
  else
  {
      mysql_query("INSERT INTO db_bruger (bruger, password, admin, navn, alder, komm, email) VALUES ('$bruger', '$password', '$admin', '$navn', '$alder', '$komm', '$email')") or die(mysql_error());
  }
}

Sådan kunne det evt. gøres
}
}
Avatar billede mysitesolution Nybegynder
04. november 2005 - 10:43 #5
heavybreezer-> Der er ingen grund til at fetche array, og teste om der er elementer i, når man bare kan tage antal rækker i resultatet
Avatar billede mysitesolution Nybegynder
04. november 2005 - 10:44 #6
forresten, så HUSK at tjekke om brugernavnet og passwordet i det hele taget er indtastet ;)
Avatar billede kimox Nybegynder
04. november 2005 - 10:57 #7
takker... det funker jo fint :D.. så var det korrekt ;)

-lukket-
Avatar billede mysitesolution Nybegynder
04. november 2005 - 17:45 #8
Takker for points :)

Vil du kommentere i min karma :)?
Avatar billede nielle Nybegynder
04. november 2005 - 18:09 #9
I stedet for at hente en masse data ud af databasen med "SELECT * ...", er det mere effektivt at brug "SELECT count(*) ...":

$query = mysql_query("SELECT count(*) AS antal FROM db_bruger WHERE bruger = '$bruger'") or die(mysql_error());
$row = mysql_fetch_assoc($query);

if ($row["antal"] > 0)
{
    //burger eksistere
}
else
{
    //Bruger eksistere ikke
}
Avatar billede mysitesolution Nybegynder
06. november 2005 - 13:40 #10
ahh ja... det kan du have ret i :/
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

IT-JOB

Politiets Efterretningstjeneste

Data engineer til PET

Riskpoint A/S (Riskpoint Solutions Limited)

Senior Developer

Capgemini Danmark A/S

AI Data Architect