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

gelöst PHP: Vergleich von Daten aus Formular mit Daten aus Datenbank schlägt fehl

Mitglied: DRwindows97

DRwindows97 (Level 1) - Jetzt verbinden

12.11.2013, aktualisiert 21:17 Uhr, 3281 Aufrufe, 3 Kommentare

Hallo Administratoren,
seit etwa 2 Wochen habe ich nun schon ein Problem mit einem PHP Skript.

Und zwar habe ich drei Dateien, die eine schreibt in die Datenbank die anderen beiden sind die Loginseite und das Skript, welches das Loginformular verarbeitet.
Das schreiben in die Datenbank funktioniert dabei wunderbar, aber beim Loginskript kommt es zu einem Fehler, den ich nicht so recht verstehe.

Der Fehler ist als Warnung gekennzeichnet und lautet: Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\pre_stable\enter.php

Der Aufbau der Datenbank ist:
id,name,rang

Wobei die ID, das Passwort für die Erstanmeldung ist.

Das Skript welches die Daten aus dem Formular mit den Daten in der Datenbank vergleicht ist folgendes:

01.
<?php
02.
########Eingabe aus Formular erhalten
03.
$nick = mysql_real_escape_string($_POST["benutzer"]);
04.
$pw = mysql_real_escape_string($_POST["passwort"]);
05.

06.
#####Eingabe mit Daten in Tabelle vergleichen
07.

08.
// Zur Datenbank verbinden
09.
$db = new mysqli('localhost', 'root', '', 'clanmember');
10.

11.
if ($db->connect_errno)
12.
{
13.
	echo 'Es konnte keine Datenbankverbindung hergestellt werden!<br />';
14.
	echo 'Folgender Fehler ist aufgetreten: (' . $db->connect_errno . ') ' . $db->connect_error;
15.
	exit;
16.
}
17.
$sql = "SELECT * FROM clanmember WHERE name = '$nick' AND id = '$pw'";
18.
$result = mysql_query($sql);
19.

20.
if(mysql_num_rows($result) == 1) {
21.
echo "LOGIN";
22.
} else {
23.
echo "FEHLER";
24.
}
25.
?>
Danke für eure Hilfe.

Mitglied: flow.ryan
12.11.2013 um 21:25 Uhr
Hallo,

ich habe da mal eine Frage an dich - vielleicht löst das auch schon das Problem:

- Du nutzt MySQLi um die Verbindung herzustellen (Zeile 9) - jedoch nutzt du MySQL um die Query auszuführen (Zeile 18 ff). Ist das Absicht?

Schau dir dazu doch mal das hier an:
http://www.selfphp.info/praxisbuch/praxisbuchseite.php?site=263&gro ...

Ggf. wäre auch PDO etwas für dich. Damit kannst du dann auch Parameter an die Query binden und somit die Abfrage gegen SQL-Injection sichern.

Denke auf jeden Fall da dran, die Login-Daten zu verschlüsseln - ordentlich und auch noch zu salzen!

Gruß,
Florian.
Bitte warten ..
Mitglied: DRwindows97
13.11.2013 um 17:47 Uhr
Hallo Florian,

ich habe das ganze jetzt zu MySQL umgeändert jedoch bleibt der Fehler bestehen.

01.
// Zugangsdaten und Datenbankname ggfs. anpassen!
02.
$db = mysql_connect('localhost', 'root', ''); 
03.

04.
mysql_select_db('clanmember') or exit ("Datenbank 
05.
existiert nicht!");
06.

07.
$sql = "SELECT * FROM clanmember WHERE name = '$vn' AND id = '$pw'";
08.
$result = mysql_query($sql);
09.

10.
if(mysql_num_rows($result) == 1) {
11.
echo "LOGIN";
12.
} else {
13.
echo "FEHLER";
14.
}
15.
?>
Bitte warten ..
Mitglied: Arano
13.11.2013 um 20:20 Uhr
Hi,

du hast da einen wichtigen Schritt vergessen !
Nach dem Ausführen des Queries hast du vergessen zu überprüfen ob das auch funktioniert hat !

Überprüfe in Zeile 9 ob der Rückgabewert von mysql_query() dem entspricht was du erwartest !
Was die Funktion wann zurückgibt steht (unglaublicherweise) im Manual PHP-Manual - mysql_query()

Bitte immer die englische Version bevorzugen !!
Wie hier gut zu sehen ist, steht in der englischen Version das diese Funktion veraltet __ist__ und in der Zukunft __entfernt wird__ ! In der deutschen steht nichts davon Oo
Solche "kleinen" aber wichtigen Unterschiede gibt es immer wieder in der deutschen Version. Teilweise sind oder waren die Funktionsbeschreibungen auch unvollständig.
Englisch kann man lernen -> PHP, SQL und so ziemlich jede andere Sprache(und deren Fehlermeldungen !) auch... ...sind in englisch ;)

Schaut man sich das Manual und deine Fehlermeldung an, sieht es sehr danach aus als ob das Query fehlschlägt !
Und somit können auch die folgenden Funktionen die siech darauf beziehen nicht funktionieren.
Das Query schlägt fehl, die Funktion gibt FALSE zurück, in $result steht ebenfalls FALSE und wird an die Funktion mysql_num_rows() übergeben, doch diese "meckert" s.Fehlermeldung

Tip
Schau dir auch die Funktionen print_r() und var_dump() an.
Die hätten die in diesem Fall auch helfen können das Problem zu finden


~Arano
Bitte warten ..
Ähnliche Inhalte
PHP
PHP Formular für ORACLE Datenbank
gelöst Frage von Mr.RobotPHP

Hallo Freunde, ich bin Systemintegrator in einem mittelständischen Unternehmen. Wir haben gerade ein Warenwirtschaftsprojekt + Umzug hinter uns und ...

VB for Applications

InStr - Vergleich schlägt fehl (Excel VBA)

gelöst Frage von MrCountVB for Applications2 Kommentare

Servus zusammen, ich habe hier ein kleines Excel-VBA Problem: Ausgangslage: Wert aus Zelle (x,y) wird in Variable "Wert" gespeichert. ...

Sonstige Systeme

Suche Vertragsverwaltung für Zuhause oder Datenbank- und Formular-Designer

Frage von cyborg1984Sonstige Systeme6 Kommentare

Hallo, ich suche ein Programm zur Verwaltung meiner privaten Verträge, wie Versicherungen, Strom-Anbieter usw. Es gibt eine Smartphone-App dafür ...

PHP

Mysqli PHP Formular anhand von Datumeingabe verändern (Drop Down)

Frage von FireickePHP1 Kommentar

Hallo Zusammen, ich versuche gerade für meine Firma ein Catering-Bestellungsformular zu erstellen. Hier soll jeder Mitarbeiter mit einem Login ...

Neue Wissensbeiträge
Humor (lol)
Preisvertipper
Information von Dilbert-MD vor 12 StundenHumor (lol)6 Kommentare

Moin! weil heute Freitag ist, zeige ich Euch den Preisvertipper der Woche: vergesst den Acer Predator 21x, der ist ...

Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 1 TagWindows Update2 Kommentare

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 2 TagenBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 4 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Heiß diskutierte Inhalte
Windows Update
WSUS - erforderlich Updates
Frage von emeriksWindows Update24 Kommentare

Hi, ein gängiges Verfahren, welche Updates man am WSUS-Server genehmigen soll und welche nicht, beruft sich darauf, dass man ...

Netzwerkgrundlagen
Neue Serverumgebung von 0 aufbauen
Frage von JacareNetzwerkgrundlagen20 Kommentare

Hallo zusammen, ich bin noch nicht lange hier und weiß nicht, ob meine Frage daher etwas ungewöhnlich ist. Ich ...

Off Topic
Installationskosten Verkabelung
Frage von Xaero1982Off Topic14 Kommentare

Moin Zusammen, ich bräuchte mal ein paar Meinungen, weil ich mir da gerade echt nicht ganz sicher bin. Ich ...

LAN, WAN, Wireless
Ich möchte mein Heimnetz umbauen. Welches ist die beste Variante?
Frage von s.burgerLAN, WAN, Wireless13 Kommentare

Schönen guten Tag liebe Admin-Community, ich wollte schon seit geraumer Zeit mein Heimnetzwerk etwas aufräumen und wollte euch um ...