在我的项目中,我需要允许其他人向我的脚本发送ajax请求.因此,外部请求可能来自其他网站和域,也可能来自浏览器扩展.
我在脚本的顶部添加了这两行,让他们这样做:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:这里有任何我错过的安全考虑吗?这个简单的解决方案会造成严重的问
如果是这样,什么是更好的解决方案?
谢谢你的回复.
我已经搜索了很多,以找到确切的答案,但没有找到任何答案.
很多人提到,我们应该& AT命令的结束并不等待回应.
例如,在后台运行bg.php,建议:
exec("/usr/bin/php bg.php &");
Run Code Online (Sandbox Code Playgroud)
但它对我不起作用.并且主脚本等待bg.php的完全执行.
我也读过某处在日志文件中写入bg.php输出,但我的后台脚本不会产生任何输出.它做了一些过程然后在数据库中写了一些东西.
我只是希望我的脚本运行bg.php而不要等它结束.
请帮我包括正确的代码.
可能重复:
PHPMailer遇到问题
有很多类似的问题,但没有一个帮助我.
这是我的脚本,它在phpmailer exmaples中提供:
require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets …Run Code Online (Sandbox Code Playgroud) 我们正在用 PHP 开发一个 URL 缩短器项目。我们使用 301 HTTP 重定向并自然地跟踪我们的链接访问。但有一些奇怪的事情:
我们缩短了一个网址,通过浏览器通过后,只跟踪了第一次访问,好像没有其他请求发送到我们的服务器,直接转到目标网址。(我认为这是浏览器缓存之后一试)。但 :
当尝试使用类似bitly 的服务时,它有不同的待遇。相同浏览器上的一些相同请求在位访问跟踪中被跟踪(实际上不止一个,我不明白为什么,我没有看到任何逻辑),同时它们也使用 301 重定向。(在左边浏览器窗口的底部有时会写“waiting for bit.ly...”,有时不会,实际上是随机的)。
这里包含任何技巧吗?这种不同的待遇会发生什么?
我在ubuntu 12终端中运行redis命令有一个愚蠢的问题,也许我的问题很愚蠢,如果是这样,请考虑我是redis和ubuntu的新手用户.
我根据官方指南http://redis.io/download安装了redis 2.6.7
现在我运行这些命令:
redis-server
Run Code Online (Sandbox Code Playgroud)
它说它现在已连接,但在我输入的每个命令后没有任何反应,所以我按(Ctrl + z)然后键入:
redis-cli
Run Code Online (Sandbox Code Playgroud)
它似乎连接成功,出现这样的事情:
redis 127.0.0.1:6379>
Run Code Online (Sandbox Code Playgroud)
所以我输入了一些命令但没有任何反应.例如这个命令:
get users:leto
Run Code Online (Sandbox Code Playgroud)
只出现一个空白行.(好像在等待完成命令的事情)
那么根据这个问题是什么?我错过了一个简单的观点还是有另一个问题?
谢谢你的帮助,我真的很困惑.
在PHP中,如何检测以下查询中发生的(INSERT或UPDATE):
INSERT INTO ... ON DUPLICATE KEY UPDATE ...
Run Code Online (Sandbox Code Playgroud) 这是一个我测试过的简单脚本:
<?php
require 'dbcon.php';
header("location:http://google.com");
$time1 = time();
for($i=0;$i<=9999999;$i++){
$j += $i * $i * $i * $i;
}
$time2 = time();
$total = $time2-$time1;
mysql_query("insert into test values('$total')");
?>
Run Code Online (Sandbox Code Playgroud)
这个脚本大约需要15秒才能执行(因此在我的测试表中插入了15个脚本),在这些秒之后,页面也会重定向指定的域.
我的问题是为什么会这样?
在我的实际代码中,我想将用户重定向到一个网页然后执行剩余的代码并存储在数据库中,因此用户不必等待很多.怎么做?
UPDATE1:
请回答这个问题:
我想首先重定向用户,然后将数据插入mysql.例如,我首先得到用户的IP.然后我想重定向他,然后从他的IP等检测用户国家,然后将信息插入mysql.有可能吗?
UPDATE2:
我希望从另一个具有curl扩展名的站点获取用户的国家和地区,然后存储在数据库中.所以需要几秒钟......
我编写了一个简单的PHP脚本来使用CURL获取网站的源代码:
function file_get_contents_curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/curl/cacert.pem");
$data = curl_exec($ch);
$url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($data === false)
return false;
return array("content" => $data, "url" => $url, "httpcode" => $httpcode);
}
$data = file_get_contents_curl("https://www.facebook.com");
print_r($data);
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我正在获取Facebook源代码,但它获取的页面与不支持的浏览器相关.事实上,重定向后的最终URL是:http://www.facebook.com/unsupportedbrowser
有什么问题?
php ×6
redirect ×2
ajax ×1
command-line ×1
cross-domain ×1
curl ×1
exec ×1
facebook ×1
header ×1
mysql ×1
phpmailer ×1
redis ×1
smtp ×1
ubuntu ×1
unique-key ×1
web-crawler ×1