SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 06.08.2002, 20:59:40
Benutzerbild von CyberAge
CyberAge CyberAge ist offline
Junior Member
 
Registriert seit: Apr 2002
Alter: 42
Beiträge: 282
CyberAge eine Nachricht über ICQ schicken CyberAge eine Nachricht über AIM schicken CyberAge eine Nachricht über Yahoo! schicken
stell mal den komplette quellcode als .txt datei auf deinen server, so dass man sich den code ansehen kann wie er jetzt aussieht, weil ich jetzt leider nicht weiß, wie der code jetzt genau bei dir aussieht. sieht aber nach einer fehlerhaften oder fehlenden if-anfrage aus!
__________________
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Im Leben ist nichts umsonst!
Selbst der Tod kostet das Leben!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mit Zitat antworten
  #12  
Alt 06.08.2002, 21:47:37
phpBeginner phpBeginner ist offline
Anfänger
 
Registriert seit: Aug 2002
Ort: Mannheim
Alter: 61
Beiträge: 32
Hier der Quellcode meiner login.php

Hallo CyberAge und alle die helfen können u. wollen!!

Da mein rootserver noch eingerichtet wird hier schnell
eine Ausweichadresse von meinem Kumpel:

http://www.wurmseder.de/login.txt

wollt es noch farblich markieren
geht aber nicht im editor :(

ok bin mal gespannt auf meine fehler ;))


PS: Die Datei die nach der Prüfung aufgerufen wird nimmt auch die Session (username) nicht an.

Grüsse
__________________
phpBeginner

Geändert von phpBeginner (06.08.2002 um 23:08:12 Uhr)
Mit Zitat antworten
  #13  
Alt 07.08.2002, 07:08:53
Benutzerbild von CyberAge
CyberAge CyberAge ist offline
Junior Member
 
Registriert seit: Apr 2002
Alter: 42
Beiträge: 282
CyberAge eine Nachricht über ICQ schicken CyberAge eine Nachricht über AIM schicken CyberAge eine Nachricht über Yahoo! schicken
Also, schlüsseln wir mal auf, was du an PHP-Code in deinem Script hast:

PHP-Code:
$abfrage0 = @mysql_query("SELECT username FROM registry WHERE passwort = PASSWORD('$passwort') AND username = '$username'");
    if(@
mysql_num_rows($abfrage0) == 1); 
{
     
$abfrage1 = @mysql_result($abfrage000);
     
$username $abfrage1;
     
session_start();    
    
session_register("$username");

1. mysql_query, Ergebnis geht in $abfrage0
2. if-anfrage, wieviele zeilen in $abfrage0 sind, wenn es nur eine ist kommt
---> Hier der erste Fehler: nach dem if kommt kein ; sondern die öffnende schweifklammer, und am ende die schließende.
3. $abfrage1 wird mit mysql_result gefüllt
---> Warum denn mysql_result? mysql_fetch_array ist doch viel einfacher zu bedienen! man erhält ein assoziatives array, welches zum Bleistift in diesem Falle den usernamen in der variablen $abfrage1[username] gespeichert hätte.
4. $username wird gleich $abfrage1 gesetzt
---> bei der verwendung von ...fetch_array würde dies so aussehen: $username = $abfrage1[username];
5. session starten und usernamen registrieren
---> dummer fehler! man registriert so: session_register("username"); bzw. bei den aktuellen PHP-Versionen kann man auch (bzw. soll man auch) so registrieren: $_SESSION[username] = $abfrage1[username]; somit kann man sich auch den zwischenschritt zur definition von $username sparen.

Ich würde das Script mal folgendermaßen umstellen:

PHP-Code:
$abfrage0 = @mysql_query("SELECT username FROM registry WHERE passwort = PASSWORD('$passwort') AND username = '$username'");
    if(@
mysql_num_rows($abfrage0) == 1
{
     
$abfrage1 = @mysql_fetch_array($abfrage0);
     
session_start();    
     
$_SESSION[username] = $abfrage1[username];

was jetzt aber immernoch fehlt ist der aufruf der userok.php bzw. userfail.php. das erreicht man am besten per header und die werden einfach in die vorhandene if-anweisung eingegliedert, also so:

PHP-Code:
$abfrage0 = @mysql_query("SELECT username FROM registry WHERE passwort = PASSWORD('$passwort') AND username = '$username'");
if(@
mysql_num_rows($abfrage0) == 1) {
     
$abfrage1 = @mysql_fetch_array($abfrage0);
     
session_start();    
     
$_SESSION[username] = $abfrage1[username];
     
header("Location: userok.php");
} else {
     
header("Location: userfail.php");

Ich hoffe ich konnte helfen und es funzt jetzt!
__________________
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Im Leben ist nichts umsonst!
Selbst der Tod kostet das Leben!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mit Zitat antworten
  #14  
Alt 07.08.2002, 10:32:29
phpBeginner phpBeginner ist offline
Anfänger
 
Registriert seit: Aug 2002
Ort: Mannheim
Alter: 61
Beiträge: 32
Vielen Dank für Deine Mühe!

Guten Morgen CyberAge!

Vielen Dank für den Aufwand den Du Dir gemacht hast, um das einem so dusseligen Anfänger wie mir näher zu bringen.

Ich werde das ganze heute nachmittag ausprobieren, muss nämlich jetzt erst mal mit allen 4 Kiddies zum Arzt....

Melde mich dann nochmal - also in jeden Fall schon mal ein dickes
DANKESCHÖN!!!


Gruss
__________________
phpBeginner
Mit Zitat antworten
  #15  
Alt 07.08.2002, 12:53:33
phpBeginner phpBeginner ist offline
Anfänger
 
Registriert seit: Aug 2002
Ort: Mannheim
Alter: 61
Beiträge: 32
So, bin wieder da!

Hmm... habs jetzt mal ausprobiert, folgende Fehlermeldung
kommt jetzt:

Warning: Cannot add header information - headers already sent by (output started at c:programmeapache groupapachehtdocslogin.php:3) in c:programmeapache groupapachehtdocslogin.php on line 15

er geht auch auf keine Datei.

Oben in der Adressleiste steht:

...login.php?username=testname&passwort=test&Submit=Abschicken

das scheint wohl zu stimmen, aber er geht nirgends hin.

Habe mal den neuen Quellcode meiner login.php hochgestellt.

http://www.wurmseder.de/login.txt

kann mir keinen Reim machen, wo jetzt der Fehler liegt,
ich sehe nur, dass er schon einen "head" abgeschickt hat
und den 2. head nicht laden kann... ? oder?

Gruss
__________________
phpBeginner
Mit Zitat antworten
  #16  
Alt 07.08.2002, 12:56:44
Ben20
Guest
 
Beiträge: n/a
Wenns heißt "Cannot send header..." dann wurde schon irgendwas an den Browser geschickt. Z.B. <html> oder sowas.

header() (genauso wie Sessions und Cookies) funktioniert aber nur wenn noch nichts (nicht mal eine Leerzeile) an den Browser geschickt wurde.

Schau mal ob oberhalb Deines Scriptes irgendwo was steht, dass an den Browser geschickt wird. Also ein HTML Befehl, ein echo oder auch nur ein Kommentar aus dem evtl. eine Leerzeile resultiert.


edit:

Habs gefunden:
Code:
<?php require_once('Connections/fdo.php'); ?>
   // Diese Leerzeile verursacht wohl den Fehler
<?php
mysql_select_db($database_fdo, $fdo);
$abfrage0 = @mysql_query("SELECT username FROM registry WHERE password = PASSWORD('$passwort') AND username [...]


Geändert von Ben20 (07.08.2002 um 13:00:11 Uhr)
Mit Zitat antworten
  #17  
Alt 07.08.2002, 13:03:01
phpBeginner phpBeginner ist offline
Anfänger
 
Registriert seit: Aug 2002
Ort: Mannheim
Alter: 61
Beiträge: 32
Hallo Ben20

Ja, da war eine Leerzeile.

Jetzt macht er allerdings was ganz witziges:

Ich rufe die login.php auf und er schaltet gleich weiter
zur "userfail.php", ohne dass ich die Chance habe überhaupt
einen User bzw. ein Passwort in der login.php im Formular
einzutragen.

Ich bekomme die login.php gar nicht zu Gesicht, er überspringt sie einfach...

Gruss
__________________
phpBeginner
Mit Zitat antworten
  #18  
Alt 07.08.2002, 13:08:35
Ben20
Guest
 
Beiträge: n/a
Ist kein Wunder. Du prüfst erst ob die per Formular gesandeten Daten richtig sind, falls ja -> userok falls nein -> userfail

Erst danach gibts Du das Formular aus. D.h. er prüft die Daten obwohl sie noch gar nicht da sind - ergo gibts immer userfail.

Setz das Ganze Script in ein Abfrage.

if(isset($_GET["NameDeinesSubmitKnopfes"])) {

// Prüfroutinen;

}


Falls Du dein Formular mit POST überträgst (was besser wäre, dann steht das Passwort nicht oben in der Adresszeile) dann mußt Du $_POST statt $_GET nehmen.
Mit Zitat antworten
  #19  
Alt 07.08.2002, 13:23:24
phpBeginner phpBeginner ist offline
Anfänger
 
Registriert seit: Aug 2002
Ort: Mannheim
Alter: 61
Beiträge: 32
re Ben20

Jetzt "schüttelt" sich das Formular kurz, aber nix passiert.

weder bei Eingabe eines richtigen Usernamens noch eines falschen.

Hab den neuen Quellcode hochgejagt, wahrscheinlich hab
ich wieder was falsch gemacht.. :((

http://www.wurmseder.de/login.txt

Gruss
__________________
phpBeginner
Mit Zitat antworten
  #20  
Alt 07.08.2002, 14:33:21
Benutzerbild von CyberAge
CyberAge CyberAge ist offline
Junior Member
 
Registriert seit: Apr 2002
Alter: 42
Beiträge: 282
CyberAge eine Nachricht über ICQ schicken CyberAge eine Nachricht über AIM schicken CyberAge eine Nachricht über Yahoo! schicken
Der Fehler liegt im Detail:

PHP-Code:
<?php require_once('Connections/fdo.php'); ?>
<?php
if(isset($_POST["Abschicken"])) {
.
.
.
schau mal hier: du hast in der ersten zeile eine öffnende <?php, eine anweisung und schließt dann wieder den PHP-modus. Ein Zeilenumbruch und dann wieder ein <?php ....

Moment! Hier haben wir doch schon den Übetäter! ein zeilenumbruch, der an den browser gesendet wurde, also eine ausgabe! Es dürfen vor header-anweisungen keine zeichen gesetzt werden, selbst ein leerzeichen oder in deinem falle ein zeilenumbruch, und schon funzt kein header mehr! also so umändern:

PHP-Code:
<?php require_once('Connections/fdo.php');
if(isset(
$_POST["Abschicken"])) {
.
.
.
__________________
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Im Leben ist nichts umsonst!
Selbst der Tod kostet das Leben!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

Geändert von CyberAge (07.08.2002 um 14:40:22 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:23:40 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt