Variable per Klick ändern

Dazu müsste man die txt-Datei wohl erst wie du's geplant hattest mit nl2br(file_get_contents(..)) einlesen und als temporäre Datei speichern. Und diese temporäre Datei müsste man dann mit include einbinden.

Irgendwie so:

PHP:
 // String einlesen
$tmp = nl2br(file_get_contents('content/' . $sprache . '/' . $page . '.txt'));

// Temporäre Datei tmp.php öffnen
$file = fopen ("tmp.php", "w+"); 

// String in Datei schreiben
fwrite ($file, $tmp);

// Datei schließen
fclose($file);

// Datei einbinden
include("tmp.php");

 // Datei löschen
unlink("tmp.php");
Keine Ahnung ob das so klappt; falls nicht, musst du dich selbst mal bzgl. fwrite/fopen/fclose schlau machen.



Die Links auf CB sind nur mit HTML + CSS gemacht. Ein Beispiel findest du hier oder auch hier.
 
Zuletzt bearbeitet:
wenn ich das richtig interpretiert habe:

Als erstes läd er die .txt Datei, inder ich schon <?php .... ?> zu stehen habe, mit Absätzen usw.
Durch nl2br werden Absätze durch <br> ersetzt, php funktioniert dann aber immer noch nicht. Deswegen wird das denn temporär auf dem jeweiligen PC abgespeichert in eine .php und dann per iclude wieder eingebunden(wird die tmp.php von alleine erstellt, oder muss man da noch was machen?). Dadurch sollten dann Absätze und php funktionieren. Sobald es geladen wurde, wird die Datei wieder gelöscht und alles kann von vorne beginnen.

Kann ich in die CSS auch Variablen einbinden? Weil sie ja sprachgebunden sind?
 
Jep, korrekt interpretiert; die temporäre Datei wird aber auf dem Server gespeichert, nicht lokal.


Die CSS-Datei kannst du natürlich auch variabel einbinden.

Wie gehabt via if-Anweisung:
PHP:
<html>
  <head>
<?php

  if($_GET['sprache'] == "en")
  {
    echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"css_englisch.css\">";
  }
  else
  {
    echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"css_deutsch.css\">";
  }

?>
  </head>
  ...
 
Die tmp.php muss aber schon auf dem Server liegen, oder wird sie von alleine erstellt?

PHP:
<?php    
 // String einlesen
$tmp = nl2br(file_get_contents('help.txt'));

// Temporäre Datei tmp.php öffnen
$file = fopen ("tmp.php", "w+"); 

// String in Datei schreiben
fwrite ($file, $tmp);

// Datei schließen
fclose($file);

// Datei einbinden
include("tmp.php");

 // Datei löschen
unlink("tmp.php");  
?>

So geht es auf jedenfall nicht, wenn ich in die tmp.php eine bestimmte sache reinschreibe, funktioniert es. Lese mir gerade mal fwrite und fopen durch.
 
Die Datei muss nicht existieren; schließlich wird sie ja bei jedem Aufruf auch wieder gelöscht. Da kämst du ja mit erstellen gar nicht hinterher ;)

Evtl. musst du Schreibrechte in dem Ordner setzen (http://thomas-becker.de/chmod.htm), in dem die Datei erstellt wird. Aber wenn keine Fehlermeldung kommt, dann sollten die Rechte passen.
 
Jop, Rechte waren Schuld, habe es gerade bei FileZilla ausprobiert und wollte gerade schreiben, dass es jetzt funktioniert. Da warst du aber schneller;)

eine tmp.php muss aber auf dem server liegen, sonst gehts nicht!

Wenn ich mir eine .txt nach dem umwandeln anschaue, funktioniert alle. Rufe ich dann in der Adressleiste tmp.php auf, zeigt er sie mir an mit dem Inhalt, der auf der Page steht. => weder der Inhalt noch die Datei wird gelöscht

habe auf php.net nachgeschaut, eigentlich müsste sie gelöscht werden
 
Zuletzt bearbeitet:
Hast du die Rechte mal testweise auf 777 gesetzt (also volle Rechte)?

Ansonsten würde ich mir überlegen, die txt-Datei gleich mit Zeilenumbrüchen zu schreiben; also so, wie man eine HTML-Seite eben schreiben würde.

Dürfte performanter sein, als dass bei jedem Aufruf einer Seite (von jedem Besucher) eine temporäre Datei erzeugt werden muss.
 
Ja, alles auf 777. Müsste aber eigentlich gelöscht werden. Aber auch wenn es nicht gelöscht wird, funktioniert es trotzdem, anscheinend wird jedes mal der Inhalt neu überschrieben. Kann z.B. auch mit unlink nichts löschen.

Wenn ich eine .htaccess erstelle, bekomme ich immer Error 500. Habe schon gegoogelt, aber nicht richtiges gefunden.

Code:
ErrorDocument 401 /fehler404.html
ErrorDocument 402 /fehler404.html
ErrorDocument 403 /fehler404.html
ErrorDocument 404 /fehler404.html
 
Zuletzt bearbeitet:
Die Pfade in der .htaccess sind nicht relativ zum Webserver-Root, sondern zum lokalen Dateisystem des Servers. Du müßtest also herausfinden, in welchem Verzeichnis deine fehler404.html liegt, und das dann da eintragen.
 
ich habe natürlich dir html-datein erstellt, aber trotzdem bringt er immer den Fehler 500 auch wenn die Seite eigentlich da ist.
 
Zurück
Oben