Ajax 使用restricted-country.tpl登录表单,并使用Prestashop 1.6进行地理定位
我必须在restricted-country.tpl上建立一个登录表单才能访问我的网站 表单和ajax调用工作得很好,但是调用php脚本是不可能的,因为地理位置导致503错误 脚本位于“controllers/front/”中 有人知道如何授予对脚本的访问权限,或者知道我可以放置脚本并通过503访问脚本的区域吗? 或者换个说法 (登录表单使用ip地理定位非常重要) 以下是表格:Ajax 使用restricted-country.tpl登录表单,并使用Prestashop 1.6进行地理定位,ajax,forms,login,geolocation,prestashop-1.6,Ajax,Forms,Login,Geolocation,Prestashop 1.6,我必须在restricted-country.tpl上建立一个登录表单才能访问我的网站 表单和ajax调用工作得很好,但是调用php脚本是不可能的,因为地理位置导致503错误 脚本位于“controllers/front/”中 有人知道如何授予对脚本的访问权限,或者知道我可以放置脚本并通过503访问脚本的区域吗? 或者换个说法 (登录表单使用ip地理定位非常重要) 以下是表格: form.submit(function(e) { $.ajax({ type: 'POST',
form.submit(function(e) {
$.ajax({
type: 'POST',
url: path_url+'/controllers/front/verif.php',
data: form.serialize(),
dataType: 'json',
success: function(jsonData) {
if (jsonData == 'OK'){
console.log('Correct logins');
location.reload();
} else {
console.log(jsonData);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus);
alert("Error: " + errorThrown);
}
});
e.preventDefault();
});
if (Tools::getIsset('password') || Tools::getIsset('login') || Tools::getIsset('IP') || Tools::getIsset('shop')) {
$password = Tools::getValue('password');
$login = Tools::getValue('login');
$allowedUsers = EverCommission::getAllAgentLogin();
foreach ($allowedUsers as $user => $mail) {
$users[$user] = $mail['email'];
}
if ($password == Configuration::get('EVERCOM_COM_PASS') && in_array($login, $users)) {
//Separator
$separator = "\n";
$idShop = Tools::getValue('shop');
//Geolocalisation whitelist
$whitelist = Configuration::get('PS_GEOLOCATION_WHITELIST');
$WhiteListIp = Tools::getValue('IP');
$New_WhiteList = $whitelist . $separator . $WhiteListIp;
//Temp whitelist
$Old_Temp_WhiteList = Configuration::get('PS_TEMP_WHITELIST');
$New_Temp_WhiteList = $Old_Temp_WhiteList . $separator . $WhiteListIp;
//Updating values
Configuration::updateValue('PS_TEMP_WHITELIST', $New_Temp_WhiteList);
Configuration::updateValue('PS_GEOLOCATION_WHITELIST', $New_WhiteList, false, null, $idShop);
Configuration::updateValue('PS_GEOLOCATION_WHITELIST', $New_WhiteList, false, null, 'NULL');
$return = 'OK';
} else {
$return = 'Wrong';
}
echo Tools::jsonEncode($return);
} else {
$return = 'ID or Password not set using Ajax';
echo Tools::jsonEncode($return);
}
以下是脚本:
form.submit(function(e) {
$.ajax({
type: 'POST',
url: path_url+'/controllers/front/verif.php',
data: form.serialize(),
dataType: 'json',
success: function(jsonData) {
if (jsonData == 'OK'){
console.log('Correct logins');
location.reload();
} else {
console.log(jsonData);
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus);
alert("Error: " + errorThrown);
}
});
e.preventDefault();
});
if (Tools::getIsset('password') || Tools::getIsset('login') || Tools::getIsset('IP') || Tools::getIsset('shop')) {
$password = Tools::getValue('password');
$login = Tools::getValue('login');
$allowedUsers = EverCommission::getAllAgentLogin();
foreach ($allowedUsers as $user => $mail) {
$users[$user] = $mail['email'];
}
if ($password == Configuration::get('EVERCOM_COM_PASS') && in_array($login, $users)) {
//Separator
$separator = "\n";
$idShop = Tools::getValue('shop');
//Geolocalisation whitelist
$whitelist = Configuration::get('PS_GEOLOCATION_WHITELIST');
$WhiteListIp = Tools::getValue('IP');
$New_WhiteList = $whitelist . $separator . $WhiteListIp;
//Temp whitelist
$Old_Temp_WhiteList = Configuration::get('PS_TEMP_WHITELIST');
$New_Temp_WhiteList = $Old_Temp_WhiteList . $separator . $WhiteListIp;
//Updating values
Configuration::updateValue('PS_TEMP_WHITELIST', $New_Temp_WhiteList);
Configuration::updateValue('PS_GEOLOCATION_WHITELIST', $New_WhiteList, false, null, $idShop);
Configuration::updateValue('PS_GEOLOCATION_WHITELIST', $New_WhiteList, false, null, 'NULL');
$return = 'OK';
} else {
$return = 'Wrong';
}
echo Tools::jsonEncode($return);
} else {
$return = 'ID or Password not set using Ajax';
echo Tools::jsonEncode($return);
}
多谢各位 由于ajax调用返回
错误:临时过载
,因此您的配置可能存在内存限制
问题
高级参数
信息
如果
内存限制较低。您应该编辑php.ini
文件。由于ajax调用返回错误:临时过载
,您的配置可能有内存限制问题
打开你的店铺后台
转到高级参数
信息
检查内存限制是否超过或等于128M
如果内存限制较低。你应该编辑你的php.ini
文件。你能检查你的错误日志文件并在这里发布任何相关错误吗?Ajax发布这些错误:-状态:错误-错误:暂时超载OK你能检查apache错误日志吗?这里是我发现的:“post/prestashop//controllers/front/verif.php HTTP/1.1”503 2873这是access.log文件而不是error.log中的日志。您可以检查错误日志文件并在此处发布任何相关错误吗?Ajax发布这些错误:-状态:错误-错误:暂时超载OK您可以检查apache错误日志吗?以下是我发现的:“post/prestashop//controllers/front/verif.php HTTP/1.1”503 2873这是access.log文件not error.log中的日志。内存限制等于128M。请尝试在每行回显一些文本echo('test1')。。。echo('test2')代码>以查看脚本在崩溃前运行了多远。或者在不同的行中放置一个'die('test')以查看崩溃的位置。感谢您的帮助@Florian,脚本不会崩溃。对不起,我的英语不好,我可能解释错了。我激活了地理定位以限制对该网站的访问。(当地理位置处于非活动状态时,该脚本工作正常)因此,从模板“restricted country.tpl”,我必须调用php脚本,但地理位置逻辑不允许访问它。我正在寻找一种方式或一个区域,称之为通过地理位置限制。对不起,我的英语又不好了。内存限制等于128M。请尝试在每行回显一些文本echo('test1')。。。echo('test2')代码>以查看脚本在崩溃前运行了多远。或者在不同的行中放置一个'die('test')以查看崩溃的位置。感谢您的帮助@Florian,脚本不会崩溃。对不起,我的英语不好,我可能解释错了。我激活了地理定位以限制对该网站的访问。(当地理位置处于非活动状态时,该脚本工作正常)因此,从模板“restricted country.tpl”,我必须调用php脚本,但地理位置逻辑不允许访问它。我正在寻找一种方式或一个区域,称之为通过地理位置限制。对不起,我的英语又不好了。