Seite 1 von 1

fehler mit variabel

Verfasst: 03.01.2005 22:48
von TC-Freaky
hallo zusammen,

ich habe folgenden code zum speichern einer php-datei. die variabel $bau wird per formular noch übergeben.

ein php-code soll als php-datei gespeichert werden, allerdings habe ich drei variabeln welche noch in den code eingesetzt werden sollen ($bau , $time , $date)

wo liegt da der fehler, dass die variabeln da einfach nach dem speichern nicht ausgegeben werden sondern leer bleiben?

Code: Alles auswählen

$write = fopen("./bau.php", "w+");
fputs($write, "
<?
\$bau = \"$bau\";
\$time = \"2005-01-03\";
\$date = \"23:30:00\";
\$pruefzeit = strtotime(\"$date $time\"); 
\$jetzt = time(); 
if(\$jetzt > \$pruefzeit) { 
    echo\"abgeschlossen\"; 
?>

");

fclose($write);

Verfasst: 03.01.2005 22:57
von MrMind
Also ich seh auf anhieb keinen Fehler, aber ich würde es an deiner Stelle so machen:

Code: Alles auswählen

$text_to_write = '<?php
$bau = "' . $bau . '";
//weitere Zeilen
?>';

//Anweisung zum schreiben
Dann musst du auch net so viel escapen.

An deiner Stelle würde ich aber noch die Übergabevariablen validieren.

Mfg
MrMind

Verfasst: 03.01.2005 23:19
von TC-Freaky

Code: Alles auswählen

\$time = \"2005-01-03\";
\$date = \"23:30:00\";
\$pruefzeit = strtotime(\"$date $time\"); 
die beiden variabeln $date und $Time werden unten nicht angezeigt ´, warum?

Verfasst: 03.01.2005 23:29
von MrMind
TC-Freaky hat geschrieben:

Code: Alles auswählen

\$time = "2005-01-03";
\$date = "23:30:00";
\$pruefzeit = strtotime("$date $time"); 
die beiden variabeln $date und $Time werden unten nicht angezeigt ´, warum?
Wie meinste das jetzt???

Mfg
MrMind

Verfasst: 03.01.2005 23:59
von Pyramide
Warum schreibst du nicht direkt den Timestamp in die Datei?

Code: Alles auswählen

$pruefzeit = strtotime("$date $time");
$fp = fopen("bau.php", "w");
fwrite($fp, '<' . '?php
$pruefzeit = ' . $pruefzeit . ';
$jetzt = time();
if($jetzt > $pruefzeit) {
    echo 'abgeschlossen';
}
?'.'>');
fclose($fp);
- "w" reicht bei fopen aus, wenn du nicht lesen willst
- <?php und ?> solltest du sicherheitshalber trennen, da der Interpreder sonst meckert warum du mitten in einem String den PHP-Modus verlassen willst

Alternativ kannst du auch einfach nur die Prüfzeit in eine Datei schreiben und dann Auslesen - so musst du nicht jedesmal das komplette Programm schreiben (ausserdem ist so das Risiko geringer, daß dir jemand Code unterjubelt).