简体   繁体   中英

PHP - Use cURL to send information to another page

I am trying to make a validation for a form and if everything goes right it should go to the 2nd page, where it should take the information from the $_POST.

I tried to make it work, but somehow it does not work. It redirects correctly to the install2.php<\/code> but its not passing any variables to it. What i am doing wrong?

<?php 
//If the person pressed summit check for the information submited. If everything is correct move to the next page.
if (isset($_POST['submit'])) 
{
    // declare Variables
    $username = $_POST['username'];
    $password = $_POST['password'];
    $server = $_POST['server'];
    $message = "The following fields are empty: ";

    //Step 1 : Check if username & server are empty and if they are return the correct error
    if (empty($username) || empty($server) )
    {  
        if (empty($username)) { 
            $message .= "Username";
        }       
        if (empty($password)) {
            $message .= " Password";
        }
        if (empty($server)) {   
            $message .= " Server";
        }           
    }
    else 
    {       
        //Step 2: Attempt to connect to the DB with the information provided. if not sucessful return to correct error to the user.
        @$connection = mysql_connect($server,$username,$password);
        if (!$connection) 
        {
            $message = "Please check your details. the script was unable to connect to the db.";
        }
        else 
        { 
            //Step 3: Since the connection was stablished successfuly with the information provided then send the login details tot he next page
            // NOTE: For porpuses of this script I am only passing 1 variable... to make my life easier
            $ch = curl_init (); 
            curl_setopt ($ch, CURLOPT_URL, 'http://localhost/install2.php');
            curl_setopt ($ch, CURLOPT_POST, TRUE);
            curl_setopt ($ch, CURLOPT_POSTFIELDS, $username);
            curl_setopt ($ch, CURLOPT_RETURNTRANSFER, TRUE);

            $response = curl_exec ($ch);

            curl_close ($responde);
            header ('location: install2.php');
        }
    }
}
?>

That's not the way to pass post-fields:

curl_setopt ($ch, CURLOPT_POSTFIELDS, $username);

you should create a string:

$data = "username=$username&password=$password";

and pass it:

curl_setopt ($ch, CURLOPT_POSTFIELDS, $data);

Second, better encode the parameters you're passing using urlencode() .

And last, it DOES pass the parameters when you call:

$response = curl_exec ($ch);

but, then you don't read the response and just redirect the user to:

header ('location: install2.php');

this time it's a call with no parameters which explains your problem.

i remarked this your variable name is not the same $reponse and $responde $response = curl_exec ($ch);

header ('location: install2.php');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM