Datei erst nach If-Anweisung einbinden
Asmodis
- php
Moin zusammen, wie kann man das hinbekommen, das eine externe PHP-Datei erst nachdem die If-Anweisung ausgeführt wurde eingebunden wird? Mit include und require wird die ja dirket eingebunden, jedoch bekomme ich dann den Fehler, dass der Ordner nicht existiert, weil der vorher noch nicht erstellt wurde und das die Variablen leer sind, weil die noch nicht mit Post übergeben wurden.
Hat jemand eine Idee wie ich das hinbekomme? Oder besteht keine andere möglichkeit als das ich das Script von artikel.php dort einfüge?
Vielen Dank schonmal Asmodis
$year = date('Y');
if(file_exists('../news/' . $year)){
$month = date('m');
if(file_exists('../news/' . $year . '/' . $month)){
include 'artikel.php';
} else{
$month = date('m');
mkdir('../news/' . $year . '/' . $month, 0777, true);
include 'artikel.php';
}
} else{
$year = date('Y');
$month = date('m');
mkdir('../news/' . $year . '/' . $month, 0777, true);
include 'artikel.php';
}
Moin,
wie kann man das hinbekommen, das eine externe PHP-Datei erst nachdem die If-Anweisung ausgeführt wurde eingebunden wird? Mit include und require wird die ja dirket eingebunden, jedoch bekomme ich dann den Fehler, dass der Ordner nicht existiert, weil der vorher noch nicht erstellt wurde und das die Variablen leer sind, weil die noch nicht mit Post übergeben wurden.
Hat jemand eine Idee wie ich das hinbekomme? Oder besteht keine andere möglichkeit als das ich das Script von artikel.php dort einfüge?
Wie wäre es den Inhalt von der artikel.php
in eine Funktion zu packen und diese aufzurufen, an entsprechender Stelle?
Gruß
jo
Danke für die schnelle Antwort!! Ja das mit der Funktion hat funktioniert :>
Danke!!! Asmodis
Danke für die schnelle Antwort!! Ja das mit der Funktion hat funktioniert :>
Danke!!!
Gern!
Gruß
Jo
Tach!
wie kann man das hinbekommen, das eine externe PHP-Datei erst nachdem die If-Anweisung ausgeführt wurde eingebunden wird?
Einfach so hinschreiben.
Mit include und require wird die ja dirket eingebunden, jedoch bekomme ich dann den Fehler, dass der Ordner nicht existiert, weil der vorher noch nicht erstellt wurde
if (false) {
require 'nichtexistent.php';
}
erzeugt bei mir keinerlei Fehlermeldung. Die Gegenprobe mit true hingegen ergibt wie erwartet eine.
und das die Variablen leer sind, weil die noch nicht mit Post übergeben wurden.
Du hast wohl ein Ablaufproblem? Vielleicht solltest du lieber testen, ob es überhaupt ein POST-Request ist oder nicht, wenn du auf dessen Werte angewiesen bist. Alternativ geht auch ein Test auf die übergebenene Werten, denn selbst wenn der Post-Request kommt, heißt das nicht, dass die Werte gesetzt sein müssen.
$year = date('Y'); if(file_exists('../news/' . $year)){ $month = date('m'); if(file_exists('../news/' . $year . '/' . $month)){ include 'artikel.php'; } else{ $month = date('m'); mkdir('../news/' . $year . '/' . $month, 0777, true); include 'artikel.php'; } } else{ $year = date('Y'); $month = date('m'); mkdir('../news/' . $year . '/' . $month, 0777, true); include 'artikel.php'; }
Du hast unnötig viele Zuweisungen desselben Wertes an $year und bis auf das letzte else ist das auch für $month so. Das Script wird wohl kaum über Monats- oder Jahreswechsel laufen, dass sich die Rückgabe von date() ändert.
dedlfix.
Dachte eigentlich auch, dass ein include in dem Moment eingebunden wird, zu dem die Code-Ausführung den Ort des Include erreicht.
Mit der recursive-Option von mkdir, die Du ja eh schon entdeckt hast, solltest Du Deinen Code deutlich kompakter formulieren können:
$path = '../news/' . date('Y') . '/' . date('m');
if (!file_exists($path)){
mkdir($path, 0777, true);
include 'artikel.php';
ALLERDINGS frage ich mich, warum Du die Existenz des Jahr/Monat Pfades sicherstellen musst, bevor Du artikel.php einbindest. Wenn artikel.php diesen Pfad voraussetzt - ist es dann nicht die Pflicht dieses Scripts, sich um seinen eigenen Kram zu kümmern?
Rolf