php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2012, 19:16  
Neuer Benutzer
 
Registriert seit: 13.01.2012
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Prozessor befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Beim Klick auf zurück Button Datei neu einlesen

Hallo,
ich habe folgendes Problem:
Bei meinem Index.php wird per URL-Parameter eine Datei eingelesen:
index.php?site=kontakt liest dei Datei "include_kontakt.txt" ein, index.php?site=home liest die Datei "include_home.txt" ein.
Wenn ich jetzt von der Startseite (Home) auf Kontakt gehe, klappt alles wunderbar.
Klicke ich jetzt auf zurück, bin ich wieder auf der Startseite und die Datei wird leider nicht eingelesen.
Wie kann ich das ändern? Ich müsste die Seite irgendwie neu laden, aber wie?
<body onLoad="location.reload()"> endet ja in einer Endlosschleife...
Von PHP habe ich leider nicht soviel Ahnung, deshalb hab ich mir diesen Code mühsam zusammengebastelt:

PHP-Code:
$extension  ".txt";
$prefix "include_";


if (
$_SERVER['QUERY_STRING']) {

//Mit Parameter /site=/ aufgerufen
if (preg_match('/site=/'$_SERVER['QUERY_STRING']) == 1)
{

$reg preg_match('/site=/'$_SERVER['QUERY_STRING']);
if (
$reg == 1) {

//Ausdruck vorhanden und  valid
$param preg_replace('/site=/'''$_SERVER['QUERY_STRING']);

if (
file_exists($prefix.$param.$extension)) {

//Datei existiert
readfile($prefix.$param.$extension);
} else {

//Datei existiert nicht
readfile($prefix."home".$extension);
}

} else {
//Falscher Parameter angegeben
readfile($prefix."home".$extension);
}

} else {
//Kein Parameter angegeben
readfile($prefix."home".$extension);
}


} else {
//Kein Parameter angegeben
readfile($prefix."home".$extension);


Hab schon im Chip-Forum gefragt, aber es schaut nicht so aus, als ob das noch zu einem Ergebnis kommt
Prozessor ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.01.2012, 19:19  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Klick mal auf den Grundlagen-Knopf hier im Forum und fang mit dem Quake-PHP Tutorial an.

- $_GET nutzen
- Es kann nur ein else auf einer if sinnvoll folgen, elseif jedoch mehrere.
- Dein Vorhaben kann man mit einem Array und einer If-Anweisung und einer Else-Anweisung realisieren.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 13.01.2012, 19:42  
Neuer Benutzer
 
Registriert seit: 13.01.2012
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Prozessor befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Klick mal auf den Grundlagen-Knopf hier im Forum und fang mit dem Quake-PHP Tutorial an.

- $_GET nutzen
- Es kann nur ein else auf einer if sinnvoll folgen, elseif jedoch mehrere.
- Dein Vorhaben kann man mit einem Array und einer If-Anweisung und einer Else-Anweisung realisieren.
Danke für Deine Antwort.
Das wollte ich wissen.
Ich versuch's mal...
Prozessor ist offline   Mit Zitat antworten
Alt 13.01.2012, 20:19  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
bin ich wieder auf der Startseite und die Datei wird leider nicht eingelesen.
Ich kann das Problem irgendwie nicht nachvollziehen.

Worauf Du auf jeden Fall achten musst, ist, dass Dein include keine Userdaten ungeprüft einbinden darf. Sonst kann man Dir nämlich schön beliebige Daten auslesen (und hier sogar ausführen). Sicherheitslücke per excellance.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 13.01.2012, 23:32  
Neuer Benutzer
 
Registriert seit: 13.01.2012
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Prozessor befindet sich auf einem aufstrebenden Ast
Standard

So, hab jetzt folgendes zu Stande gebracht:
PHP-Code:
<?php
$extension  
".txt";
$prefix "include_";
$sites = array("home""kontakt""downloads""links""impressum""archiv");
$target == "nothing";

if (
$_GET['site']) {

foreach (
$sites as $val) {
if (
$_GET['site'] == $val) {
$target $val;
break;
 }
}

 if (
$target != "nothing") {
 if (
file_exists($prefix.$_GET['site'].$extension)) {
 include(
$prefix.$_GET['site'].$extension);
 } else {
 include(
$prefix."home".$extension);
 }
 }

} else {
include(
$prefix."home".$extension);
}
?>
Ist dieser Code "sicher"?
Ich kenne mich leider mit PHP kaum aus, nur mit JS, CSS und HTML.

Leider hilft mir der obige Code bei meinem ursprünglichem Problem auch nicht weiter (hab's getestet).

Also, ich hab im Quelltext der index.php den Code für Navigation und das PHP-Script darunter, so werden meine Seiten "zusammengesetzt".
Das klappt auch.
Wenn ich jetzt z.B. von der Startseite auf die Seite Kontakt gehe, funktioniert alles prima und so, wie's soll.
Das Problem ergibt sich, wenn ich jetzt in FF den Zurück-Button drücke, um z.B. von der Seite "Kontakt" wieder auf die Seite "Home" zu kommen, ohne die Navigation zu benutzen:
Dann besteht meine Seite nur aus der Navigation und es scheint so, als ob der PHP-Code nicht ausgeführt wird.

MfG,
Peter
Prozessor ist offline   Mit Zitat antworten
Alt 13.01.2012, 23:34  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

guck dir mal in_array an und checke per is_readable.

Aber: du kommst der Sache näher.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 13.01.2012, 23:57  
Neuer Benutzer
 
Registriert seit: 13.01.2012
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Prozessor befindet sich auf einem aufstrebenden Ast
Standard

So vielleicht?
PHP-Code:
$extension  ".txt";
$prefix "include_";
$sites = array("home""kontakt""downloads""links""impressum""archiv");


if (
$_GET['site']) {


 if (
in_array($_GET['site'], $sites)) {

 if (
is_readable($prefix.$_GET['site'].$extension)) {
 include(
$prefix.$_GET['site'].$extension);
 } else {
 include(
$prefix."home".$extension);
 }

 } else {
include(
$prefix."home".$extension);
}

} else {
include(
$prefix."home".$extension);

Wie kann ich das Problem mit dem "Zurück-Button" lösen?
Prozessor ist offline   Mit Zitat antworten
Alt 13.01.2012, 23:58  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Das Problem ergibt sich, wenn ich jetzt in FF den Zurück-Button drücke, um z.B. von der Seite "Kontakt" wieder auf die Seite "Home" zu kommen, ohne die Navigation zu benutzen:
Dann besteht meine Seite nur aus der Navigation und es scheint so, als ob der PHP-Code nicht ausgeführt wird.
Ich wüßte nicht, warum das so sein sollte. Ich tipp mal, dass Du früher dort keine Inhalte hattest und der FF irgendeinen Cache hervorholt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 14.01.2012, 07:47  
meikel
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Prozessor Beitrag anzeigen
Das Problem ergibt sich, wenn ich jetzt in FF den Zurück-Button drücke, um z.B. von der Seite "Kontakt" wieder auf die Seite "Home" zu kommen, ohne die Navigation zu benutzen:
Dann besteht meine Seite nur aus der Navigation und es scheint so, als ob der PHP-Code nicht ausgeführt wird.
Korrekt erkannt. Ohne nocache header bedient sich der Browser beim 'back' aus dem Cache, ohne den Webserver zu fragen.
  Mit Zitat antworten
Alt 14.01.2012, 11:17  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von Prozessor Beitrag anzeigen
So vielleicht?
PHP-Code:
$extension  ".txt";
$prefix "include_";
$sites = array("home""kontakt""downloads""links""impressum""archiv");


if (
$_GET['site']) {


 if (
in_array($_GET['site'], $sites)) {

 if (
is_readable($prefix.$_GET['site'].$extension)) {
 include(
$prefix.$_GET['site'].$extension);
 } else {
 include(
$prefix."home".$extension);
 }

 } else {
include(
$prefix."home".$extension);
}

} else {
include(
$prefix."home".$extension);

Wie kann ich das Problem mit dem "Zurück-Button" lösen?
PHP-Code:
$ext '.txt';
$prefix 'include_';

// sites festlegen
$sites = array('home''kontakt''downloads''links''impressum''archiv');

// sites validieren, bei nicht-existenz ein Warning senden.
foreach ( $sites as $checkSite )
   if ( !
is_readable($checkSite) )
      
trigger_error($checkSite.' ist keine gültigige Seite.'E_USER_WARNING);

// eingehende _GET's validieren
$siteFromWeb = isset($_GET['site']) ? $_GET['site'] : false;

// validierte Daten auswerten
if ( $siteFromWeb && in_array($siteFromWeb$sites) ) {
   include 
join(array($prefix$siteFromWeb$ext));   
}
else {
   echo 
'Die angeforderte Seite wurde nicht gefunden.';

__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Funktion nach Button Klick php-0-ahnung PHP Einsteiger 2 29.12.2011 11:58
Datei von einem Script im anderen einlesen robin1503 PHP Einsteiger 7 28.09.2011 06:21
Ausgabe von HTML Text bei Button Klick Henry1123 PHP Einsteiger 4 05.07.2011 23:16
csv Datei aus externem Link einlesen Rutor PHP Einsteiger 15 14.06.2011 12:23
Vor und Zurück Button, URL Manipulation co.smo PHP Einsteiger 8 29.05.2011 20:07
Zurück Button mit gespeicherter Eingabe Heiner Heinzel JavaScript, Ajax und mehr 5 25.11.2010 09:52
[Erledigt] csv Datei von externem Server einlesen Rutor PHP Tipps 2010 29 17.10.2010 20:36
Zurück Button Browser doppelte Speicherung bumer2006 PHP Tipps 2010 3 05.08.2010 15:44
Log Datei einlesen aber grosse Datei webdino PHP-Fortgeschrittene 9 23.05.2010 21:12
file_exists gibt False zurück, aber datei lässt sich im browser öffnen? SimStar001 PHP Tipps 2009 8 18.04.2009 18:42
Formulardaten trotz zurück button andrO PHP Tipps 2008 8 22.11.2007 20:08
CSV Datei einlesen, auslesen, updaten PHP Tipps 2006 6 08.01.2006 17:18
csv datei einlesen Promaetheus PHP Tipps 2007 11 23.12.2005 10:49
Mit Button 1.Seite in History zurück + MySQL-Eintrag löschen duerov PHP Tipps 2004 1 04.11.2004 10:51
UniCode Datei einlesen! PHP Tipps 2004 0 23.08.2004 17:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
html button datei einlesen, js klick auf zurückbutton, http .txt back button browser doesnt work

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:50 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum