login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Geposte velden niet uitleesbaar? (Opgelost)

Offline Margreet - 05/04/2009 22:54 (laatste wijziging 05/04/2009 23:00)
Avatar van MargreetNieuw lid Ik heb een probleem met een aantal geposte velden. Deze post ik niet vanuit een formulier maar mbv een functie. Alleen het eerste veld 'var1' is uitleesbaar via $_POST('var1'), de rest is leeg.

Het kan zijn dat ik bij het posten iets fout doe: Ziet iemand wat er fout is in de functie: do_post_request ???

  1. $data = array ('var1' => '272', 'var2' => '2', 'var3' => '1238876656','var4' => 'Henk', 'var5' => 'Ronald', 'var6' => 'Veldweg');
  2.  
  3. $data = http_build_query($data);
  4. $url='http://www.mijnsite.nl/result.php/';
  5.  
  6. $output=do_post_request($url, $data, $optional_headers);
  7.  
  8. function do_post_request($url, $data, $optional_headers = null)
  9. {
  10. $params = array('http' => array(
  11. 'method' => 'POST',
  12. 'content' => $data
  13. ));
  14. if ($optional_headers !== null) {
  15. $params['http']['header'] = $optional_headers;
  16. }
  17. $ctx = stream_context_create($params);
  18. $fp = @fopen($url, 'rb', false, $ctx);
  19. if (!$fp) {
  20. throw new Exception("Probleem met url $url, $php_errormsg");
  21. }
  22. $response = @stream_get_contents($fp);
  23. if ($response === false) {
  24. throw new Exception("Fout bij lezen van $url, $php_errormsg");
  25. }
  26. return $response;
  27. }


vinTage was here met CODE TAGS 

4 antwoorden

Gesponsorde links
Offline timmie_loots - 05/04/2009 23:55
Avatar van timmie_loots PHP gevorderde Lijkt voor een groot deel niets mis mee te zijn. Er zou nog iets aan de hand kunnen zijn met de headers, je geeft ze wel mee op lijn 6, ik weet namelijk niet hoe die eruit zien.

Ik zou gewoon even flink gaan debuggen. Echo bijvoorbeeld de output van http_build_query(), zodat je weet dat daar wel alles in staat. Doe eens een vardump van $params, zodat je weet dat daar ook alles staat zoals het hoort.

Verder heeft de url in je voorbeeld een trailing slash die er niet hoort te staan. Zal in de praktijk vaak goed gaan, maar je kunt het beter weglaten.
Offline Margreet - 06/04/2009 22:41
Avatar van Margreet Nieuw lid Bedankt voor je reaktie timmie_loots.

Ik heb nogmaals de data bekeken. De output van http_build_query():
val1=272&val2=2&val3=1238876656&val4=Henk

Maar op de een of andere manier zijn val2 tem val4 leeg als je ze uitleest met $_POST. Ik probeer het voor de zekerheid nog even op een andere server...
Offline marten - 06/04/2009 22:45 (laatste wijziging 06/04/2009 22:48)
Avatar van marten Beheerder probeer eens van de & een & te maken of haal de url eens door PHP.net: url_encode denk dat de url_encode wel helpt

zie ook:

http://nl2.php.....php#89447
Offline Margreet - 07/04/2009 21:44
Avatar van Margreet Nieuw lid Ik heb het gevonden!!!

Dankzij jullie reakties heb ik de oorzaak gevonden.
Ik voel me een beetje dom, maar ik meld het hier natuurlijk wel:

Ik zag in mijn browser als ik de de output van http_build_query(): bekeek:

val1=272&val2=2&val3=1238876656&val4=Henk

Nu heb ik in de bron gekeken, toen zag ik:

val1=272&val2=2&val3=1238876656&val4=Henk

de extra amp; zorgde dus voor het probleem!

Waarom heb ik niet eerder naar de bron gekeken....  

Iedereen bedankt voor jullie hulp!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s