[PHP] Redirect met behoud van $_POST variabelen met CURL?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo allemaal,

Het idee is het volgende:
  • Bezoeker verzend formulier.
  • Pagina verwerkt $_POST naar variabelen en verzend email met info.
  • Na het verzenden van de email moet de pagina automatisch geredirect worden naar de laatste pagina, maar moet wel de $_POST variabelen weer doorsturen.
Het probleem zit hem in de laatste stap. Ik heb geprobeerd curl te gebruiken, maar die stuurt alleen de $_POST door naar een bepaalde url, maar niet de bezoeker. De variabelen MOETEN via $_POST en niet $_GET. De rede voor de redirect is het voorkomen van dubbele emails bij refreshen, maar ik heb wel de eerder gestuurde variabelen nodig voor de laatste pagina.

fopen werd ook her en der geopperd, maar wordt weer afgeraden ivm veiligheid.

Iemand een idee?

Groeten,
Robert

Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Zo even een vraag, dit bedraagt een zelfstandig PHP bestand (bijv: blabla.php)?
Ik kom trouwens net iets tegen op Google, kijk anders even hier: Clicky

Daar wordt vooral gezegd dat je hidden fields moet gaan gebruiken.

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je laatste actie lijkt idempotent en zou dan gewoon via GET kunnen en eigenlijk zelfs moeten.

{signature}


Acties:
  • 0 Henk 'm!

  • .Johnny
  • Registratie: September 2002
  • Laatst online: 04-07 11:10
en waarom kan het niet met een GET, want dat lijkt me wel de geeigende manier?

nu probeer je een workaround, en dat lukt ook niet maar ipv het eerste probleem aan te pakken, ga je nu proberen de workaround op te lossen?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Manueltje22 schreef op maandag 25 mei 2009 @ 16:30:
Zo even een vraag, dit bedraagt een zelfstandig PHP bestand (bijv: blabla.php)?
Ik kom trouwens net iets tegen op Google, kijk anders even hier: Clicky

Daar wordt vooral gezegd dat je hidden fields moet gaan gebruiken.
Dank je wel. De optie met hidden fields gebruiken volgens mij altijd javascript om het formulier te verzenden. Dat wil ik liever niet gebruiken.

@Voutloos en .Johnny
Ik wil de url graag schoon houden. Als er geen andere nette oplossing is, dan doe ik het wel met $GET

[ Voor 9% gewijzigd door Verwijderd op 25-05-2009 16:38 ]


Acties:
  • 0 Henk 'm!

  • Manuel
  • Registratie: Maart 2008
  • Laatst online: 19-09 11:12
Volgens mij niet hoor, als je die hidden element gewoon een naam geeft dan kan je dat even goed met $_POST["blabla"] benaderen, zo moet je de waarden kunnen overgeven lijkt me. Anders kan je natuurlijk ook nog $_GET gebruiken.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 25 mei 2009 @ 16:35:
Ik wil de url graag schoon houden.
Want :?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op maandag 25 mei 2009 @ 16:35:

@Voutloos en .Johnny
Ik wil de url graag schoon houden. Als er geen andere nette oplossing is, dan doe ik het wel met $GET
Je zou natuurlijk ook gewoon het daadwerkelijke probleem* op kunnen gaan lossen.

*het voorkomen van dubbele submits

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

volgens mij is het onmogelijk om de browser te opdracht te geven te redirecten en de POST variabelen mee te geven.
a. gebruik GET
b. gebruik javascript
c. gebruik CURL om een POST aanvraag op je webformulier te simuleren, de output op te slaan en deze te echo'en naar de gebruiker

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Hét verschil tussen GET en POST is niet dat bij de laatste de url 'schoon' is... Het verschil heb ik reeds genoemd (idempotentie).
Tussenpagina en nutteloze logica galore.
c. gebruik CURL om een POST aanvraag op je webformulier te simuleren, de output op te slaan en deze te echo'en naar de gebruiker
Dat verandert de request nog steeds niet. ;) Als het in 1 request mag, kan het gewoon in 1x in hetzelfde script. B)

Maar GET is gewoon de oplossing. Desnoods onthoud je het eea dmv een sessie.

[ Voor 65% gewijzigd door Voutloos op 25-05-2009 16:46 ]

{signature}


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Staat netter...

Acties:
  • 0 Henk 'm!

  • jurp5
  • Registratie: Februari 2003
  • Laatst online: 11-09 08:28
Ik weet niet of ik de situatie goed begrijp, maar je zou ook gebruik kunnen maken van sessies, en daarin opslaan of de post gedaan is of niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
jurp5 schreef op maandag 25 mei 2009 @ 16:44:
Ik weet niet of ik de situatie goed begrijp, maar je zou ook gebruik kunnen maken van sessies, en daarin opslaan of de post gedaan is of niet.
Dit lijkt me inderdaad de beste en anders toch GET, voor het gemak. :)

Bedankt allen!

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Waarom verstuur je de gegevens niet via een ajax post en verberg je de submit knop. Kunnen de gegevens ook niet dubbel worden verstuurd en hoeft je ook geen rare streken uit te halen.

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

Verwijderd

Waarom niet gewoon de array in een sessie dumpen?

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
Verwijderd schreef op maandag 25 mei 2009 @ 16:42:
c. gebruik CURL om een POST aanvraag op je webformulier te simuleren, de output op te slaan en deze te echo'en naar de gebruiker
Het idee was dat bij een refresh de gegeven niet opnieuw gesubmit worden. Je doet nu een rare kunstgreep die niets oplost.

Dus: Stop de gegevens in GET of ga met sessions werken.

Kijk anders ook even hier: Wikipedia: Post/Redirect/Get

Het gebruik van GET voor dit probleem is absoluut de standaard.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Niemand_Anders schreef op maandag 25 mei 2009 @ 17:17:
Waarom verstuur je de gegevens niet via een ajax post en verberg je de submit knop. Kunnen de gegevens ook niet dubbel worden verstuurd en hoeft je ook geen rare streken uit te halen.
8)7 :D _/-\o_ Het is dat ik je al langer "ken"/zie posten hier... :D

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Kan je de bezoeker niet via een input type = hidden meesturen met de $_POST ?

Acties:
  • 0 Henk 'm!

  • doeternietoe
  • Registratie: November 2004
  • Laatst online: 20-09 17:02
Verwijderd schreef op dinsdag 26 mei 2009 @ 15:23:
Kan je de bezoeker niet via een input type = hidden meesturen met de $_POST ?
De TS gebruikt een http-redirect en wil het zonder javascript werkend krijgen. Daar kan je dus niets mee.

Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
Jawel. Als je een unieke ID in je form hebt staan dan kan je checken of die ID al gebruikt is of niet. Niet gebruikt: mailen, wel gebruikt: niet mailen.
(maar dat is praktisch hetzelfde als het in een session hangen)

[ Voor 17% gewijzigd door ValHallASW op 26-05-2009 23:53 ]


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nietes! :+ Het punt was dat je geen POST redirect voor elkaar krijgt zonder vieze trucs.

{signature}

Pagina: 1