Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Warum funktioniert dieses einfache PHP Script nicht ?

Mitglied: keksprinz

keksprinz (Level 2) - Jetzt verbinden

29.03.2005, aktualisiert 31.03.2005, 5563 Aufrufe, 3 Kommentare

Das Unten stehende Php Script liefert mit immer Sie haben kein gültiges Passwort eingegeben. Was bei den Variabeln ausgegeben wird stimmt immer. Nur irgendwie mag er meine If schleife nicht. Woran kanns liegen ??? Ich bin echt am verzweifeln. Wenn ich im vorgeschalteten html Formular nix eingebe dann heist es Willkommen.

01.
<?php
02.
include 'odbc.php'; 
03.
$user = $_GET['user'] ;
04.
$passwd = $_GET['passwd'] ;
05.
 
06.
 
07.
$query = odbc_exec($odbc, "SELECT username, passwort FROM users where username = '$user' ") or die (odbc_errormsg()); 
08.
while($row = odbc_fetch_array($query)){ 
09.
 
10.
 
11.
$var1 = " ".$row['username']." "; 
12.
$var2 = " ".$row['passwort']." "; 
13.
 
14.
} 
15.
 
16.
 
17.
if ($var1 == "$user" && $var2 == "$passwd")
18.
 
19.
{
20.
echo "Willkommen 
21.
";
22.
}
23.
 
24.
 
25.
else
26.
 
27.
{
28.
echo "Sie haben kein gültiges Passwort eingegeben 
29.
";
30.
}
31.
 
32.
 
33.
echo "var1 $var1 
34.
";
35.
echo "var2 $var2 
36.
";
37.
echo "username $user 
38.
";
39.
echo "passwort $passwd 
40.
";
41.
 
42.
 
43.
odbc_close($odbc); 
44.
?>
Mitglied: Nebuchadneza
30.03.2005 um 08:09 Uhr
Hallo,

ist zwar schon lange her mit php, aber vielleicht kann ich meine grauen Zellen noch aktivieren und ein bisschen helfen.

Wie funktioniert die Übergabe der Variablen? Wird alles in einem Script ausgeführt oder lässt du die Benutzerdaten in Script A eingeben und in Script B auswerten?? Das könnte evtl. dann schon ein Fehler sein. Am besten in einem Script übergeben und überprüfen. Zudem würde ich die SQL-Abfrage ändern:
SELECT username, passwort FROM users where username = ... && passwort = ...
Danach kannst du die Abfrage machen
Wenn user = leer => FALSCH, sonst Login
dürfte eigentlich besser sein, wenn mein Hirn sich so früh morgens nicht irrt.

MfG

B.Böcherer

P.S.: So viel ich weiß, kann es öfters Probleme geben bei der Übergabe von Variablen mit GET. Meistens muss man dann mit Cookies oder Sessions arbeiten.
Bitte warten ..
Mitglied: phpchris
30.03.2005 um 09:00 Uhr
Kann es sein, dass $var1 immer den letzten Wert haben wird, weil du die While-Schleife abbrichst.
Bitte warten ..
Mitglied: Guenni
31.03.2005 um 00:28 Uhr
include 'odbc.php';

1.) Willst du mit den folg. Anweisungen die Formulardaten in Variablen speichern?
$user = $_GET['user'] ; ???
$passwd = $_GET['passwd'] ; ???

Dann laß dir mal mit der Anweisung : echo $_GET['user'] den Inhalt ausgeben. Ich vermute mal, da kommt nichts.
Wenn der Name der Textfelder in Formular user bzw. passwd ist, dann ist eine explizite Übergabe eh überflüssig, du kannst die Namen der
Textfelder direkt in die Abfrage einfügen, wie du es bereits gemacht hast.(siehe unten)

$query = odbc_exec($odbc, "SELECT username, passwort FROM users where username = '$user' ") or die (odbc_errormsg());

2.) Überprüfe mit : if($query) { echo "Gefunden.";}else { echo "Nichts gefunden.";} ob überhaupt ein Datensatz gefunden wurde.

3.) Da nur ein Datensatz gefunden wird(Benutzernamen sind ja i.d.R. einmalig), ist die while-Schleife unnötig.

while($row = odbc_fetch_array($query)){

$row = odbc_fetch_array($query) würde ausreichen.

4.) Mit den folg. Anweisungen übergibst du an $var1 bzw. an $var2 mit " " ein Leerzeichen, dann den usernamen bzw. das Passwort, und dann mit " " wieder ein Leerzeichen.

$var1 = " ".$row['username']." ";
$var2 = " ".$row['passwort']." ";

Wenn also wenn der Username z.B. 'Peter' ist steht in $var1 ' Peter ' und nicht 'Peter'.
}

5.) Der Spaltenname in $row[Spaltenname] darf nicht in Anführungszeichen stehen.

$var1 = $row[username]; wäre richtig.


6.) Die folg. If-Struktur und die anschl. echo-Anweisungen mußt du dann auch zusammenfassen, du kannst nicht im Else-Zweig
sagen, sie haben kein gültiges usw. eingegeben, und dann dir die Variablen ausgeben lassen.

if ($var1 == "$user" && $var2 == "$passwd")

{
echo "Willkommen";
}else{
echo "Sie haben kein gültiges Passwort eingegeben";
}
echo "var1 $var1";
echo "var2 $var2";
echo "username $user";
echo "passwort $passwd";
odbc_close($odbc);

Benutze statt dessen die Überprüfung unter 2.), etwa in der Form:

if($query) {
$row = odbc_fetch_array($query);
echo "Gefunden.";
echo "Username: $row[username]";
echo "Passwort: $row[passwort]";
}else {
echo "Nichts gefunden.";
}

?>

Ich hoffe, meine Korrekturen waren richtig.

Gruß Günni
Bitte warten ..
Ähnliche Inhalte
Router & Routing

Funktioniert unifi Dual WAN einfach nicht?

Frage von StefanKittelRouter & Routing5 Kommentare

Hallo, ich habe letzte Woche bei einem Kunden eine kleine Unifi USG mit Unifi WLAN AP und Switch installiert. ...

Apache Server

PHP funktioniert nicht auf VirtualHosts

gelöst Frage von peterlaApache Server4 Kommentare

Hallo! Ich kenne mich zwar grundsätzlich mit Linux aus, allerdings nicht so mit Apache. Nun habe ich einen Apache ...

PHP

PHP Script zum Daten auslesen gesucht

Frage von majas3PHP2 Kommentare

Hallo, ich habe viele taußend HTML Seiten in verschiedenen Verzeichnissen und bin auf der Suche nach einem PHP Script ...

PHP

PHP-Script um Online zu zippen

Frage von sbsnewbiePHP3 Kommentare

Hallo Admins, folgende Frage, die bestimmt easy ist, bei der ich aber gerade ein Brett vor dem Kopf habe: ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 8 StundenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 3 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 4 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 6 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server26 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware20 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server18 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update12 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...