Einafche Abfrage
Christoph
- php
Hi,
ich möchte gerne eine einfache Abfrage erstellen, die eingabe erfolgt über ein formular werden per GET ans script übergeben dieses soll dann aus der DB alle angaben auslesen und mit der eingabe vergleichen falls das "Passwort" nun mit dem in der "DB" übereinstimmt soll das script "true" zurückgeben falls nicht "false"...b.z.w. bei erfolg weiterleitung und bei nicht erfolg etwa sowas "echo "Fehler";" ;-)
achso: ich suche in der DB nach buchstaben und zahlen....
Grosser Dank....
Chris
hab euch das Script mit gesendet::
if(action == "anmelden"){
mysql_connect("localhost","$user","$pass");
mysql_select_db("$db");
$result = mysql_query("SELECT * FROM $table
WHERE clientid = $logid");
while($row = mysql_fetch_array($result)){
echo "test";
if($clientid == $row[clientid]){
login();}
}
mysql_close();
}
Hi,
ich möchte [...]
hab euch das Script mit gesendet::
fein. Was jetzt noch fehlt ist eine Problembeschreibung.
if(action == "anmelden"){
$result = mysql_query("SELECT * FROM$table
WHERE clientid = $logid");
Ich sehe einen PHP- und einen SQL-Fehler.
Cheatah
Hi Cheatah,
sei doch nicht so gemein ;-) Naja, bischen mehr Gehirnarbeit könnte manchen nicht schaden.
if($action == "anmelden"){
.
.
$result = mysql_query("SELECT * FROM $table WHERE clientid = '$logid'");
Nur damit hier was weiter geht. Übrigens warens sogar zwei SQL Fehler.
Ciao
Chis
Hi,
sei doch nicht so gemein ;-) Naja, bischen mehr Gehirnarbeit könnte manchen nicht schaden.
eben. Ich sehe mich eher als Wegweiser - gehen muss man selbst.
Nur damit hier was weiter geht.
Bei spezifischen Rückfragen werden die Antworten ebenfalls spezifischer. Schnell muss es nicht gehen, wir sitzen ja schließlich nicht am Fließband ;-)
Übrigens warens sogar zwei SQL Fehler.
Ich glaube eher, Du hast den einen bereinigt und einen zweiten eingebaut. Mangels Deklaration der Variablen[1] lässt sich das aber nur mutmaßen.
Cheatah
[1] Ist da etwa wieder eine minderwertige PHP-Konfiguration im Spiel? Werden URL- und POST-Parameter nebst Cookie-Inhalten und Server-Variablen in den selben Namespace des globalen Scopes gehauen? Pfui!
Hi,
Ich glaube eher, Du hast den einen bereinigt und einen zweiten eingebaut. Mangels Deklaration der Variablen[1] lässt sich das aber nur mutmaßen.
Ich denke der folgende Satz von Christoph sollte Aufschluss geben:
'suche in der DB nach buchstaben und zahlen....'
oder?
Ciao
Hi,
'suche in der DB nach buchstaben und zahlen....'
Du hast Recht, das kann man so interpretieren. Wenn dem so ist, muss ich Christoph allerdings Mängel im DB-Layout bescheinigen ;-)
Cheatah
Arghhh,
Du hast Recht, das kann man so interpretieren. Wenn dem so ist, muss ich Christoph allerdings Mängel im DB-Layout bescheinigen ;-)
Noch mehr Fehler?Hängt das mit den Einstellungen "Typ" wie z.b. "text" oder "int" zusammen dann werd ich da wohl auch noch nachhacken müssen...?
Gruss
Chris
Hi,
Du hast Recht, das kann man so interpretieren. Wenn dem so ist, muss ich Christoph allerdings Mängel im DB-Layout bescheinigen ;-)
Noch mehr Fehler?Hängt das mit den Einstellungen "Typ" wie z.b. "text" oder "int" zusammen dann werd ich da wohl auch noch nachhacken müssen...?
Du hast eine Spalte 'clientid' in Deiner Tabelle. Das 'id' darin lässt darauf schließen, dass es sich um einen Identifier handelt. Natürlich würde es reichen, wenn dieser nur eindeutig, unique, nicht wiederholt ist, auch wenn es sich dabei um beliebige Zeichenketten handelt. Jedoch erfährt ein Identifier in einem relationalen Datenbanksystem seinen Sinn dadurch, aus anderen Tabellen referenziert zu werden - d.h. andere Tabellen müssten die gleiche Zeichenkette beinhalten, was Platzverschwendung und infolge dessen eine Verschlechterung der Performance ist. Eine ID-Spalte wird daher nur in ganz besonderen Ausnahmefällen nicht als Integertyp angelegt.
Es spricht nichts dagegen, die bisherige Spalte als unique weiterzuführen. Eine Spalte mit 'id' im Namen sollte jedoch entweder zusätzlich dazu existieren, oder gar nicht.
Cheatah
Hi
Du hast eine Spalte 'clientid' in Deiner Tabelle. Das 'id' darin lässt darauf schließen, dass es sich um einen Identifier handelt. Natürlich würde es reichen, wenn dieser nur eindeutig, unique, nicht wiederholt ist, auch wenn es sich dabei um beliebige Zeichenketten handelt. Jedoch erfährt ein Identifier in einem relationalen Datenbanksystem seinen Sinn dadurch, aus anderen Tabellen referenziert zu werden - d.h. andere Tabellen müssten die gleiche Zeichenkette beinhalten, was Platzverschwendung und infolge dessen eine Verschlechterung der Performance ist. Eine ID-Spalte wird daher nur in ganz besonderen Ausnahmefällen nicht als Integertyp angelegt.
Es spricht nichts dagegen, die bisherige Spalte als unique weiterzuführen. Eine Spalte mit 'id' im Namen sollte jedoch entweder zusätzlich dazu existieren, oder gar nicht.
Ich werde mir die sachen noch genauer ansehen dann melde ich mich wieder...((Im Forum))
Danke
Chris
Hi Cheatah,
fein. Was jetzt noch fehlt ist eine Problembeschreibung.
Problem ist das das Script bei einer null Eingabe sowie bei einer Eingabe die er nicht finden kann einen Fehler zurückgibt...
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\php\login.php on line 96
und auch ansonsten wie du schon gesehen hast voller Fehler steckt...
Das ganze soll eine Passwort abfrage darstellen die bei richtigem Passwort weiterleitet zur neuen function() und bei falschem Passwort eine Fehlermeldung zurück gibt...
if(action == "anmelden"){
$result = mysql_query("SELECT * FROM$table
WHERE clientid = $logid");
if($action == "anmelden"){ <--einen hab ich
$result = mysql_query("SELECT *FROM '$table' WHERE clientid = $logid"); <-- hier bin ich mir net sicher
vieleicht hast du ein Beispiel für mich, oder nen Anstatz?
ich wäre die dankbar für deine b.z.w. eure Hilfe :)
Cheatah
Hi,
Problem ist das das Script bei einer null Eingabe sowie bei einer Eingabe die er nicht finden kann einen Fehler zurückgibt...
ersteres kannst Du zuvor abfangen, zweiteres sollte eigentlich nur zu einer leeren Ergebnismenge führen. Wenn Du im Code natürlich von einem nichtleeren Ergebnis ausgehst, wird das wieder zu einem Fehler führen.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\php\login.php on line 96
"Hoppala, das SQL-Statement war defekt, die Datenbank konnte nichts damit anfangen."
und auch ansonsten wie du schon gesehen hast voller Fehler steckt...
Diese musst Du prinzipiell erst mal bereinigen.
if($action == "anmelden"){ <--einen hab ich
Bravo :-)
Wo hast Du $action und die anderen Variablen deklariert und initialisiert?
$result = mysql_query("SELECT *FROM '$table' WHERE clientid = $logid"); <-- hier bin ich mir net sicher
Richtige Stelle, falsche Lösung. Wenn in $table beispielsweise 'bla' steht, suchst Du hier in dem _String_ 'bla' (was nicht geht), nicht in einer Tabelle dieses Namens. Beschäftige Dich mit den Grundlagen von SQL; Lesetipp neben der Dokumentation Deines DBMS ist "SQL in 21 Tagen".
Cheatah
Hi Cheatah,
über meine Variablen wollen wa mal garnet reden ;-)
Hast du den einen Tipp wo ich mich bezüglich OOP schlau machen kann?
Wegen namespace und so...?
Um das Grundverständniss dafür zu bekommen, wenn ich das den kann werd ich mich bei dir melden und du darfst auch gern einen Blick auf meine Variablen b.z.w. meinen Code werfen...
Momentan würde das nur zu Gelächter führen und darauf lege ich keinen wert...
Dank dir...
Chris
Hi,
über meine Variablen wollen wa mal garnet reden ;-)
wenn es darum geht, Fehler zu finden, dann schon.
Hast du den einen Tipp wo ich mich bezüglich OOP schlau machen kann?
Wegen namespace und so...?
OOP hat damit gar nichts zu tun. Wenn Du eine URL der Art ".../bla.html?action=blub" hast und anschließend _direkt_ auf $action zugreifst (zugreifen kannst), welches dann auch 'blub' beinhaltet, ist Dein Server, genauer gesagt PHP miserabel konfiguriert. Das Archiv wird Dir eine Vielzahl Ausführungen zu diesem Thema offenbaren.
Um das Grundverständniss dafür zu bekommen, wenn ich das den kann werd ich mich bei dir melden
X-Will-Answer-Email: No
Frage bitte hier im Forum nach. Ich und viele andere werden Dir gerne helfen.
Momentan würde das nur zu Gelächter führen und darauf lege ich keinen wert...
Du wirst vieles ernten, aber kein Gelächter. Wir meinen es hier alle gut mit Dir, auch wenn es Dir hin und wieder anders erscheinen mag.
Cheatah
Hi,
wenn es darum geht, Fehler zu finden, dann schon.
OOP hat damit gar nichts zu tun. Wenn Du eine URL der Art ".../bla.html?action=blub" hast und anschließend _direkt_ auf $action zugreifst (zugreifen kannst), welches dann auch 'blub' beinhaltet, ist Dein Server, genauer gesagt PHP miserabel konfiguriert. Das Archiv wird Dir eine Vielzahl Ausführungen zu diesem Thema offenbaren.
Wenn du nun auf die register_globals hinaus:
$action = $_POST["action"];
ich bekomme meine Variablen nur so....
local wie auf dem Server...
Cheatah
Hi,
Wenn du nun auf die register_globals hinaus:
$action = $_POST["action"];
ja, genau das.
ich bekomme meine Variablen nur so....
Wunderbar :-)
Cheatah