所以我刪除了我的最後一篇文章,因爲我覺得我的問題不夠簡明。基本上,我想創建一個使用從我的主網頁傳遞變量我的PHP文件中的MySQL連接(JS)我的索引頁面傳遞變量,如下所示:傳遞給php文件的數據不允許MySQL連接
$.ajax({
url: "php/ajax.php",
type: "POST",
data: {name:'3404-11833'},
success: function(data){
window.location.assign("http://www.dasite.com/" + myloc + ".html");
}
});
}
的PHP文件如下:
<?php
/* Database Configuration.*/
$name = $_POST['name'];
$test = strval('3404-11833');
$dbOptions = array(
'db_host' => '',
'db_user' => '',
'db_pass' => '',
'db_name' => $name
);
/* Database Config End */
error_reporting(E_ALL^E_NOTICE);
require "classes/DB.class.php";
require "classes/Chat.class.php";
require "classes/ChatBase.class.php";
require "classes/ChatLine.class.php";
require "classes/ChatUser.class.php";
session_name('webchat');
session_start();
if(get_magic_quotes_gpc()){
array_walk_recursive($_GET,create_function('&$v,$k','$v = stripslashes($v);'));
array_walk_recursive($_POST,create_function('&$v,$k','$v = stripslashes($v);'));
}
try{
// Connecting to the database
DB::init($dbOptions);
$response = array();
// Handling the supported actions:
switch($_GET['action']){
case 'login':
$response = Chat::login($_POST['name']);
break;
case 'checkLogged':
$response = Chat::checkLogged();
break;
case 'logout':
$response = Chat::logout();
break;
case 'submitChat':
$response = Chat::submitChat($_POST['chatText']);
break;
case 'getUsers':
$response = Chat::getUsers();
break;
case 'getChats':
$response = Chat::getChats($_GET['lastID']);
break;
default:
throw new Exception('Wrong action');
}
echo json_encode($response);
}
catch(Exception $e){
die(json_encode(array('error' => $e->getMessage())));
}
?>
現在,當我使用$ test時,代碼工作正常,但是當我切換到$ name時,出現數據庫錯誤。這是一個格式問題還是我做了其他錯誤? *另外,是的,我知道注射,這裏不是問題。
你應該發佈數據庫代碼和變量的var_dump()。但用戶提供的輸入不應該導致數據庫錯誤。 – jeroen
沒有用戶提供的輸入。我應該在這裏發佈完整的數據庫代碼,還是應該關閉它並提出一個新問題? – user3634006
我加了完整的php文件。你是否也需要查看所需的類文件? – user3634006