WebWork Magazin - Design, Gestaltung, Online Medien, html

Webhosting Provider Domain

Home | Registrieren | Einloggen | Suchen | Aktuelles | Suleitec Webhosting



Im Homepage und Webhosting-Forum --- Nach Login entweder 1 Seite oder eine andere Seite laden

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. FRagen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Nach Login entweder 1 Seite oder eine andere Seite laden Antworten
Nach Login entweder 1 Seite oder eine andere Seite laden
theotoffel
Pixelschubser
Threadstarter




Beiträge: 3
Mitglied seit 03.11.2009

Hallo zusammen,

als Neuling bei PHP möchte ich nach einem Login per if-Abfrage (ist Passwort ok?) bei ok eine Seite laden, wenn nicht ok, dann eine andere. Es soll aber eine vollkommen neue Seite geladen werden, mit include könnte ich ja was unterschiedliches ausgeben. Das will ich aber nicht.

if(isset($_POST['pass'])){
if($_POST['pass']=="PETER"){
//echo "<h3>Geschützter Bereich</h3>";
//echo "<p> Hier stehen die geheimen Inhalte ... </p>";
//include 'Geschuetzt.html';
fopen("/Geschuetzt.html","r+");
}
else {
//echo "<p> Leider kennen Sie das Passwort nicht ... </p>";
fopen("/Gaeste.html","r+");
}
}

ich erhalte aber folgende Fehlermeldung beim ersten Laden der Seite:

Warning: fopen(/Gaeste.html) [function.fopen]: failed to open stream: No such file or directory in D:\Server\htdocs\PHP_Kurs\passwort.php on line 33

Selbstredend: beide html-Dateien liegen im gleichen Verzeichnis wie die Login-Datei, also das ist der Fehler nicht. Der Dateinamen ist auch korrekt.

Kann mir da jemand sagen, was ich machen muss? mit "header" komm ich nicht klar
Vielen Dank und Gruß
Reinhard

Diese Nachricht wurde geändert von: theotoffel
  Profil   E-Mail   Editieren   Zitieren
chip
Foren-Team





Beiträge: 407
Mitglied seit 27.06.2003

Mit header() kannst du das relativ einfach lösen.

1:
header("Location: /Gaeste.html");


leitet einfach auf die Seite Gaeste.html weiter, die hier relativ zum Wurzelverzeichnis angegeben wurde (deshalb der /). Sie muss sich also hier direkt im Wurzelverzeichnis befinden.

  Profil   Website   Editieren   Zitieren
theotoffel
Pixelschubser
Threadstarter




Beiträge: 3
Mitglied seit 03.11.2009

Hallo chip,

erst einmal danke für den Tipp, ich habs ausprobiert und prompt ärgert mich mein skript mit einer neuen Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at D:\Server\htdocs\PHP_Kurs\passwort.php:2) in D:\Server\htdocs\PHP_Kurs\passwort.php on line 19

hier nochmal die ganze phpdatei, die ich starte:
<?php
echo"<h3>Wie lautet das Passwort?</h3>";
echo"<form action='passwort.php' method = 'POST'>";
echo"<input type='text' name='pass'/>";
echo"<input type='submit' value='Senden' />";
echo"</form>";
echo"<p><hr></p>";
?>
<?php
if(isset($_POST['pass'])){
if($_POST['pass']=="PETER"){
//echo "<h3>Geschützter Bereich</h3>";
//echo "<p> Hier stehen die geheimen Inhalte ... </p>";
//include 'Geschuetzt.html';
header("Location: /Geschuetzt.html");
}
else {
//echo "<p> Leider kennen Sie das Passwort nicht ... </p>";
header("Location: /Gaeste.html");
}
}
?>

ist ganz schön umgewöhnungsbedürftig zu vb oder vba

außer in den html-Dateien ist kein "head" getaggt, da hab ich noch ein grundsätzliches Verständnisproblem.

Kannst nochmal helfen? Vielen dank!

Reinhard

  Profil   E-Mail   Editieren   Zitieren
Baldur
Foren-Team





Beiträge: 209
Mitglied seit 22.09.2001

Das Problem ist : Vor header () darf keinerlei Ausgabe erfolgen.
Mal als erste Zeile ob_start(""); einfügen.
Dann wird die Ausgabe vorab in einen Puffer geladen und der header immer zuerst gesendet.



---
Viele Grüße aus Heilbronn
Baldur
Elektronik Forum natülich bei http://www.suleitec.de
Versand von Ersatzteilen für Haushaltsgeräte und Unterhaltungselektroni

  Profil   E-Mail   Website   Editieren   Zitieren
theotoffel
Pixelschubser
Threadstarter




Beiträge: 3
Mitglied seit 03.11.2009

Hi Baldur,

Dein Tipp war Gold wert, so klappt es nun:

<?php
ob_start("");
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');

if(isset($_POST['pass'])){
if($_POST['pass']=="PETER"){
//echo "<h3>Geschützter Bereich</h3>";
//echo "<p> Hier stehen die geheimen Inhalte ... </p>";
//include 'Geschuetzt.html';
ob_start("");
header("Location: http://$host$uri//Geschuetzt.html");
exit;
}
else {
//echo "<p> Leider kennen Sie das Passwort nicht ... </p>";
ob_start("");
header("Location: http://$host$uri//Gaeste.html");
exit;
}
}
else{
echo"<h3>Wie lautet das Passwort?</h3>";
echo"<form action='passwort2.php' method = 'POST'>";
echo"<input type='text' name='pass'/>";
echo"<input type='submit' value='Senden' />";
echo"</form>";
echo"<p><hr></p>";
}

?>

Vielen herzlichen Dank, Das ist jetzt klasse!

  Profil   E-Mail   Editieren   Zitieren
admin-cb
Foren-Team




Beiträge: 3
Mitglied seit 16.10.2009

Jetzt musst du nur aufpassen, dass niemand die URL des geschützten Bereiches erfährt, sofern dort keine zusätzliche Absicherung drin ist.
Dein ursprüngliches Problem lag darin, dass du die Datei im Wurzelverzeichnis des Servers öffnen wolltest, wo sie sicherlich nicht liegt. Du musst bei include oder fopen die Serverpfade angeben, also entweder relativ (ohne führenden /) oder absolut im Filesystem (je nach Provider z.B. /var/www/kunde/e/example.com/geschuetzt.html).
Der absolute Pfad der aktuellen Datei steht in $_SERVER["SCRIPT_FILENAME"]

Das ob_start() wäre auch nur einmal erforderlich gewesen. Beendet wird das per ob_end_flush() oder ob_end_clean(). php.net weiß mehr.

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Nach Login entweder 1 Seite oder eine andere Seite laden

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Nach Login entweder 1 Seite oder eine andere Seite laden AntwortenLetztes Posting
Wie baue ich ein smilie ein und lese den wieder aus aus der datenbank?
in "PHP & MySQL"
17 11.03.2010 11:40 von Rieke
Möchte mir gerne ein PHP Forum auf meine Webseite instalieren und bräuchte Hilfe!
in "PHP & MySQL"
24 04.03.2010 18:11 von Spark
Navigation gesucht
in "PHP & MySQL"
9 22.02.2010 11:51 von ted
PHP5, htaccess, Joomla
in "PHP & MySQL"
4 02.01.2010 00:39 von Rieke
Abrufen von Mails per Pop3 und dann in der Datenbank speichern.
in "PHP & MySQL"
22 25.12.2009 22:30 von raiserle
Dateien im FTP nach Test-Installation wieder löschen
in "PHP & MySQL"
1 26.11.2009 10:22 von Rieke
Problem -> Große Datenbanken füllen
in "PHP & MySQL"
8 16.11.2009 14:55 von woyng



Nach oben