PHP Frage Link im Hintergrund ausführen

Harry2k

Ensign
Registriert
Jan. 2017
Beiträge
151
Hallo cb community,

ich habe eine .php datei die mir nach verarbeitung einer csv einen link mit parameter einer variable https://meinbeinspiel.php?variable1
aufrufen soll, nun bin ich auf das Problem gestoßen wenn ich dieses per Header(location:...) Anweisung mache, immer ein Fehler kommt das der Header nicht mehr gesendet werden kann weil schon ein var_dump,printf usw davor aufgerufen werden.

der Fehler ist ein Warning: Cannot modify header information - headers already sent by ....

wie kann ich mit übergabe der Variable eine andere .php datei bzw externe php datei aufrufen ohne die header anweisung zu benötigen bzw. den header an belieger stelle senden um die php datei mit variable im link aufzurufen? Gibt es dafür noch eine andere anweisung/ einen weg? bin ein wenig am verwzeifeln da das script ansonsten gut funktioniert und ich gerne in der schleife in der die variable verarbeitet wird/die .csv eingelesen wird diesen aufruf benötige.

Weiß jemand eine Lösung dafür?

Gruß

Harry2k
 
Musst Du mal Deine php zeigen. Das deutet eigentlich eher darauf hin, dass eine vorgehende Anweisung nicht korrekt geschlossen wurde. Also ein Syntax-Fehler. Irgendwo kein Semikolon, Klammern oder Leerzeichen/Leerzeilen vorhanden?

edit: Auch mal Zeichensatz und Line-Ending-Encoding prüfen, ob wirklich alles auf UTF-8 und Linux eingestellt ist. Am besten mit vim machen, oder was verwendest Du?
 
habe mit notepad++ utf-8 ohne bom und keine leerzeichen vor und nach den php tags, gibts den gar keine möglichkeit eine datei auf dem gleichen server aufzurufen ohne die header anweisung verwenden zu müssen?Die datei habe ich leider erst Morgen abend zur verfügung.
 
Natürlich geht das, einfach aus der PHP Datei den HTTP request aufrufen, sehe da kein Problem in der Frage. Das absolute Basisfunktionalität

Z.b. Guzzle
 
damit müsste ich weiterkommen, bin selten mit php unterwegs, aber die antwort sollte mir genug liefern, danke dafür, passe nur ein script für unseren verein an, der ersteller ist leider vor ein paar monaten ausgetreten...
 
Harry2k schrieb:
gibts den gar keine möglichkeit eine datei auf dem gleichen server aufzurufen ohne die header anweisung verwenden zu müssen?
Wenn es innerhalb des gleichen Aufrufs passieren soll, dann kann man auch einfach include() oder dergleichen benutzen. Wenn es aber ein neuer Request sein soll, der dann auch noch was in Richtung Browser ausgeben soll, dann muss es ein Redirect sein. Der Klassiker ist Formularverarbeitung. Da macht man nach dem POST vom Abschicken immer die Verarbeitung und endet dann mit einem solchen Redirect.

Den führt man sauber mit genau diesem Location-Header aus. Der funktioniert nur nicht, wenn schon was ausgegeben wurde, denn dann kann man keine Header mehr ausgeben. Falls du nicht weißt, wo die Ausgabe erfolgt, hilft eventuell ein ob_start(); am Anfang deines Skripts. Das fängt dann alle versehentlichen Ausgaben in einem Puffer auf, anstatt sie auszugeben.

Unsauber kannst du auch Javascript-Code in die Seite schicken, der dann window.location ändert. Das ist aber dann ein Ekliger Hack (TM).

Eventuell willst du auch gar keine neue Websiete aufrufen, sondern irgendwas auf dem Server machen, ohne die Website zu ändern. Das ist dann Javascript mit Ajax. Dazu dann mal separat googeln.
 
  • Gefällt mir
Reaktionen: kim88
Zurück
Oben