我无法在任何地方找到这个问题,而且我看不到任何真正相关的问题。我有一个我购买的URL缩短脚本,这个脚本在我的第一台服务器上工作得很好,安装了数据库,FTP文件,并且全部设置并缩短了URL。
但是从那以后我把它移到VPS服务器上,我用Centos 5.6设置了完全相同的服务器。安装脚本,一切都很好。但我发现的唯一不起作用的是缩短过程。我不知道为什么它不起作用。我对Ajax和JavaScript知之甚少,我认为问题在于此。
这是ajax.php
<?php
require_once '../config.php';
function url_exist($url)
{
$c=curl_init();
curl_setopt($c,CURLOPT_URL,$url);
curl_setopt($c,CURLOPT_HEADER,1);
curl_setopt($c,CURLOPT_NOBODY,1);
curl_setopt($c,CURLOPT_RETURNTRANSFER,1);
if(!curl_exec($c)){
return false;
}else{
return true;
}
}
function shorteURLFromID ($integer)
{
$base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$length = strlen($base);
$out = '';
while($integer > $length - 1)
{
$out = $base[fmod($integer, $length)] . $out;
$integer = floor( $integer / $length );
}
return $base[$integer] . $out;
}
if(isset($_POST['url']))
{
$l_type = (string) $db->escape(trim(strip_tags($_POST['type'])));
$url = trim(strip_tags($_POST['url']));
$url = str_replace(array("http://"), array(''), $url);
if(strlen($url) < 3) {
print '<style>.alert-300{width:325px;margin-left:182px;}</style>';
die("<div class='alert alert-error alert-300'>".translate('empty_url_error')."</div>");
}
if(stristr($url, $_SERVER['SERVER_NAME'])) {
print '<style>.alert-300{width:325px;margin-left:182px;}</style>';
die("<div class='alert alert-error alert-300'>".translate('same_site_error')."</div>");
}
if(url_exist($url))
{
//check if exists for this user
$rs = $db->get_row("SELECT string FROM links WHERE uID = '".$usersObject->ID()."' AND
destination = '".mysql_real_escape_string($url)."' LIMIT 1");
if(count($rs)) {
$string = $rs->string;
print "http://".$_SERVER['SERVER_NAME']."/".$string;
}else{
$rs = $db->query("INSERT INTO links (destination, added, ip, uID, type) VALUES
('".$db->escape($url)."', '".time()."', '".ip2long($_SERVER['REMOTE_ADDR'])."',
'".$usersObject->ID()."', '".$l_type."')");
if($rs) {
$string = shorteURLFromID($db->insert_id);
$rs = $db->query("UPDATE links SET string = '$string' WHERE linkID = '".mysql_insert_id()."'");
print "http://".$_SERVER['SERVER_NAME']."/".$string;
}else{
print '<style>.alert-300{width:325px;margin-left:182px;}</style>';
print "<div class='alert alert-error alert-300'>Could not create shortened link ".mysql_error()."</div>";
}
}
}else{
print '<style>.alert-300{width:325px;margin-left:182px;}</style>';
print "<div class='alert alert-error alert-300'>".translate('invalid_url_error')."</div>";
}
}else{
print '<style>.alert-300{width:325px;margin-left:182px;}</style>';
print '<div class="alert alert-error alert-300">'.translate('invalid_url_error').'</div>';
}
?>
答案 0 :(得分:1)
没有进一步信息(或脚本来源)的唯一想法是您正在使用的PHP版本。它与旧服务器的不同吗?如果是这样,它是5.2之前的吗?
答案 1 :(得分:0)
尝试添加此选项:
curl_setopt($ c,CURLOPT_SSL_VERIFYPEER,0);
看起来默认值已经随cURL 7.10更改为true,因此PHP 5.2.17可能使用的是7.10之前的版本。
列维