Avatar billede phpnewb Nybegynder
07. oktober 2003 - 14:08 Der er 34 kommentarer og
1 løsning

virker ik

hej eksperter.
Når jeg prøver at oprette en bruger på mit websted skriver den:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /web/www/frac/users/betav/add_profil.php on line 21
Din profiler er nu blevet oprettet.

jeg tror at det er en fejl. men hvis i vil se det med jeres egne øjne kan i prøve at oprette en bruger på www.betav.frac.dk /mit websted understøtter MysQl

/PHP NEWB\
Avatar billede sqren Nybegynder
07. oktober 2003 - 14:20 #1
Prøv at komme med lidt kode af "add_profil.php"
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 14:23 #2
Her er koden fra add_profil.php:

<?
  $new_password = md5($password);
  setcookie("coo_username","$username",time()+86400);
  setcookie("coo_password","$new_password",time()+86400);
  setcookie("coo_passworda","$password",time()+86400);
  setcookie("coo_email","$email",time()+86400);
?>

<!-- her skal <HTML> starte! -->

<?
  if (!$username || !$new_password || !$email)
    {
      echo "<font color=\"red\">Du skal udfylde alle tre felter inden du kan fortsætte!</font>";
      exit();
    }
  else
    {
      include("db_ind.inc");
      $tjek = mysql_query("SELECT * FROM profiler WHERE username = '$username'");
      if (mysql_num_rows($tjek))
        {
          echo "<font color=\"red\">Det ønskede brugernavn findes allerede!</font>";
          exit();
        }
      else
        {
          addslashes($username);
          addslashes($new_password);
          addslashes($email);
          include("db_ind.inc");
          $add_profil = mysql_query("INSERT INTO profiler (username, password, email)" . "VALUES ('$username', '$new_password', '$email')");
                   
                    echo "Din profiler er nu blevet oprettet.";
        }
    }
?>
Avatar billede sqren Nybegynder
07. oktober 2003 - 14:29 #3
Er du sikker på du har connected ordentligt til databasen (er tabelnavnet rigtig)?
Avatar billede ohmish Nybegynder
07. oktober 2003 - 14:29 #4
prøv med:

<?
  $new_password = md5($password);
  setcookie("coo_username","$username",time()+86400);
  setcookie("coo_password","$new_password",time()+86400);
  setcookie("coo_passworda","$password",time()+86400);
  setcookie("coo_email","$email",time()+86400);
?>

<!-- her skal <HTML> starte! -->

<?
  if (!$username || !$new_password || !$email)
    {
      echo "<font color=\"red\">Du skal udfylde alle tre felter inden du kan fortsætte!</font>";
      exit();
    }
  else
    {
      include("db_ind.inc");
      $tjek = mysql_query("SELECT * FROM profiler WHERE username = '$username'");
      if (@mysql_num_rows($tjek)>0)
        {
          echo "<font color=\"red\">Det ønskede brugernavn findes allerede!</font>";
          exit();
        }
      else
        {
          addslashes($username);
          addslashes($new_password);
          addslashes($email);
          include("db_ind.inc");
          mysql_query("INSERT INTO profiler (username, password, email)" . "VALUES ('$username', '$new_password', '$email')");
                   
                    echo "Din profiler er nu blevet oprettet.";
        }
    }
?>
Avatar billede ohmish Nybegynder
07. oktober 2003 - 14:31 #5
der er ingen grund til at have den sidste include("db_ind.inc") med
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 14:35 #6
tak det hjalp på opret bruger problemet men når jeg så skal logge ind skriver den:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /web/www/frac/users/betav/tjek_user.php on line 8
Ugyldigt brugernavn!

håber at i også kan hjælpe mig med det.

jeg ved ikke om jeg skal oprette et andet spørgsmål.
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 14:35 #7
tjekker herinde igen når jeg kommer fra arbejde
Avatar billede sqren Nybegynder
07. oktober 2003 - 14:36 #8
Jeg tror igen det bliver ohmish der løser det, men kan vi igen få noget kode af tjek_user.php ?
Avatar billede sqren Nybegynder
07. oktober 2003 - 14:38 #9
Der er desværre noget galt med tilsending af glemt password
Avatar billede ohmish Nybegynder
07. oktober 2003 - 14:38 #10
det du skal gøre er at erstatte dine

if (mysql_num_rows($tjek))

med:

if (@mysql_num_rows($tjek)>0)
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 15:58 #11
her er koden fra tjek_user.php:


<?
    session_start();
  addslashes($username);
  addslashes($passcode);
  $password = md5($passcode);
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username'");
  if (!mysql_num_rows($passquery))
  {
    echo "Ugyldigt brugernavn!<p>";
    exit();
  }
  else
  {
  if($row = mysql_fetch_array($passquery))
    {
      $dbpassword = $row["password"];
      $profilid = $row["id"];
    }
  if($dbpassword == $password)
  {
    $login = (true);
  }
  if ($dbpassword != $password)
  {
    echo "Forkert brugernavn eller password!!!<br>";
    echo "Hvis du ikke kan huske dit password, står det i den mail du fik tilsendt ved oprettelsen. Skulle du også have mistet den mail, så kan du få den tilsendt, ved at trykker <a href=\"glemtkode.php\">her</a>.<br>";
    exit();
  }
    session_register(username);
    session_register(password);
    session_register(profilid);
  $today = date("d-m-Y");
  require("db_ind.inc");
  mysql_query("UPDATE profiler set lastlogin = '$today' WHERE username = '$username'");
  header("Location: muligheder.php");
  }
?>
Avatar billede ohmish Nybegynder
07. oktober 2003 - 16:21 #12
<?
    session_start();
  addslashes($username);
  addslashes($passcode);
  $password = md5($passcode);
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username'");
  if (@mysql_num_rows($passquery)==0)
  {
    echo "Ugyldigt brugernavn!<p>";
    exit();
  }
  else
  {
  if($row = mysql_fetch_array($passquery))
    {
      $dbpassword = $row["password"];
      $profilid = $row["id"];
    }
  if($dbpassword == $password)
  {
    $login = (true);
  }
  if ($dbpassword != $password)
  {
    echo "Forkert brugernavn eller password!!!<br>";
    echo "Hvis du ikke kan huske dit password, står det i den mail du fik tilsendt ved oprettelsen. Skulle du også have mistet den mail, så kan du få den tilsendt, ved at trykker <a href=\"glemtkode.php\">her</a>.<br>";
    exit();
  }
    session_register(username);
    session_register(password);
    session_register(profilid);
  $today = date("d-m-Y");
  require("db_ind.inc");
  mysql_query("UPDATE profiler set lastlogin = '$today' WHERE username = '$username'");
  header("Location: muligheder.php");
  }
?>
Avatar billede ohmish Nybegynder
07. oktober 2003 - 16:22 #13
og så uden den nederste require("db_ind.inc");
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 16:25 #14
ok
Avatar billede ohmish Nybegynder
07. oktober 2003 - 16:30 #15
måske skal den øverste del hellere være:

  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username' AND password='$password'");
  if (@mysql_num_rows($passquery)==0)
  {
    echo "Ugyldigt brugernavn/kodeord!<p>";
    exit();
  }
Avatar billede tipsen Nybegynder
07. oktober 2003 - 17:58 #16
Hvorfor skulle det være en god ide at undertrykke fejlmeldingen - hvorfor ikke bare løse problemet!?
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 18:18 #17
ja det er rigtigy hvis du kan løse problemet er du velkommen
Avatar billede ohmish Nybegynder
07. oktober 2003 - 20:52 #18
hvis man ikke undertrykker fejlmeldingen i denne forbindelse vil der jo komme fejlmelding konstant. Det kræver en omskrivning så..
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 21:20 #19
en omskrivning kan du så ikke lave et script jeg kan bruge du har jo fået 200 points
Avatar billede ohmish Nybegynder
07. oktober 2003 - 21:22 #20
hvor er fejlen nu?
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 21:25 #21
når jeg har oprettet en bruger siger den at brugenavn er forkert så jeg tænkte om du kunne lave et nyt script til mig som viker. du har jo tosalt fået 200 points
Avatar billede ohmish Nybegynder
07. oktober 2003 - 21:31 #22
ok.. prøv med det her (tjek_user.php):

<?
    session_start();
$username = mysql_escape_string(htmlspecialchars(stripslashes($username)));
$password = mysql_escape_string(htmlspecialchars(stripslashes($passcode)));
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username' AND password='md5($password)'");
  if (@mysql_num_rows($passquery)==0)
  {
    echo "Ugyldigt brugernavn/kodeord!<p>";
    exit();
  }
  else
  {
  $row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $profilid = $row["id"];

  if($dbpassword == $password)
  {
    $login = (true);
  }
  elseif ($dbpassword != $password)
  {
    echo "Forkert brugernavn eller password!!!<br>";
    echo "Hvis du ikke kan huske dit password, står det i den mail du fik tilsendt ved oprettelsen. Skulle du også have mistet den mail, så kan du få den tilsendt, ved at trykker <a href=\"glemtkode.php\">her</a>.<br>";
    exit();
  }
    session_register(username);
    session_register(password);
    session_register(profilid);
  $today = date("d-m-Y");
  require("db_ind.inc");
  mysql_query("UPDATE profiler set lastlogin = '$today' WHERE username = '$username' AND password='md5(password)'");
  header("Location: muligheder.php");
  }
?>
Avatar billede ohmish Nybegynder
07. oktober 2003 - 21:32 #23
hehe.. jeg blir ved med at glemme at fjerne den unødvendige require("db_ind.inc"); nederst
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 21:35 #24
ok
Avatar billede phpnewb Nybegynder
07. oktober 2003 - 21:39 #25
den skriver:
Ugyldigt brugernavn/kodeord!

er du sikker på at det ikke er lettere at skrive et nyt script til mig. :D
Avatar billede sqren Nybegynder
08. oktober 2003 - 12:33 #26
Jeg er ekstremt dårlig til PHP, men kunne det ikke være fordi der var noget galt med login scriptet? Prøv, når du har oprettet en ny bruger, at chcke om denne bruger er blevet skrevet ind i databasen. Hvis den er det, er det nok i login scriptet den er gal.
Avatar billede phpnewb Nybegynder
08. oktober 2003 - 12:55 #27
når brugeren er oprettet er han/hun registeret i databasen.
Avatar billede sqren Nybegynder
08. oktober 2003 - 12:57 #28
Jeg ved godt jeg hele tiden spørger om det, men hvis jeg fik noget kode kunne jeg måske gøre noget ved det. Så hvis du lige kommer med login.php
Avatar billede sqren Nybegynder
08. oktober 2003 - 12:59 #29
Ups. nej det har du jo allerede skrevet
Avatar billede ohmish Nybegynder
08. oktober 2003 - 15:49 #30
<?
    session_start();
$username = mysql_escape_string(htmlspecialchars(stripslashes($username)));
$password = mysql_escape_string(htmlspecialchars(stripslashes($passcode)));
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username' AND password=md5('$password')");
  if (@mysql_num_rows($passquery)==0)
  {
    echo "Ugyldigt brugernavn/kodeord!<p>";
    exit();
  }
  else
  {
  $row = mysql_fetch_array($passquery);
      $dbpassword = $row["password"];
      $profilid = $row["id"];

  if($dbpassword == $password)
  {
    $login = (true);
  }
  else
  {
    echo "Forkert brugernavn eller password!!!<br>";
    echo "Hvis du ikke kan huske dit password, står det i den mail du fik tilsendt ved oprettelsen. Skulle du også have mistet den mail, så kan du få den tilsendt, ved at trykker <a href=\"glemtkode.php\">her</a>.<br>";
    exit();
  }
    session_register(username);
    session_register(password);
    session_register(profilid);
  $today = date("d-m-Y");
  require("db_ind.inc");
  mysql_query("UPDATE profiler set lastlogin = '$today' WHERE username = '$username' AND password=md5('password')");
  header("Location: muligheder.php");
  }
?>
Avatar billede phpnewb Nybegynder
08. oktober 2003 - 19:06 #31
det sidste script du har skrevet virker ikke ohmish. Jeg tænkte at hvis du fik alle filerne at du så kunne lave det for jeg kan ikke finde ud af det. hvis du vil det kan du så ikke skrive det for så ligger jeg et link herinde.

//PHPNeWb
Avatar billede ohmish Nybegynder
09. oktober 2003 - 14:45 #32
hvordan virker det ikke.. kommer der fejlmeddelelse?
Avatar billede phpnewb Nybegynder
09. oktober 2003 - 17:54 #33
ja der står ugyldig brugernavn/password efter man har operettet sig og prøver at logge ind. håber i kan hjælpe eller skrive et nyt script til mig.


//PhPNewB
Avatar billede sqren Nybegynder
09. oktober 2003 - 22:46 #34
Bare et forslag men prøv at ændre dette:

$username = mysql_escape_string(htmlspecialchars(stripslashes($username)));
$password = mysql_escape_string(htmlspecialchars(stripslashes($passcode)));
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username' AND password=md5('$password')");
  if (@mysql_num_rows($passquery)==0)

til dette:

$username = mysql_escape_string(htmlspecialchars(stripslashes($username)));
$password = mysql_escape_string(htmlspecialchars(stripslashes($password)));
  $passquery = mysql_query("SELECT id, username, password FROM profiler WHERE username='$username' AND password=md5('$password')");
  if (mysql_num_rows($passquery)==0)

ændrede passcode til password og  jeg Selctede id, username og password istedet for bare id og password. Nu kommer fejlmeddelelsen ikke længere. Men jeg har ikke fået lavet scriptet da den stadig kommer med ugyldig brugernavn/password. Øv!

Nå, men jeg er bare en ultra noob der prøver at lære lidt ved at hjælpe.
Avatar billede sqren Nybegynder
09. oktober 2003 - 22:56 #35
Tror faktisk den virker alligevel, det var bare mig der havde lavet noget rod og skrevet passwordet forkert :) . HÅBER DEN VIRKER! Hjælp mig gud og lad mig have gjort noget rigtigt!
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