simple mysql abfrage macht probleme..

Rawhide

Grünschnabel
bei folgendem php code
PHP:
if (!mysql_select_db ("usr_web1_1", $connectionid))
{
  die ("Keine Verbindung zur Datenbank");
}
$fickpass = $pwd;
$xpass = md5($_REQUEST["pwd"]);

$sql = "SELECT Id, Nickname, Nachname, Vorname, Kennwort FROM benutzerdaten WHERE Nickname like $name";
$result = mysql_query($sql);
$num_rows = mysql_num_rows($result);
$ddata    = mysql_fetch_array ($result);
$ukennw = $ddata["Nickname"];

if ($ukennw == $xpass)
{
  // Benutzerdaten in ein Array auslesen.

  $data    = mysql_fetch_array ($result);
 # if ($data["status"] == "1")
 # {
  // Sessionvariablen erstellen und registrieren
  $_SESSION["user_id"] = $data["Id"];
  $_SESSION["user_nickname"] = $data["Nickname"];
  $_SESSION["user_nachname"] = $data["Nachname"];
  $_SESSION["user_vorname"] = $data["Vorname"];
  $_SESSION["user_check"] = "OK";
  header ("Location: intern.php");
 # }
 # else if ($data["status"] == "0")
 # {
 # $data    = mysql_fetch_array ($result);
 #  $regmail = $data["email"];
 #  $regnick = $data["Nickname"];
 #  $regkey  = $data["code"];
 #  echo "Dein Account wurde noch nicht aktiviert.<br> Eine E-Mail mit dem bestätigungslink wurde dir aber erneut an deine bei uns hinterlegte E-Mail Adresse gesendet.";
 #  $empfaenger = $regmail;
#  	$betreff = "Registrierung beim osmers.org Upload..";
  #	$text = "Hallo, $regnick,\n um deine Registrierung abzuschliessen, klicke bitte auf folgenden Link: \n \n http://www.BLABLAkey=$regkey \n \n";
 # 	mail($empfaenger, $betreff, $text, "From: osmers.org <BLA@bla.de>");
 # exit;
#  }
}
else
{
  header ("Location: index.php?fehler=1&md5=$xpass&opass=$fickpass");
}
kommt diese fehlermeldung im browser:
HTML:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/web3/html/pics/upload/login.php on line 17

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web3/html/pics/upload/login.php on line 18

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web3/html/pics/upload/login.php:17) in /var/www/web3/html/pics/upload/login.php on line 52

die abfrage in ihrer ursprungsversion ist so:
PHP:
$sql = "SELECT ".
    "Id, Nickname, Nachname, Vorname ".
  "FROM ".
    "benutzerdaten ".
  "WHERE ".
    "(Nickname like '".$_REQUEST["name"]."') AND ".
    "(Kennwort = '".md5($_REQUEST["pwd"])."')";
$result = mysql_query ($sql);
nur da klappt komischerweise keinepasswortabfrage..ich bin etwas ratols.
zum testen: http://www.up.osmers.org registrierung klappt. habe mal nen testuser eingerichtet.
Nick: testuser
Passwort: tester

wer kann mir da helfen.. ich sitz seit 3 stunden an den paar zeilen :(
 
Hey,

Warnings sind ja grundsätzlich erstmal keine wirklichen Fehler und können mit error_reporting(0) abgeschaltet werden.

Was funktioniert denn nicht? Der Login? Du könntest auf evtl SQL-Fehler prüfen indem du schreibst

PHP:
$result = mysql_query($sql) OR die(mysql_error());

Die letzte Warnung kommt, weil du nach der Registrierung der Session-Variable einen Header senden willst

header ("Location: intern.php");

Das geht natürlich nicht, wenn schon vorher Text oder Code ausgegeben wurde... also z.B. wenn deine PHP-Datei per include in eine bereits bestehende HTML-Datei eingefügt wird.
 
Hey,

Warnings sind ja grundsätzlich erstmal keine wirklichen Fehler und können mit error_reporting(0) abgeschaltet werden.

Was funktioniert denn nicht? Der Login? Du könntest auf evtl SQL-Fehler prüfen indem du schreibst

PHP:
$result = mysql_query($sql) OR die(mysql_error());

Die letzte Warnung kommt, weil du nach der Registrierung der Session-Variable einen Header senden willst

header ("Location: intern.php");

Das geht natürlich nicht, wenn schon vorher Text oder Code ausgegeben wurde... also z.B. wenn deine PHP-Datei per include in eine bereits bestehende HTML-Datei eingefügt wird.

das problem mit der letzten warnung ist ja, dass es sonst immer ohne weiteres funktioniert ;)
 
Ich finde diese Zeile sehr sonderbar, warum schreibst du nicht den ganzen SELTECT direkt in den query und sondern lagerst ihn vorher in die $sql aus? Das ist das einzige, was ich jetzt so auf anhieb entdecken kann, was einwenig holprig wird. Außerdem würde das die Fehlermeldung erklären.
Ob jetzt der String in einer Variable gespeichert, oder ob er direkt mysql_query() als Argument übergeben wird, ist vollkommen egal!

Mach mal folgendes:
PHP:
$result = mysql_query ($sql) or die(mysql_error());
Danach solltest du wissen, warum das Query scheitet ..

** Die letzte Warnung kommt, weil es vorher Output gab - nämlich die Fehlermeldungen / Warnungen.
 
Zuletzt bearbeitet:
jep. ich finds übersichtlicher den vorher einzustelllen ;)

HTML:
Unknown column 'Rawhide' in 'where clause'

das is die fehlermeldung vom mysql ..
werd ich aber leiter nicht schlau draus. vorallem aus "where clause"
 
okay.. aber wo ist dadran der fehler? die tabelle existiert doch ?!

hab eben auch mal probiert, obs an der Gross- und kleinschreibuing liegt, daran lags aber auch nicht
 
Hallo!
Die letzte Warnung kommt, weil du nach der Registrierung der Session-Variable einen Header senden willst
Da muss ich Dir widersprechen.
Die letzte Warnung ist eine Folge der ersten Warnung..... achte mal auf die genannten Zeilennummern. ;)
Für Zeile 17 wird eine Warnung ausgegeben..... und somit erfolgt eine Ausgabe an den Browser schon vor dem header().
Und für Zeile 52 (die mit dem header()) wird gemeldet dass der "output" in Zeile 17 (also bei der ersten Warnung) gestartet wurde.

Gruss Dr Dau
 
Hmm .. merkwürdig ..
Probier mal:
PHP:
$sql = "SELECT `Id`, `Nickname`, `Nachname`, `Vorname`, `Kennwort` FROM benutzerdaten WHERE `Nickname` like '".$name."'";
Hinweis: Das globale Array $_REQUEST sollte nicht mehr benutzt werden.
Dafür gibts es jetzt, je nach Typ der Übertragung die Arrays $_POST und $_GET.

Btw: Geile Variablen: $fickpass :-)
 
Zurück