fehler mit variabel

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
TC-Freaky
Mitglied
Beiträge: 20
Registriert: 09.09.2003 13:17
Wohnort: Universum -> Planet Erde -> Europa -> Deutschland -> NRW -> Heiligenhaus
Kontaktdaten:

fehler mit variabel

Beitrag 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);
Rechtschreibfehler sind gewollt und dienen zur allgemeinen Belustigung
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag 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
Selbst ist der Coder
Coder unter Linux
TC-Freaky
Mitglied
Beiträge: 20
Registriert: 09.09.2003 13:17
Wohnort: Universum -> Planet Erde -> Europa -> Deutschland -> NRW -> Heiligenhaus
Kontaktdaten:

Beitrag 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?
Rechtschreibfehler sind gewollt und dienen zur allgemeinen Belustigung
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag 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
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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).
Antworten

Zurück zu „Coding & Technik“