CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
09.06.2004, 18:59:04
|
Junior Member
|
|
Registriert seit: May 2004
Alter: 54
Beiträge: 350
|
|
Probleme mit Abfrage
Bei diesem Script:
PHP-Code:
<?php
session_start ();
include("db.php");
$sql = "SELECT ".
"nickname, rang, vorname, nachname, geburtstag, homepage, email, icq".
"FROM ".
"benutzerdaten ".
"WHERE ".
"(Nickname like '".$_REQUEST["name"]."') AND ".
"(Kennwort = '".$_REQUEST["pwd"]."')";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) > 0)
{
$data = mysql_fetch_array ($result);
$_SESSION["user_rang"] = $data["rang"];
$_SESSION["user_nickname"] = $data["Nickname"];
$_SESSION["user_nachname"] = $data["Nachname"];
$_SESSION["user_vorname"] = $data["Vorname"];
$_SESSION["user_geburtstag"] = $data["geburtstag"];
$_SESSION["user_email"] = $data["email"];
$_SESSION["user_homepage"] = $data["homepage"];
$_SESSION["user_icq"] = $data["icq"];
header ("Location: intern.php");
}
else
{
header ("Location: formular.php");
}
?>
erhalte ich diese Fehlermeldung:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web293/html/tutorial-scripte/newsscript/login.php on line 14
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web293/html/tutorial-scripte/newsscript/login.php:14) in /home/www/web293/html/tutorial-scripte/newsscript/login.php on line 30
Woran liegt das? Was habe ich falsch gemacht?
|
09.06.2004, 19:54:00
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
Re: Probleme mit Abfrage
Zitat:
Original geschrieben von Corvin Gröning
Woran liegt das? Was habe ich falsch gemacht?
|
Zwischen icq und FROM fehlt ein Leerzeichen. Deshalb ist $result nicht gültig, mysql_num_rows wirft einen Fehler und header funktioniert wegen der Fehlermeldung nicht, weil sie schon Content ist.
|
09.06.2004, 20:11:20
|
Junior Member
|
|
Registriert seit: May 2004
Alter: 54
Beiträge: 350
|
|
Danke, das klappt! Nun habe ich das nächste Problem, eigentlich sollte er ja die Sessionvariablen zuweisen und dann auf intern.php umleiten, dies tut er aber nicht, sondern leitet wieder auf formular.php um, obwohl user und passwort richtig eingegeben wurde.
|
10.06.2004, 09:17:10
|
Member
|
|
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
|
|
Bei Deiner Abfrage können mehr als 1 Datensatz zurückgegeben werden -> LIMIT 1 anhängen.
Was gibt denn mysql_num_rows($result) zurück? Füge mal ein:
$rows = mysql_num_rows($result);
echo $rows; // nur zur Prüfung; danach geht header() nicht mehr
|
10.06.2004, 12:53:16
|
Junior Member
|
|
Registriert seit: May 2004
Alter: 54
Beiträge: 350
|
|
Es wird 1 zurückgegeben.
|
10.06.2004, 13:57:23
|
Member
|
|
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
|
|
Dann lege mal ein echo vor:
header ("Location: intern.php");
... um zu sehen, ob er dahin kommt. Wenn ja, auch direkt hinter die Zeile, um das Problem einzugrenzen.
|
10.06.2004, 14:02:11
|
Junior Member
|
|
Registriert seit: May 2004
Alter: 54
Beiträge: 350
|
|
Vielen Dank für den Tipp! Ich habe mittles dieser Methode jetzt das Problem gefunden. Es war in der in intern.php eingebunden Datei ein Fehler mit der Umleitung.
|
10.06.2004, 14:04:44
|
Senior Member
|
|
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
|
|
Hi Corvin,
die Verrenkungen mit den Anführungszeichen " beim SQL-String brauchst Du nicht.
Obacht, Du sprichst Feldnamen, wie z.B. "nickname", klein- und grossgeschrieben an! (Auch bei der Zuweisung der Sessionvariablen -> $data['feldname']...)
Als Vergleichsoperator benutzt Du "=" und "LIKE". "LIKE" benutzt man eigentlich im Zusammenhang mit den Platzhalterzeichen "%" und "_".
Die Klammern in der WHERE-Klausel solltest Du nochmal überdenken...
Code:
$sql = "SELECT
nickname, kennwort, rang, vorname, nachname, geburtstag, homepage, email, icq
FROM
benutzerdaten
WHERE
(Nickname like '".$_REQUEST["name"]."')
AND
(Kennwort = '".$_REQUEST["pwd"]."')
";
Gruss
chris17
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:29:43 Uhr.
|