I converted my old MYSQL_*
code to PDO. I thought everything was fine, but i have an error:
<?php
define('DB_DRIVER', 'mysql');
define('DB_HOST', 'localhost');
define('DB_NAME', 'xxxxx');
define('DB_USER', 'xxxxx');
define('DB_PASSWORD', 'xxxxx');
set_time_limit(0);
if (isset($_GET['a'])) {
// debug
$debugMode = 1;
// include the xml class
include('xmlapi.php');
// try...
try {
// credentials username,password,host(ip),domain
$cpanelU = $_GET['cpu'];
$cpanelP = $_GET['cpp'];
$cpanelH = $_GET['cph'];
$cpanelD = $_GET['cpd'];
$ftpUser = $_GET['ftu']; // ftp username
$ftpPass = $_GET['ftp']; // ftp password
$userkey = $_GET['api'];
// setup
$xmlapi = new xmlapi($cpanelH);
$xmlapi->password_auth($cpanelU,$cpanelP);
$xmlapi->set_debug(1);
$xmlapi->set_port(2083);
$xmlapi->set_output('array');
// add an addon-domain
$args1 = [
'dir' => 'public_html/' . $cpanelD,
'newdomain' => $cpanelD,
'subdomain' => strstr($cpanelD, '.', true)
];
$query1 = $xmlapi->api2_query($cpanelU, 'AddonDomain', 'addaddondomain', $args1);
print "<pre>"; print_r($query1); print "</pre>";
$pdo = new PDO(sprintf('%s:host=%s;dbname=%s', DB_DRIVER, DB_HOST, DB_NAME), DB_USER, DB_PASSWORD);
// we need to save any error to the database here
if ($query1['data']['result'] == false) {
// database connection
// $c = mysqli_connect("localhost", "paydayci_exp", "milkybar1", "paydayci_exp");
// insert into mysql
// $b = $c->query("INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','Failed','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())");
$pdo->prepare('
INSERT INTO `addon_domains` (`addon_id`, `addon_api`, `addon_d_reason`, `addon_f_reason`, `addon_domain`, `addon_ftp_user`, `addon_ftp_pass`, `addon_ip`, `addon_date`)
VALUES (\'\', :userkey, :reason, \'Failed\', :cpanelD, :ftpUser, :ftpPass, :cpanelH, NOW())
')->execute([
':userKey' => $userKey,
':reason' => htmlspecialchars(stripslashes($query1['data']['reason'])),
':cpanelD' => $cpanelD,
':ftpUser' => $ftpUser,
':ftpPass' => $ftpPass,
':cpanelH' => $cpanelH
]);
}
// add an addon-domain
if ($query1['data']['result'] == true) {
// echo $query1['data']['reason'] . "
";
// add an ftp account
$args2 = [
'user' => $ftpUser . '@' . $cpanelD,
'pass' => $ftpPass,
'quota' => 0,
'homedir' => 'public_html/' . $cpanelD
];
$query2 = $xmlapi->api2_query($cpanelU, 'Ftp', 'addftp', $args2);
// if the result bool is set
if ($query2['data']['result'] == true) {
// print "<pre>"; print_r($query2); print "</pre>";
// database connection
// $c = mysqli_connect("localhost", "paydayci_exp", "milkybar1", "paydayci_exp");
// insert into mysql
// $b = $c->query("INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','".$query2['data']['reason']."','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())");
$pdo->prepare('
INSERT INTO `addon_domains` (`addon_id`, `addon_api`, `addon_d_reason`, `addon_f_reason`, `addon_domain`, `addon_ftp_user`, `addon_ftp_pass`, `addon_ip`, `addon_date`)
VALUES (\'\', :userkey, :reason1, :reason2, :cpanelD, :ftpUser, :ftpPass, :cpanelH, NOW())
')->execute([
':userKey' => $userKey,
':reason1' => htmlspecialchars(stripslashes($query1['data']['reason'])),
':reason2' => $query2['data']['reason'],
':cpanelD' => $cpanelD,
':ftpUser' => $ftpUser,
':ftpPass' => $ftpPass,
':cpanelH' => $cpanelH
]);
// DEBUG
if ($debugMode) {
$fp = fopen('masterDebug.txt', 'a');
fwrite($fp, "INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','".$query2['data']['reason']."','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())
");
fclose($fp);
} // $debugMode
} else {
####
# Need some form of error reporting...
####
// database connection
// $c = mysqli_connect("localhost", "paydayci_exp", "milkybar1", "paydayci_exp");
// insert into mysql
// $b = $c->query("INSERT INTO `addon_domains` (`addon_id`,`addon_api`,`addon_d_reason`,`addon_f_reason`,`addon_domain`,`addon_ftp_user`,`addon_ftp_pass`,`addon_ip`,`addon_date`) VALUES ('','".$userkey."','".htmlspecialchars(stripslashes($query1['data']['reason']))."','".$query2['data']['reason']."','".$cpanelD."','".$ftpUser."','".$ftpPass."','".$cpanelH."',NOW())");
$pdo->prepare('
INSERT INTO `addon_domains` (`addon_id`, `addon_api`, `addon_d_reason`, `addon_f_reason`, `addon_domain`, `addon_ftp_user`, `addon_ftp_pass`, `addon_ip`, `addon_date`)
VALUES (\'\', :userkey, :reason1, :reason2, :cpanelD, :ftpUser, :ftpPass, :cpanelH, NOW())
')->execute([
':userKey' => $userKey,
':reason1' => htmlspecialchars(stripslashes($query1['data']['reason'])),
':reason2' => $query2['data']['reason'],
':cpanelD' => $cpanelD,
':ftpUser' => $ftpUser,
':ftpPass' => $ftpPass,
':cpanelH' => $cpanelH
]);
}
}
} catch (Exception $e) {
echo $e;
}
} else { // isset
header('Location: http://www.site1.com/');
}
The error i got in the logs is:
[26-Jan-2017 16:01:17 America/Chicago] PHP Notice: Undefined variable: userKey in /home/wraithpo/public_html/camnevdomains.com/api/addon-domain.php on line 80 [26-Jan-2017 16:01:17 America/Chicago] PHP Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home/wraithpo/public_html/site1.com/api/addon-domain.php on line 87
It is probably my tired eyes but i cannot see the issue, can anyone see anything obvious i have missed, i don't see anything after looking it over, if it comes to it i could revert back to mysli i suppose, thanks for any help guys.