php 'curl' не работает

Я пытаюсь отправить некоторое значение с страницы «1.php» на страницу «3.php», используя «curl».

Heres мой код-

1.php

<?php $data = array(); $data['first_name'] = 'hello'; $data['last_name'] = 'Thind'; $data['password'] = 'secret'; $data['email'] = 'me@abc.com'; $post_str =''; foreach($data as $key=>$val) { $post_str .= $key.'='.$val.'&'; } $post_str = substr($post_str, 0, -1); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, '3.php' ); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); curl_close($ch); echo $result; ?> 

3.php

 <?php $host="localhost"; $dbname="mr"; // mysql code for table= create table m(name varchar(10)); $username=""; $password=""; $con=mysql_connect("$host","$username","$password")or die("cannot connect"); mysql_select_db($dbname) or DIE('cannot select db'); if(isset($_POST['first_name'])){ $name=$_POST['first_name']; $sql="insert into m values('$name')"; $sq=mysql_query($sql); echo"ok"; } mysql_close($con); ?> 

Моя проблема: «Никакие данные не вставлены в базу данных, поэтому данные не передаются на 3.php из 1.php». Я проверил код базы данных в «3.php», предоставив некоторое значение, и это было правильно вставлено в базу данных. «3.php» работает хорошо. Так кажется, что код в «1.php» не работает.
( Примечание: php_curl.dll активируется в файле php.ini. Я использую Windows XP профессиональный пакет обновления-2, xampp-win32 version-1.8.1)

Может кто-нибудь, пожалуйста, скажите мне, что там не так?

-Благодаря.

Solutions Collecting From Web of "php 'curl' не работает"

curl_setopt($ch, CURLOPT_URL, '3.php' );

Это запрашивает URL 3.php … Вы должны дать ему некоторые «подсказки», поскольку cURL – это внешняя программа, которая просто вызовет URL как есть.

Измените его на что-то вроде http://mysite.whatever/3.php


С другой стороны, cURL – это утилита командной строки, и ее легче отлаживать, если ее использовать таким образом. Вы должны сначала проверить – это командная строка, а затем, если это workign, реализовать ее на вашем PHP-коде.

Режим cURL здесь: http://curl.haxx.se/docs/manpage.html

ПОСТАНОВИЛИ
Имеет полный код (согласно помощи Фрэнки)

1.php

 <?php $data = array(); $data['first_name'] = 'hello'; $data['last_name'] = 'Thind'; $data['password'] = 'secret'; $data['email'] = 'me@abc.com'; $post_str =''; foreach($data as $key=>$val) { $post_str .= $key.'='.$val.'&'; } $post_str = substr($post_str, 0, -1); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://localhost/3.php' ); // Heres the change 'http://localhost/3.php' instead of '3.php' . See on Frankie's reply. curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $result = curl_exec($ch); curl_close($ch); echo $result; ?> 

3.php

 <?php $host="localhost"; $dbname="mr"; // mysql code for table= create table m(name varchar(10)); $username=""; $password=""; $con=mysql_connect("$host","$username","$password")or die("cannot connect"); mysql_select_db($dbname) or DIE('cannot select db'); if(isset($_POST['first_name'])){ $name=$_POST['first_name']; $sql="insert into m values('$name')"; $sq=mysql_query($sql); echo"ok"; } mysql_close($con); ?>