[PHP] Links in Tabellen öffnen

Z

Zero

Keyboard-Ninja
hi,

ich möchte, dass wenn ich auf Link A klicke, die Datei Info.txt in der Tabelle angezeigt wird und wenn ich auf Link B klicke, soll, die Datei info2.txt in der Tabelle angezeigt wird.
Wobei die Info.txt natürlich dadurch verschwindet.

Wie kann ich das realisieren?
 
PHP:
<html>
<head>
...
</head>
<body>
	<table border="0" width="100%">
	<tr>
		<td><a href="?open=bla1.txt">Link 1</a></td>
	</tr>
	<tr>
		<td><a href="?open=bla2.txt">Link 2</a></td>
	</tr>
	</table>
	
	<table border="0" width="100%">
	<tr>
		<td>
			<?php
				print implode("", file("./".$_GET["open"]));
			?>
		</td>
	</tr>
	</table>
</body>
</html>

Nur eine Lösung. Ich rate dir aber dich mehr mit den Grundlagen von PHP zu beschäftigen, denn sonst geht das in die Hose und mein Beispiel ist auch mehr als eine reine Lösung, aber du wolltest ja nur eine Lösung :) tada :).
 
Ich weiß, ich müsste mich mehr mit PHP beschäftigen, aber Webdesign ist im Grunde überhaupt nicht mein Fall. Aber manchmal muss ich ja noch selber ran ... ;)
 
PHP hat auch überhaupt nichts mit Webdesign zutun :).
 
sondern? Ich dachte, dass wird für Websites benutzt? Genauso wie html?
 
jo, php muss aber vom server her "kompiliert" werden und ist somit programieren.
 
html = markup,
php = scriptsprache

sowas ist klar definiert und sollte logisch nachvollziehbar sein.
 
kompiliert? Ich denke ehr intepretiert, so wie Perl, oder?
 
ja, interpretiert. Ich sagte ja "Scriptsprache".
 
Das Tabellenlade Script da hat nur nen derben Harken:
Damit kann man jede beliebige Datei auf dem Server, auf die Apache leserechte hat auslesen und in der Tabelle ausgeben... Vorallem htaccess schutz wird dadruch sinnlos.
Ich rate dringend zu folgendem:
Code:
 <html>
<head>
...
</head>
<body>
    <table border="0" width="100%">
    <tr>
        <td><a href="?open=bla1.txt">Link 1</a></td>
    </tr>
    <tr>
        <td><a href="?open=bla2.txt">Link 2</a></td>
    </tr>
    </table>
    
    <table border="0" width="100%">
    <tr>
        <td>
            <?php
                
            $pag=$_GET['open']; //open Variable abfragen
            if ($pag == "") {       // wenn open leer ist, nen standard definieren
		$pag="standard.html";
	    }
	   
            $npag = str_replace("/", 'forbidden', $pag); // alle slashs in open durch forbidden ersetzen
	    $npag = str_replace('\\', 'forbidden', $npag); //alle backslashs in open durch forbidden ersetzen

	    if (file_exists($npag)) { //prüfen ob die Datei überhaupt existiert
   		$a = fopen($npag, "r"); // Datei öffnen
		while (!feof($a)) { //bis am dateiende angelangt
			$inhalt = fgets($a, 1000); // 1000 Zeichen auslesen
			print $inhalt; // das gelesene hinschreiben
		}
		fclose($a);	//dateihandle zumachen
	    } else { // wenn datei nicht existiert
		print "404 - $npag - File not found"; // error ausgeben
	    }
            ?>
        </td>
    </tr>
    </table>
</body>
</html>

Diese Variante limitiert den Zugriff zuverlässig auf ein einziges Verzeichnis. Ansonsten kann ich dringend dazu raten die Unterseiten nicht per Dateiname zu übergeben, sondern ein Array mit Dateien die geöffnet werden können sollen anzulegen und nur die Position in dem Array zu übergeben. Sähe dann so aus:
Code:
<?
$files[0] = "standard.html";
$files[1] = "credits.html";
$files[2] = "./pages/witze.html";
$files[3] = "./files/data.html";

$id = $_GET['open'];

if (!file_exists($file[$id])) {
 $id = 0;
}
 $handle = fopen($file[$id], "r");
 while (!feof($handle)) {
      $inhalt = fgets($handle, 1000); 
      print $inhalt; 
  }
fclose($handle);

?>
 
Zuletzt bearbeitet:
gut ... doch da tritt ein Problem auf ...
wenn man keine Text datei sondern eine PHP einbindet ... kommt kein Layout mehr an ... gibts da eine Möglichkeit das zu umgehen!?
 
Danke MrFenix.....das script ist schon einmal genau, was ich auch benötige.
Sehr fein...
Ich habe allerdings noch ein Problem damit. Und zwar möchte ich auch Seiten damit öffnen, welche sich NICHT im gleichen Verzeichnis befinden.
Also, ich möchte z.B. die Datei "news.php" damit aufrufen, welche sich im Ordner "news/include_this/" befindet (gehört zu einem News Script).
Und auch andere, welche sich in anderen Ordnern befinden.
Mit dem 1.Teil Deines Scripts komme ich ja klar, aber wo gehört der zweite Teil hin, wo die Seiten über ein Array übergeben werden???

Über eine Antwort wäre ich mehr als dankbar...
 

Ähnliche Themen

mehrere Textdateien gleichzeitig öffnen.

Keine grafische Oberfläche (Debian Installation)

Gruppenchat: OTP-Verschlüsselung

Ein Bild im Stream anzeigen lassen (JS / CBE)

Lokale GUI-Programme mit php-cgi starten

Zurück
Oben