• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mysql_num_rows Fehlermeldung

BigSanch

Neues Mitglied
Moin :-)

Habe folgendes Problem:

Ich habe ein Login auf ner Seite, welcher per sql die Userdaten abfrägt und dann entweder einloggt oder ne Fehlermeldung gibt.

Dieses ist auf einer bestehenden Seite im Netz und funtzt. So nun wollte ich die Seite etwas anders gestalten und verändern, habe dazu auf nem andren Webserver die Seite quasi 1zu1 übernommen und verändere dort die Seiten. Wenn ich aber dort versuche (ohne dei login Seite oder das Script verändert zu haben) mich einzuloggen, dann bekomme ich folgende Fehlermeldung:
Code:
Warining: mysql_num_rows():suplied Argument is not a valide MySql result resource in......

Erstens meine Frage, warum es auf dem einen Server geht und auf dem andren nicht?

Und zweitens hier noch die Codes zum einsehen:

Loginscript (inc/db/db_login.php)
PHP:
<?
include ("inc/db/db_connect.php"); //(Diese Daten stimmen!)
 $sql = "SELECT id FROM users WHERE (username like '".$_REQUEST["loginname"]."') AND (pass = '".md5 ($_REQUEST["loginpass"])."')";  
 $result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0) { 
  $data = mysql_fetch_array ($result); 
  $_SESSION["user_id"] = $data["id"]; 
  echo "LOGIN"; 
} else { 
 echo "NICHT LOGIN"; 
} 
?>

Loginseite (login.php)
HTML:
<? if(isset($_POST[log])){ include ("inc/db/db_login.php"); } ?>
<form action="seite.php?datei=login" method="post">
<table style="width:200px">
 <tr>
 <? if (isset ($_REQUEST["fehler"])) { echo "Die Zugangsdaten waren ungültig!"; } ?> 
  <td class="small">user*</td>
  <td><input type="text" name="loginname" size="10" /></td>
 </tr>
    <tr>
  <td class="small">pass*</td>
  <td><input type="password" name="loginpass" size="10" /></td>
 </tr>
    <tr>
  <td colspan="2">
   <input type="hidden" value="1" name="log" />
   <input type="submit" name="submit" value="einloggen" />
  </td>
    </tr>
</table>
</form>
 
Die Fehlermeldung sagt Dir eigentlich ganz klar, wo der Fehler ist. Das SQL-Statment ist schiefgelaufen, daher steht in $result eine invalide Ressourcen-ID. Überprüfe, ob die Datenbank denselben Namen und dieselben Zugangsdaten hat, wie auf dem anderen Server, auf dem es funktioniert.

Gruß thuemmy
 
Hi Danke für die Antwort :-)

Nein die zwei Server sind nicht identisch, habe es aber für den zweiten Server entsprechend geändert und es funktioniert soweit, da andere Datenbanken, welchei ich auch 1zu1 übernommen habe auch funktionieren, wenn eine php-sql Script funktiniert, und man dann die Daten des Servers einfach ändert, sollte es doch eigentlich funktionierne, die Datenbanken arbeiten ja eigentlich nicht unterschiedlich oder?

Und, sorry aber sql ist nicht ganz mein Fachbereich, was soll mir das sagen:
daher steht in $result eine invalide Ressourcen-ID
Es werden ja nur eine "ID" aus der Datenbank gerufen, wenn das PW und der USER stimmen, und es ist beides vorhanden?
 
Zuletzt bearbeitet:
Füge mal folgendes ein:
PHP:
<?
$result = mysql_query ($sql);
echo mysql_error();  // <=== dieses hier einfügen
if (mysql_num_rows ($result) > 0) { 
  $data = mysql_fetch_array ($result); 
  $_SESSION["user_id"] = $data["id"]; 
  echo "LOGIN"; 
} else { 
 echo "NICHT LOGIN"; 
} 
?>
Gruß thuemmy
 
Hi

lol er sagt mir unknown column 'pass', dabei habe ich da gar nichts geändert?????

Hab auch nochmal nachgesehen, aber die column pass gibts auch richtig geschrieben, geht ja wie gesagt auch auf dem andren Server

Ok hat sich erledigt, ich weiss zwar immer noch nicht was das war und warum, aber ich habe die komplette Datenbank resettet, also geleert und soweiter, neu angestzt (mit den gleichen Daten :-)) und jetzt gehts

Kein Plan was das war
 
Zuletzt bearbeitet von einem Moderator:
hmmm ich weiss nicht ob ich da was falsches sage, aber besteht bei seinem beispiel nicht die wahrscheinlichkeit auf sql injection?
 
Zurück
Oben