Hi all,

I'm having some trouble getting my php code to work properly. I'm submitting three different variables from a vxml form to my php. I then need the php to deposit the variables into files and update a mysql database accordingly, but it's not quite doing what I want it to.

The code is run from a webserver via an AIX server.

Here's my php code that I got so far:

<?php


header('Content-type: application:voicexml+xml; charset=iso-8859-1');
header('Content-Encoding: iso-8859-1');


echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
echo "<vxml version=\"2.1\" xmlns=\"http://www.w3.org/2001/vxml\" xml:lang=\"en-GB\">";


echo "<property name=\"inputmodes\" value=\"dtmf\"/>";
echo "<form>";
echo "<block>";


$msg = "";
$msg2 = "";
$code = 1;
$wavName = "";
$wavAudition = "";
$number = "";
$tmpFile=$HTTP_POST_FILES;


if (is_uploaded_file($tmpFile)) {


$wavName="/name/".date("YmdHis").".wav";
copy($tmpFile, sprintf("%s", $wavName));
$msg = "audio saved";
echo "saved name";


} else {


$code = 0;
$msg = "unable to save audio";
echo "not saved";


}


$tmpFile=$HTTP_POST_FILES;


if (is_uploaded_file($tmpFile)) {


$wavAudition = "audition/".date("YmdHis").".wav";
copy($tmpFile, sprintf("%s", $wavAudition));
$msg2 = "audio saved";
echo "saved audition";


} else {


$code = 0;
$msg2 = "unable to save audio";
echo "not saved";


}


$tmpFile = $HTTP_POST_FILES;


if (is_uploaded_file($tmpFile)) {


copy($tmpFile, sprintf("%s", $number);


}


$con = mysql_connect("localhost","username","password");


if (!$con) {


die('Could not connect: ' . mysql_error());


}


mysql_select_db("Database Name", $con);


$callDate = date("Ymd");
$callTime = date("His");
$sql="INSERT INTO table (calContactDir, calContactNum, calAuditionDir, calDate, calTime)
VALUES
('$wavName','$number','$wavAudition', '$callDate', '$callTime')";


if (!mysql_query($sql,$con)) {


die('Error: ' . mysql_error());


}


$sql="SELECT calUniqueID FROM Caller WHERE calContactDir = '$wavName'";


$uniqueID = mysql_query($sql,$con);


mysql_close($con);


echo "<audio src=\"file:///170.wav\" maxage=\"0\"/>";
echo "<prompt>$callDate</prompt>";
echo "<audio src=\"file:///171.wav\" maxage=\"0\"/>";
echo "<prompt>$uniqueID</prompt>";
echo "<goto next=\"file:///Audition_test.vxml#closing\"/>";
echo "</block>";
echo "</form>";
echo "</vxml>";


?>

The files are submitted with the following line of code:

<submit next="submit.php" namelist="rec_name contact_number rec_audition" method="POST" enctype="multipart/form-data"/>

The problem is that it isn't depositing the variables into files and it's only inserting values into the time and date sections of the mysql database.

I have removed certain elements of the code as I'm under a Non Disclosure Agreement concerning the application and I don't want to place our database details, etc. out in the open (hope no one minds).

If anyone could help me out that would be greatly appreciated.

Edited 3 Years Ago by happygeek: fixed formatting

I don't see where you are grabbing the submitted data. Normally this would be something like:
$wavName = $_POST;

The submitted data may be in $_POST or in $_REQUEST. Try print_r($_POST); or print_r($_REQUEST); and you should see what you need to do.

This article has been dead for over six months. Start a new discussion instead.