Avatar billede akki Nybegynder
12. maj 2003 - 15:22 Der er 12 kommentarer

for en mærkelig fejlmeddelse!!! HJÆLP!!!

jeg har netop fået en ny webhotel, som åbentbart kører med en nyere version af php, så nu brokker alle mine scripts sig.

Fejlen jeg for ser sådan ud:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tmweb/public_html/mlj/medlem/tjek_user.php on line 8

selve koden ser sådan ud:
<?
    session_start();
  addslashes($username);
  addslashes($passcode);
  $password =($passcode);
  require("db_ind.inc");
  $passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username'");
  if (!mysql_num_rows($passquery))
  {
    echo "Ugyldigt brugernavn! test<p>";
        echo "<br>username == $username";
        echo "<br>indtaster kodeord == $passcode";
        echo "<br>sendt kodeord == $password";
    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");
  }
?>

håber at der er nogen der kan hjælpe
Avatar billede melange Nybegynder
12. maj 2003 - 15:29 #1
prøv at bruge:

if (mysql_num_rows($passquery) == 0)
Avatar billede Slettet bruger
12. maj 2003 - 15:30 #2
addslashes($_POST['username']);
addslashes($_POST['passcode']);

burde løse dit problem... ellers så brug $_GET i stedet for post...
Avatar billede Slettet bruger
12. maj 2003 - 15:31 #3
Det skal siges at du skal ind og rette dette i samtlige filer hvor du tager brug af post og get variabler...
Du kan ikke længere tilgå disse variabler direkte...
Avatar billede erikjacobsen Ekspert
12. maj 2003 - 15:33 #4
Du skal nok bruge $_POST, men
    addslashes($_POST['username']);
er virkningsløst. Du mener måske
    $username = addslashes($_POST['username']);
hvorefter du kan bruge $username som før. Men check lige om ikke dit
webhotel sætter slashes på automatisk.
Avatar billede fangel Nybegynder
12. maj 2003 - 15:37 #5
set en

or die("MySQL fejl: " . mysql_error());

efter dit mysql_query() kald... ;)

da fejlen somend betyder at der har været en MySQL fejl, og den derfor ikke kan finde ud af at læse fra databasen!

desuden burde din .inc fil hedde .inc.php, da folk ellers kan se dit MySQL password!

Morten
Avatar billede chries Nybegynder
12. maj 2003 - 15:37 #6
prøv at teste om din query fejler

$passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username'");

if( !$passquery )
{
die( __FILE__." at line  ".__LINE__.", ". mysql_error() );
}
Avatar billede fangel Nybegynder
12. maj 2003 - 15:42 #7
chries => halv dumt bare at tjekke om udtrykket er sandt... prøv at se på funktionen "mysql_errno()"... altså

ENTEN: (nemmest)
$passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username'")or die("MySQL fejl på linie " . __LINE__ . ": " . mysql_error());

ELLER: (sikrest)
$passquery = mysql_query("SELECT password, id FROM profiler WHERE username = '$username'");
if(mysql_errno() > 0){
  die("MySQL fejl på linie " . __LINE__ . ": " . mysql_error());
}

Morten
Avatar billede chries Nybegynder
12. maj 2003 - 15:50 #8
dea_pg: læs og græd :)

http://www.php.net/manual/en/function.mysql-query.php

...mysql_query() returns a resource identifier or FALSE if the query was not executed correctly.
...

så at teste om den er false er nok og så skrive fejlen ud:
...
die("MySQL fejl på linie " . __LINE__ . ": " . mysql_error());
...
Avatar billede chries Nybegynder
12. maj 2003 - 15:51 #9
mente:
...
die( __FILE__." at line  ".__LINE__.", ". mysql_error() );
...

:-)
Avatar billede akki Nybegynder
12. maj 2003 - 15:54 #10
det skal lige hurtig siges, at dette script virker som det ser ud, på en anden server.
Men på den nye, for jeg denne fejl på alle mine scritps, både gæstebog og nyheder:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result
Avatar billede pchris Nybegynder
12. maj 2003 - 16:01 #11
Mon ikke det er fordi databasen/tabellen ikke findes eller hedder noget andet på det nye webhotel. Sådan plejer det at være for mig.
Avatar billede fangel Nybegynder
13. maj 2003 - 12:32 #12
chries =>  ja, men så behøves du ikke tjekke det med en selvstædning betingelse, så er det nok med

mysql_query(...)or die(...)

Morten
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