Sathoshi K
Sathoshi K

Reputation: 203

Sending two values into php webpage with java

I am trying to send two string values from my java program into my php page and i seem to be having some difficulty figuring out how this all works.

public static void main (String args[]) throws IOException{

    Scanner input = new Scanner (System.in);

    String sampleValue = input.next();
    String sampleValue1 = input.next();

    URL url = new URL("http://woah.x10host.com/randomfact.php");
    String result = "";
    String data = "fName=" + URLEncoder.encode(sampleValue, "UTF-8");
    String id = "lName=" + URLEncoder.encode(sampleValue1, "UTF-8");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    try {

        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setUseCaches(false);
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

        // Send the POST data
        DataOutputStream dataOut = new DataOutputStream(connection.getOutputStream());

        dataOut.writeBytes(id);
        dataOut.writeBytes(data);
        dataOut.flush();

        System.out.println("Data has been posted");
        dataOut.close();

        BufferedReader in = null;
        try {
            String line;
            in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } finally {
            if (in != null) {
                in.close();
            }
        }

    } finally {
        connection.disconnect();
        System.out.println(result);

    }

}

}

my PHP code is

<?php
$conn = mysqli_connect("localhost","woahx10h_funfact","spk","woahx10h_woah");

// CHECK CONNECTION
    if (mysqli_connect_errno())
     {
         echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }


$value_data = $_POST['fName'];
$value_id = $_POST['lName'];

echo $value_data;
echo $value_id;

$conn->close();

?>

However, every time i run the java program, values from both data and id seem to be stored in the $value. I want the value from data to be stored in $value_data while the value from x to be stored in $value_id

Upvotes: 3

Views: 73

Answers (1)

Logan
Logan

Reputation: 436

You have to add ampersand (&) between each two parameters. So in this case all you have to do is edit your code like this:

...

dataOut.writeBytes(id);
dataOut.writeBytes("&");
dataOut.writeBytes(data);

...

If you would want to add another parameter to the request you would have to add another ampersand and then the parameter, for example:

...

dataOut.writeBytes(id);
dataOut.writeBytes("&");
dataOut.writeBytes(data);
dataOut.writeBytes("&");
dataOut.writeBytes(parameter3);

...

Upvotes: 1

Related Questions