eval() + echo + sleep()

pGFlo

Mitglied
Hab mir gerade nen Wolf probiert und auch nichts passendes durch das Suchen gefunden.

Meine Sachlage:
Ich habe in der Datenbank einen Code, der echo-Ausgaben enthält und das wichtigste, sleep befehle, die die Ausgabe kurzzeitig unterbrechen.
Habe versucht die Ausgabe über Eval zu machen, jedoch wird mir das sleep(2) entweder als Text ausgegeben oder es gibt einen Parse-Error.
Vielleicht hat ja jemand ne Idee was da das Problem ist, oder welchen "Trick" ich nicht kenne damit das klappt :)
 
Hallo!

Das hört sich ganz so an, als hättest du einen Syntax-Fehler!
Bei mir funktioniert folgender Code:

PHP:
<?php
$out = "echo\"test\";sleep(2);";
eval($out);
?>
 
hmmm geht leider nicht, da es sobald ich es aus der Datenbank auslese einen Fehler gibt:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /www/htdocs/v02..../test/test.php(20) : eval()'d code on line 1

Parse error: parse error in /www/htdocs/v02..../test/test.php(20) : eval()'d code on line 1

In der Datenbank steht folgendes, was bei direkter Ausgabe so wie du es gemacht hast klappt:

echo \"Es ist...\";sleep(4);echo \"sauwarm!\";



auch das sleep(4); scheint keine Beachtung zu finden, da sofort der komplette Text ausgegeben wird
 
Zuletzt bearbeitet:
Na, vielleicht solltest du dir deine Fehlermeldung mal genauer anschauen!
Dazu dienen diese doch auch!
Da steht doch, dass das Zeichen "\" stört!
Also musst du wohl folgenden Code benutzen:

PHP:
eval (stripslashes($tabelleninhalt));

Somit sollten die Slashes wieder verschwinden!
Es ist aber doch eigentlich logisch, dass die weg müssen! :rolleyes:

Kleiner Tipp:
Bevor du gleich in einem Forum postest, solltest du mal probieren, den Fehler selbst zu beheben!:p
 
naja ich finds nur nicht logisch dass der code geht wenn ich den ausm script so einbaue und sobald ich dann den selben Text aus der Datenbank nehme dieser Fehler kommt ;) mal schaun obs geht
 
Hallo,

Bei

echo(....):
sleep(dd);
echo(....);

pennt auch der Ausgabepuffer und der gesamte Text der beiden echo()'s wird nach ->dd sek.<- ausgegeben.

echo(...);
flush();
sleep(dd);
echo(...);

sollte gehen...
 
Zurück