PHP funktioniert nicht

Hi

Ich habe folgendes Problem meine Scipte funktionieren nicht auf dem bplaced Server. hab das ganze auch auf funpic.de laufen dort geht alles.
Es handelt sich um einen Login Bereich und eine Begrüßung.

Hier mal die Scripte

Begrüßung:

<?php $username=strtolower($username); $username=ucwords($username); if(date("G") < 11) {$a="Hallo ".$username.", Guten Morgen!";} if(date("G") <= 13 && date("G") >= 11) {$a="Hallo ".$username.", Mahlzeit!";} if(date("G") <= 18 && date("G") >= 13) {$a="Hallo ".$username.", schönen Nachmittag!";} if(date("G") <= 21 && date("G") >= 18) {$a="Hallo ".$username.", schönen Abend!";} if(date("G") >= 21) {$a="Hallo ".$username.", so spät noch wach?";} echo $a; ?>

Login:

<?php session_start(); $username = $_POST["username"]; $passwort = $_POST["password"]; $passwort = md5($passwort); $log=0; $userdatei = fopen ("user.txt","r"); while (!feof($userdatei)) { $zeile = fgets($userdatei,500); $userdata = explode("|", $zeile); if ($userdata[0]==$username and $passwort==trim($userdata[1])) { $_SESSION['username'] = $username; header ("Location: [bestage.bplaced.net/home.html](http://bestage.bplaced.net/home.html)"); $log = 1; } } fclose($userdatei); if ($log==0) { echo "Zugriff verweigert Zurück"; } ?>

Logout:

<? session_start(); session_destroy(); header ("Location: [bestage.bplaced.net/index.html](http://bestage.bplaced.net/index.html)"); ?>

Session:

<?php session_start(); if(!isset($_SESSION['username'])) { echo "Bitte erst einloggen"; exit; } ?> Hier kommt dein altes script oder html seite hin

Danke

Macks

Und was genau geht nicht? Bekommst du eine Fehlermeldung?

Seite ist :
bestage.bplaced.net

Man soll sich erst einloggen damit man die Links benutzen kann.
Links oben erscheint aber nur
einloggen"; exit; } ?>
wenn man auf Download oder so klickt.
Es soll aber der hinweiß bitte erst einloggen erscheinen.
hab die Seite auch auf bestage.funpic.de laufen. Dort funktioniert alles wie es soll.

Danke Macks

Also, diese Textzeilen erscheinen weil sich der PHP-Parser garnicht angesprochen fühlt.
Z.B. die Datei “home.html” muss eine php-Datei sein, damit sie ausgeführt wird.

Auf Funpic wurde der Server so eingestellt, dass er auch html-Documente parst.

Du musst alle Dokumente die Endung *.php geben, damit sie ausgeführt werden.

Siehe auch mal den Quelltext an, über dem Doctype steht noch der Script.

Nochmal n’ Tipp, ich würd die user.txt nicht offen aufrufbar machen, das kann ein großes Risiko sein, trotz das die PW gehasht wurden.

Die Scripte hab ich mir mal kurz angeguckt, die müssten ja eigentlich funktionieren. (ungetestet)

Aber ich würd die POST-Daten auch nochmal filtern lassen, nach dem Motto "all input are evil"
Das kann immer ein Risiko sein, POST-Daten ungefiltert in dem Skript zu behandeln.

MfG, xcube

Am einfachsten geht das, wenn du wenn du einen Namen wählst, der mit .ht anfängt :wink:

Danke seite geht gg
was soll ich mit den userdaten usw machen???
kenn mich nicht soooo toll aus

danke

Wenn du die Benutzerdatei öffentlich zugänglich machst, kann jeder die Zugangsdaten sehen. So ein 5 Stelliges Passwort das MD5-Verschlüsselt ist, kann man problemlos in 2 Stunden per Brute-Force “dekodieren”

habe gerade das meine Begrüßung nicht mehr funktioniert. normalerweise hat man sich eingelogt und man wurde mit dem benutzernamen begrüßt. ZB. hallo Thomas, schonen nachmittag. jetzt steht nur nocu Hallo , schönen Nachmittag
Hab ich noch was vergessen? Script ist oben begr1
auf funpic läufts
wie soll ich meine user.txt schützen?

och,nö :smiley:
fies, gemein, nachlässig…
bestage.bplaced.net/user.txt

wasn da los.

versuchs vllt mit na
htaccess .htpasswd
:winke:

Hab ich eh auch in verwendung habe einen zweiten bereich so abgesichert der andere bereich isoll aber für alle user offen sein. also eigendlcih eh so wie ichs gehabt habe nur läufts hier noch nicht so ganz

ja dann streng dich an, dass es läuft. :winke:

irgend wie komm ich nicht von dem gedanken weg, dass deine seite ne datenablage wird,hmmm :neutral_face:

Wo bindest du dieses Script denn ein?

Wo kommt an dieser Stelle die Variable $username her?

Das Login.php nimmt sich die daten aus dem User.txt und vergleicht
login.php:

<?php session_start(); $username = $_POST["username"]; $passwort = $_POST["password"]; $passwort = md5($passwort); $log=0; $userdatei = fopen ("user.txt","r"); while (!feof($userdatei)) { $zeile = fgets($userdatei,500); $userdata = explode("|", $zeile); if ($userdata[0]==$username and $passwort==trim($userdata[1])) { $_SESSION['username'] = $username; header ("Location: [bestage.bplaced.net/home.php](http://bestage.bplaced.net/home.php)"); $log = 1; } } fclose($userdatei); if ($log==0) { echo "Zugriff verweigert Zurück"; } ?>

begrüßung bindet den usernamen ein
begr1.php:

<?php $username=strtolower($username); $username=ucwords($username); if(date("G") < 11) {$a="Hallo ".$username.", Guten Morgen!";} if(date("G") <= 13 && date("G") >= 11) {$a="Hallo ".$username.", Mahlzeit!";} if(date("G") <= 18 && date("G") >= 13) {$a="Hallo ".$username.", schönen Nachmittag!";} if(date("G") <= 21 && date("G") >= 18) {$a="Hallo ".$username.", schönen Abend!";} if(date("G") >= 21) {$a="Hallo ".$username.", so spät noch wach?";} echo $a; ?>

[quote=„chitypo“]ja dann streng dich an, dass es läuft. :winke:

irgend wie komm ich nicht von dem gedanken weg, dass deine seite ne datenablage wird,hmmm :neutral_face:[/quote]

Soll für die Seminarteilnehmer als Datenaustausch und Infoplattform der abgeschlossenen Projekte sein. also irgendwie hast recht :smiley:

[quote=“macks”]Das Login.php nimmt sich die daten aus dem User.txt und vergleicht
login.php: […][/quote]
Du solltest nicht den ganzen Code noch mal posten …

[quote]begrüßung bindet den usernamen ein
begr1.php:[/quote]
Sondern nur die Frage beantworten, wo diese begr1.php eingebunden wird.

Achso :unamused:

Direkt auf der Seite Home.php
als include

jetzt richtig?? :wink3:

Gut, dann wiederhole ich die Frage, wo da $username herkommt/herkommen soll.

Ich nehme mal an aus dem login oder session script. Ich kenn mich leider nicht so gut aus und habe mir die Scripte selber zusammengebastelt. Es gibt da noch die session.php ich weiß aber nicht wo er den usernamen hernimmt. Auf funpic gings so wie ichs habe drum meine blöde Fragerei.

:neutral_face:

Danke für eure Hilfe

Aber gerade dann sollte dir doch klar sein, wo die Werte der Variablen, die du verwendest, herkommen!

Dann finde es heraus!

Ins Blaue geschossen würde ich vermuten, dass dort auf Grund von register_globals=on der Wert automatisch aus der Session in eine globale Variable überführt wurde.

Hier ist register_globals aber aus gutem Grund auf off, und deshalb müsstest du in dem Falle direkt über $_SESSION auf Werte, die in der Session hinterlegt sind, zugreifen.

Hmmm… Danke chrisb :hail:

Ich werd das mal probieren ob ich das irgendwie hinbekomm.
Ist halt alles ein bisschen zusammengestoppelt von den scripten her :whata:
Falls ich hilfe brauch… weiß ich an wen ich mich vertrauensvoll wenden werde. :wink:

LG