[php/curl]Terugkeer na POST

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een formulier gemaakt:
PHP:
1
2
3
4
5
6
7
8
<HTML>
<FORM METHOD=POST ENCTYPE="multipart/form-data" action="upload2.php">
<input type=file name="filename" >
<input type=text name="desc">
<input type=hidden name="toc" value=1>
<input type=submit>
</form>
</HTML>

Dit formulier stuurt de user na het invullen van de nodige gegevens door naar mijn processing page 'upload2.php' die de gegevens ook daadwerkelijk zal versturen (ik weet, dat had ik ook in dezelfde pagina kunnen doen). Enfin:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php

echo "Now in upload2.php ";

$file = $_FILES['filename'];
$desc = $_POST['desc'];
$toc = $_POST['toc'];

$submit_url = "http://externe-server/index.php?page=upload";

$formvars = array("cc"=>"us \n");
$formvars[desc] = $desc;
$formvars[toc] = $toc;
$formvars[upfile] = "@$file"; // "@" causes cURL to send as file and not string (I believe)

   // init curl handle
   $ch = curl_init($submit_url);

   curl_setopt($ch, CURLOPT_VERBOSE, 1);
   curl_setopt($ch, CURLOPT_HEADER, 1);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); // follow redirects recursively
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $formvars);

   // perform post
   echo $pnp_result_page = curl_exec($ch);
   curl_close ($ch);

?>
Wat ik dus wil doen is wel de form data inclusief het te uploaden bestandje verzenden naar http://externe-server/index.php?page=upload, maar wel een tekst tonen (In dit geval dus: echo $pnp_result_page = curl_exec($ch);), maar dit wil ik later nog veranderen iets anders omdat het voor de user helemaal niet nodig is om de pagina op de externe server te zien.

Het enige dat ik te zien krijg is: "Now in upload2.php"

Ik hoop dat het probleem voldoende duidelijk is. Als iemand mij zou kunnen helpen zou ik dat heel erg waarderen _/-\o_

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Maak van regel 26 eens dit:
PHP:
26
   echo curl_exec($ch);

Die toewijzing zou daar wel mogen, maar lijkt redelijk nutteloos en misschien stuurt het wat in de war. Probeer ook eens de URL niet mee te geven aan curl_init() maar hem gewoon mee te geven met een curl_setopt(). Mocht dat niet werken, doe dan onder de curl_init() eens een keer var_dump($ch); zodat je kan zien of de resource wel geldig is. Check meteen even je error reporting settings, want ik wed dat die niet op E_ALL staat zoals het hoort tijdens het debuggen. Dan had je namelijk al 3 notices gehad op regels 12, 13 en 14. ;)

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nutteloze stukje is verdwenen O-)
var_dump($ch); geeft "resource(2) of type (curl)". Lijkt me goed niet?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Klinkt inderdaad alsof ie naar behoren wordt gevuld. Ik heb zelf niet zoveel ervaring met curl, persoonlijk gebruik ik waar mogelijk de socket-functies van PHP, aangezien je daar geen extensies voor nodig hebt. Misschien kun je eens kijken of het wel werkt als je curl vervangt door wat socket-functies? Dan is je script meteen ook een stukje meer portable. :)

'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.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kan je met de socket functies wel files versturen? Dat wordt toch alleen gebruikt voor inloggen ed? Kan je 'm dan ook terug laten keren naar je eigen pagina?

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op zondag 18 december 2005 @ 11:46:
Kan je met de socket functies wel files versturen? Dat wordt toch alleen gebruikt voor inloggen ed? Kan je 'm dan ook terug laten keren naar je eigen pagina?
met een socket kan je "alles". Immers curl gebruikt intern ook een socket om die meuk te versturen :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm dat lijkt me alleen maar moeilijker dan met CURL.

Als ik trouwens print_r( $file ); doe krijg ik als resultaat:
Array ( [name] => bestandsnaam.ext [type] => application/octet-stream [tmp_name] => /tmp/phpuyxOHG [error] => 0 [size] => 1110 )
Dit betekent dus dat de file wel op m'n server staat?

-edit: Als ik $formvars[upfile] verander in: $formvars[upfile] ="@/tmp/" . $file[filename];
krijg ik als resultaat:
HTTP/1.1 100 Continue HTTP/1.1 200 OK Date: Sun, 18 Dec 2005 12:32:51 GMT Server: Apache/1.3.34 (Unix) PHP/5.0.4 X-Powered-By: PHP/5.0.4 Transfer-Encoding: chunked Content-Type: text/html

You forgot to choose a file to upload!

[ Voor 46% gewijzigd door Verwijderd op 18-12-2005 13:37 ]


Acties:
  • 0 Henk 'm!

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 09:19
Gebruik je wel error_reporting(E_ALL)? Want volgens mij zou 'ie warnings moeten geven dat je constants gebruikt om je array indedices op te vragen in plaats van strings.

Verbouwing


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Mithrandir schreef op zondag 18 december 2005 @ 20:13:
Gebruik je wel error_reporting(E_ALL)? Want volgens mij zou 'ie warnings moeten geven dat je constants gebruikt om je array indedices op te vragen in plaats van strings.
Wat is dat voor een onzin? Ik gebruik bijna dagelijks constanten als array index ;) Ik denk echter dat jij undefined constants bedoeld.
Overigens krijg je dan geen warnings maar notices.

[ Voor 16% gewijzigd door Erkens op 18-12-2005 20:16 ]


Acties:
  • 0 Henk 'm!

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 09:19
Erkens schreef op zondag 18 december 2005 @ 20:16:
[...]

Wat is dat voor een onzin? Ik gebruik bijna dagelijks constanten als array index ;) Ik denk echter dat jij undefined constants bedoeld.
Overigens krijg je dan geen warnings maar notices.
Hm, ja, dat bedoel ik :)

Verbouwing

Pagina: 1