[php] redirecten (header location)

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
Ik ben bezig met het maken van een admin in php. Nu kan de gebruiker zelf zijn content berichten aanmaken/wijzigen/deleten.

Als de gebruiker een item delete ga ik naar de function del_content(). In deze function wordt het item verwijderd uit de database.

Als dat gebeurt is dan moet er automatisch worden doorgelinkt naar de functie content_bekijken() in die functie worden alle items uit de DB gelezen.

Nu kan in ASP in de code boven aangezet worden
code:
1
response.buffer

zodat er niks naar de gebruiker wordt gestuurt en er dus waar in de code dan ook:
code:
1
response.redirect "index.php?page=content_bekijken"


Ik ben opzoek of dat ook kan in php want ik heb dat nodig. Ik kom alleen niet verder dan:
code:
1
header("Location: ?page=uren_bekijken");

Maar dit werkt niet omdat de header al verzonden is. |:( Hoe kan ik dit oplossen _/-\o_

Jochemmol


  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 05-05 20:33
De handleiding lezen en zorgen dat je geen header genereert voor deze regel. (een spatie buiten je code tags kan al genoeg zijn om headers te krijgen)

Was advocaat maar vindt het juridische nog steeds leuk. Doet tegenwoordig iets in de metaal.


Verwijderd

Zorgen dat de headers nog niet verzonden zijn. Dat kan door de headers te versturen voordat er enige output wordt gestuurd. En dat kan weer door de code te plaatsen voordat er output gegenereerd wordt, of door de output eerst te bufferen.

En je gaat mij niet vertellen dat je dat niet in de PHP manual hebt kunnen lezen.

  • Sendy
  • Registratie: September 2001
  • Niet online
Je mag geen enkele print doen voordat je de header() call doet. Verder is "?page=uren_bekijken" geen pagina. En eigenlijk is "index.php?page=uren_bekijken" ook fout, want de location header moet een absolute URI zijn: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Kijk hier eens bij voor de output-control functies van PHP. Zoals gezegd moet je ervoor zorgen dat je nog niets verstuurd naar de gebruiker (echo, print, ...) voordat je de header() functie gebruikt.

En om mijn mening nog even te geven: imo ben je verkeerd bezig en is er waarschijnlijk ergens een denk- of ontwerpfout gemaakt, als je de output gaat bufferen om (bijvoorbeeld in het geval van fouten) de gebruiker te kunnen redirecten. Output buffering is niet meer dan een hack.

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
je heb response.redirect niet begrepen Ali_Illegali denk ik. Maar bedankt voor jullie hulp.

Mijn vraag was gewoon kan ik in php automatisch een gebruiker doorsturen vanuit de ene functie naar een andere functie.

In ASP(VBScript) lukt het wel. Dus ik dacht het zal in php ook lukken maar ik kreeg problemen met dat er al gegevens zijn verzonden naar de gebruiker en die kunnen niet meer terug gehaald worden. dus doe je in ASP response.buffer dit is niet om fouten te voorkomen. maar dan wordt eerst het hele script uitgevoerd en de data die naar de gebruiker gestuurt moet worden wordt eerst gebuffer totdat het script is uitgevoerd en dan worden de gegevens verzonden.

Als er dan een response.redirect in staat dan wordt de buffer geleegd en wordt de gebruiker doorgestuurt

[ Voor 80% gewijzigd door Jochemmol op 25-06-2005 12:24 ]

Jochemmol


  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Ali_Illegali schreef op zaterdag 25 juni 2005 @ 12:15:
En om mijn mening nog even te geven: imo ben je verkeerd bezig en is er waarschijnlijk ergens een denk- of ontwerpfout gemaakt, als je de output gaat bufferen om (bijvoorbeeld in het geval van fouten) de gebruiker te kunnen redirecten. Output buffering niet niet meer dan een hack.
Daar ben ik het niet mee eens! Voor grotere systemen kan het erg handig zijn, zolang je het maar gestructureerd gebruikt.

ASCII stupid question, get a stupid ANSI!


  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 05-05 20:33
Jochemmol schreef op zaterdag 25 juni 2005 @ 12:18:
je heb response.redirect niet begrepen Ali_Illegali denk ik. Maar bedankt voor jullie hulp.

Mijn vraag was gewoon kan ik in php automatisch een gebruiker doorsturen vanuit de ene functie naar een andere functie.

In ASP(VBScript) lukt het wel. Dus ik dacht het zal in php ook lukken maar ik kreeg problemen met dat er al gegevens zijn verzonden naar de gebruiker en die kunnen niet meer terug gehaald worden. dus doe je in ASP response.buffer dit is niet om fouten te voorkomen. maar dan wordt eerst het hele script uitgevoerd en de data die naar de gebruiker gestuurt moet worden wordt eerst gebuffer totdat het script is uitgevoerd en dan worden de gegevens verzonden.

Als er dan een response.redirect in staat dan wordt de buffer geleegd en wordt de gebruiker doorgestuurt
Waarom zou je output genereren die je toch niet gebruikt ? Dan klopt toch de volgorde van je code niet ?

Was advocaat maar vindt het juridische nog steeds leuk. Doet tegenwoordig iets in de metaal.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Jochemmol schreef op zaterdag 25 juni 2005 @ 12:18:
[...]
Als er dan een response.redirect in staat dan wordt de buffer geleegd en wordt de gebruiker doorgestuurt
En heb je nu al op die link geklikt die Cheatah je gegeven heeft? Dan had je ook dit gelezen:
Note: As of PHP 4, you can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling ob_start() and ob_end_flush() in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.

Intentionally left blank


  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Jochemmol schreef op zaterdag 25 juni 2005 @ 12:18:
je heb response.redirect niet begrepen Ali_Illegali denk ik. Maar bedankt voor jullie hulp.
...
Ik denk dat ik dat wel begrepen heb hoor, maar heb je uberhaupt al gekeken op de website van PHP bij output buffering? PHP kan exact hetzelfde, alleen heten de functies wat anders.

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
ik heb het al voor elkaar. Bedankt allemaal.

[ Voor 26% gewijzigd door Jochemmol op 25-06-2005 12:44 ]

Jochemmol


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Manualwerk dus. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.