fopen Failed

mckani

Erfahrenes Mitglied
moin ihr...schon wieder ich ^^
mein script will nicht arbeiten :(
Code:
<?
   $authid = $row['id'];
   $filename = "rechnung.php?id=$authid" ;

if(isset($_POST['Submit'])) {
	fopen( $filename, "r" ); //Line 44
}
else
{
        echo 'fehler aufgetreten';
}
?>

Fehler:
Code:
Warning: fopen(rechnung.php?id=23) [function.fopen]: failed to open stream: Invalid argument in ...\bestellung.php on line 44
irgentwie akzeptiert er die ?id=$authid nicht :/ was kann ich hier machen damit es ?

Danke Voraus.
mfg
 
Du kannst die Datei nicht oeffnen weil es sie auch garnicht gibt.

Du versuchst dort eine Datei mit dem Namen rechnung.php?id=$authid zu oeffnen.
Das Fragezeichen ist unzulaessig fuer Dateinamen.

Ich nehme an Du willst die Ausgabe von rechnung.php auslesen, und damit rechnung.php was machen kann braucht es wohl den Parameter id.

fopen() fuehrt das Script aber eh nicht aus, sondern liest es einfach nur aus.

Es gibt nun mehrere Wege das zu bewerkstelligen.
Du koenntest includen und die Ausgabe in eine Variable packen.
Stichwort: Output Control

Du koenntest aber auch ueber HTTP arbeiten.
Dafuer muesstest Du dann entweder fsockopen() nutzen oder es muesste allow_url_fopen=on sein, damit Du das mit fopen() machen kannst.
 
hi reptiler..
Also ich hab das jezt mal so gemacht das ich nur rechnung.php öffne ohne ?id=...
die ID vergabe hab ich einfach mit DESC gemacht also jezt soll eigentlich ein Rechnung mit der zulätzt eingefügten eintrag in DB ein Rechnung erstellt werden.!
so
nun hab ich folgende code
Code:
<?
if(isset($_POST['Bestellen'])) {
	fopen("rechnung.php", "r+" );
}
?>
er will ihn trozdem net öffnen :(

auch fsock hilft net weiter :( beides öffnet die datei rechnung.php net
 
Zuletzt bearbeitet:
kein fehler...
auch bei error_reporting(E_ALL);
Nix.. es öffnet einfach die rechnung.php net grr

Wenn ich die rechnung.php per explorer Öffne, dan geht das alles, er erstellt auch die rechnung :/
 
Zuletzt bearbeitet:
ja das er halt die rechnung.php ausführt.
wenn rechnung.php ausgeführt ist wird automatisch ein Rechnung erstellt.! ;)

dabei soll natürlich die seite rechnung.php nicht zu sehen sein nur er soll es in hintergrund ausführen / öffnen.!
 
Das dachte ich mir schon fast.
Und genau das macht fopen() eben nicht.
fopen() oeffnet eine Datei damit man anschliessend mit fwrite() oder fread() schreiben oder lesen kann.

Die Datei wird mittels fopen() in keinem Fall ausgefuehrt.
 
fsockopen() kann schon was nuetzen, man muss es nur richtig einsetzen.

Liest Du Dir eigentlich zwischendurch mal die Dokumentation zu den einzelnen Befehlen durch? ;)

exec() wird da wohl kaum was ausrichten koennen.
Wie gesagt:
reptiler hat gesagt.:
Es gibt nun mehrere Wege das zu bewerkstelligen.
Du koenntest includen und die Ausgabe in eine Variable packen.
Stichwort: Output Control

Du koenntest aber auch ueber HTTP arbeiten.
Dafuer muesstest Du dann entweder fsockopen() nutzen oder es muesste allow_url_fopen=on sein, damit Du das mit fopen() machen kannst.

Also entweder include() mit Output Control.
Oder ueber HTTP oeffnen.

Bei beiden wird das Script ausgefuehrt und Du kannst die Ausgabe in eine Variable speichern.
 
Zurück