cURL / Mailing Lists / curl-and-php / Single Mail

curl-and-php

Re: how can i handle with "<url> malformed".

From: JJ DeBarros <jjdebarros_at_gmail.com>
Date: Mon, 27 Jun 2005 09:10:18 -0700

Your problem might be with the way you are posting the data.

Back in March someone else was having a similar problem, and my solution
was:

    I've hacked an example that I found somewhere to do this:
    function varEncode($varArray)
    {
       $args = array();
       foreach($varArray as $key => $value){
           array_push($args,$key.'='.urlencode($value));
       }
       return implode('&',$args);
    }

    To encode it:
    $urlstring =varEncode(array('id'=>'888','request'=>$xmlcontent));

    Then you can post the $urlstring
    curl_setopt($ch, CURLOPT_POSTFIELDS, $urlstring);

In your case try adding the following after your posts array:

$urlstring = varEncode($posts);

And change the line:

curl_setopt($ch, CURLOPT_POSTFIELDS, $posts);

to:
curl_setopt($ch, CURLOPT_POSTFIELDS, $urlstring);

--JJ--

Tomohiko Tani wrote:

>hello,
>
>I got an error code "<url> malformed", when I exec file upload script like this.
>
>Is it impossible to post not only file data but other parameters at
>the same time?
>
>
><?php
>$url = "https://www.example.co.jp/test.cgi";
>$pass = "aaaaaaa:bbbbbb";
>$input_name ="up_file";
>$posts = array(
> "mode" => $mode,
> $input_name => "@" . $file_name,
>);
>
>curl_fileupload($url, $pass, $posts);
>
>function curl_fileupload($uri, $passwd, $posts){
> $ch = curl_init();
>
> curl_setopt($ch, CURLOPT_URL,$uri);
> curl_setopt($ch, CURLOPT_HTTPAUTH,"CURLAUTH_BASIC");
> curl_setopt($ch, CURLOPT_USERPWD,$passwd);
> curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
> curl_setopt($ch, CURLOPT_POSTFIELDS, $posts);
>
> $result_upload = curl_exec($ch);
>
> if (curl_errno($ch)){
> print curl_error($ch);
> }else{
> print "upload ok.\n";
> curl_close($ch);
> }
>}
>?>
>
>
>
Received on 2005-06-27