tutorial workaholic session-management

fragemann

Mitglied
Tach zusammen,

bin eben das Tutorial von workaholic
http://www.tutorials.de/tutorials9684.html
durchgegangen.

Bei mir funkt das ganze nicht, ich bekomme bei Aufruf der checkuser.php immer die Meldung

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /www/htdocs/.../.../checkuser.php on line 13

Nun versteh ich das nich ganz, denn mysql_num_rows() ist doch eine normale Funktion... !?

Kann mir evtl. jemand helfen?
thx im voraus!
 
...

poste mal den code.

du musst dich bei der sql abfrage vertippt haben ...

ich verwende auch de code aus diesem tutorial ...

mfg
 
Und häng vor allem mal an die vorhergehende mysql-Abfrage (mysql_query) ein or die(mysql_error()) dran, dann sollte dir MySQL die Antwort geben.
 
Hm das Problem kenn ich. Ich hab bei mir in manchen Skripts auch mysql_num_rows verwendet. Auf meinem online Server laufen die Skripte wunderbar. Nur auf meinem localhost laufen sie nicht mehr (Ich bekomme die gleiche Fehlermeldung, s.o.) seit ich einen neuen Server installiert habe.
 
PHP:
<?php
session_start ();

// ======== AUFBAU DER DATENBANKVERBINGUN ========
$dbconnect = mysql_connect ("adresse", "****", "***");
@mysql_select_db ("User", $dbconnect);

// Generiere und starte die Abfrage
$sql = "SELECT * FROM Benutzerdaten WHERE (Name like '$username') AND (Pass = '$password')";
$result = mysql_query ($sql, $dbconnect);


if (mysql_num_rows ($result) > 0) {
  // Ein Datensatz wurde gefunden.
  $datenrichtig = true;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = true; 
} else {
  // Die Benutzerdaten waren falsch.
  $datenrichtig = false;

  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = false;
}

// Variable $user_eingeloggt in der Session registrieren.
session_register ("user_eingeloggt");
?>

<html>
<head>
  <?php if ($datenrichtig) { ?>
  <meta http-equiv="Refresh" content="2; url=startseite.php?<?=session_name()?>=<?=session_id()?>">
  <?php } ?>
</head>

<body>
<?php

if ($datenrichtig) { 
  echo "Vielen Dank für’s Einloggen. Sie werden weitergeleitet...";
} else {
  echo "Die Daten waren falsch.";
}

?>
</body>
</html>

Kann es sein, dass es etwas mit GLOBALS$ zu tun hat?
ich denke, das Problem ist bestimmt serverseitig...
 
wenn du nen mysql-fehler bekommst hat das denk ich nix
mit den globas zu tun ...

heißt die table auch wirklich "Benutzerdaten", von welcher
du die abfrage machst?

mfg
 
Hmm..
da war zwar ein fehler meinerseits, aber wenn ich die richtige Tabelle eintrag, kommt die gleiche Meldung... :(
 
So, dann meld ich mich auch mal zu Worte. :)
Also ich kann eigentlich keinen Fehler in dem Script erkennen. Laut deinem Script gibt es also bei dir auf dem Server eine Datenbank mit dem Namen "User" und dort eine Tabelle "Benutzerdaten"? Weiß ja nicht, ob du jetzt Daten verfälscht hast um hier keine Passwörter oder so sichtbar zu machen.

Ansonsten lass dir doch mal die SQL-Anweisung ausgeben. Die Fehlermeldung, die du genannt hattest tritt ja auf, wenn er z.B. kein gültiges Result hat, was nur eine folge davon sein kann, dass etwas mit der SQL-Anweisung nicht stimmt. Vielleicht hängt es auch wirklich mit der Register_Globals zusammen?!

Für alle:
Ich habe genau zu diesem Thema bereits ein neues Tutorial geschrieben, welches, wie ich meine, noch einfacher anzuwenden ist. Ihr findet es unter:

http://www.kallectronic.net/tutorials/show.php?id=2
 
moin workaholic :)

die Daten hab ich absichtlich verfälscht, hab auch nich die von dem Tutorial als Datenbank.
Das ist auch nich das Problem.
Bestimmt bin ich einfach nur zu verpeilt :rolleyes:

Hab das Script mittlerweile sowieso wieder verworfen und mir ne billige Lösung ohne Datenbank programmiert.
Muss mich anscheinend auf SQL erst noch einarbeiten, werd aber auf jeden Fall mit Freude Dein neues Tut testen :)

thx to all for help!
 
ich arbeite auch im Moment mit dem Tut von workaholic, und hatte zuerst die gleiche Fehlermeldung. (Übrigens auch schon bei anderen, aus dem Internet heruntergeladenen, Skripts)

Ich konnte das Problem jedesmal lösen, indem ich die SQL-Anweisung komplett neu eingegeben habe!

Fragt mich bitte nicht, warum und wieso. :-) ich kann es mir nur so erklären, dass da irgendwelche Zeichen drin sind, die unter Windows anders interpretiert werden. (evtl. Leerzeichen, die mit gedrückter Umschalttaste eingegeben wurden)

Probiers einfach mal. ;)


Dunsti
 
Zurück