Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт на localhoste работает, а на сайте нет
 
 автор: Vezuvian   (29.05.2009 в 11:13)   письмо автору
 
 

Подскажите пожалуйста в чём может быть дело. Не могу понять почему скрипт на localhoste работает, а на сайте нет. Скрипт даёт монеты за голосование за сайт в топе, игрок сначало голосует за сайт в топе и вписывает там свой ник, а потом заходит на сайт и нажимает "Получить бонус" и там уже после голосования тоже вписывает свой ник, скрипт сверяется с топом голосовал ли он и если да то выдаёт монетки.На localhoste всё работает и добавляется в БД, а если через сайт пытаешься получить бонус, то пишет:
Не удалось получить информацию с L2Top.ru!
0 RB Coin зачислено вашему персонажу!

Вот скрипт:


<?
$bonus_id
=9771;     // ID предмета-бонуса (по умолчанию Festival Adena)
$bunus_name='RB Coin'// название бонуса
$cols_for_vote=3// Колличество зачисляемых вещей за одно голосование
$id_l2top=7455// Ваш ID в рейтинге L2Top

if(!isset($_POST['name'])){

echo 
"<div align=\"center\"><table width='450'><tr><td><center><b>Здесь вы можете принять участие в акции: <br>«Бонус за голосование».<br><br>
    <i>Для этого необходимо:</i></b></center><br>
    1. Проголосовать за наш сервер в рейтинге L2top.ru: <a href=\"http://l2top.ru/?voteme="
.$id_l2top."\" target=\"_blank\">Голосовать</a><br>
    2. ВНИМАНИЕ!Не забывайте писать свой ник когда голосуете за сервер!<br>
    3. Получить бонус. Для чего необходимо:<br>
    <ul><li>Вписать в форму ниже ник вашего чара (не путайте с названием аккаунта)</li>
    <li>Нажать на кнопку «Получить бонус»</li></ul>
    <center>После этого вашему чару в инвентарь будет выдано поощрение «"
.$bunus_name."» в количестве ".$cols_for_vote." шт.</center><br>
    <b>Внимание!</b><br>
    Чтобы получить бонус ваш ник должен быть в <a href=\"http://l2top.ru/?servID="
.$id_l2top."&act=info\" target=\"_blank\"><b>этом списке</b></a><br>А также персонаж должен находиться не в игре.<br><br><center>
    <form action=\"l2top.php\" method=\"post\">
    Ник персонажа<br/>
    <input type=\"text\" name=\"name\"/><br/><br/>
    <input type=\"submit\" value=\"Получить бонус\"/>
    </form></center></td></tr></table></div>"
;


}else{

$host=' '// сервер на котором установлена база данных L2J
$user=' '// имя пользователя от базы данный
$pass=' '// пароль пользователя от базы данный
$db=' '// название базы данных

$mc mysql_connect($host$user$pass);
if(
$mc){
$db mysql_select_db ($db);
}

if(!
$mc || !$db){

echo 
'<div align=center>Нет соединения с базой данных.</div>';

exit;

}

$name=mysql_escape_string($_POST['name']);

$ch=mysql_query("SELECT obj_Id,online FROM characters WHERE char_name = '".$name."';");
if (
mysql_num_rows($ch)==0)
{
    echo 
"<div align=center>Персонаж не найден</div>";
    exit;
}
$chd=mysql_fetch_assoc($ch);
if (
$chd['online']==1)
{
    echo 
"<div align=center>Ваш персонаж в игре, для начала надо выйти</div>";
    exit;
}
$char_id=$chd['obj_Id'];
$total=0;
$your_ip $_SERVER['REMOTE_ADDR'];
$dip=explode('.',$your_ip);
$your_ip1 $dip[0].'.'.$dip[1].'.'.$dip[2].'.xxx';

$html = @file_get_contents('http://l2top.ru/?servID='.$id_l2top.'&act=info');
if (!
$html || !preg_match_all('/<td>([^<]+)<\/td>/'$html$matches))
$error .= '<div align=center>Не удалось получить информацию с L2Top.ru!<br/></div>';
else
{
foreach (
$matches[1] as $id => $nick)
{
if (
strtolower(trim($nick))===strtolower(trim($name))) {
$voters[] = $matches[1][$id-2];
}
}
if (
$voters != array())
{
foreach (
$voters as $time)
{
$result mysql_query("SELECT * FROM `l2top` WHERE `nick` = '".mysql_escape_string($name)."' AND `time` = '".mysql_escape_string($time)."'");
$row mysql_fetch_assoc($result);
if (
$row == array())
{
$result mysql_query("SELECT * FROM `items` WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = '".$bonus_id."'");
$row mysql_fetch_assoc($result);
if (
$row == array())
{
$result mysql_query("SELECT MAX(`object_id`)+1 AS `id` FROM `items`");
$row mysql_fetch_assoc($result);
$ins_id $row['id'];
$putitem=mysql_query("INSERT INTO items (owner_id, object_id, item_id, count, enchant_level, loc, loc_data, time_of_use, custom_type1, custom_type2, mana_left) VALUES('".mysql_escape_string($char_id)."', '".$ins_id."', '".$bonus_id."', '".$cols_for_vote."', '0', 'INVENTORY', '0', NULL, '0', '0', '-1')") or die(mysql_error());
}
else
mysql_query("UPDATE `items` SET `count` = `count` + ".$cols_for_vote." WHERE `owner_id` = ".mysql_escape_string($char_id)." AND `item_id` = '".$bonus_id."' ");
mysql_query("INSERT INTO `l2top` (`nick`, `ip`, `time`) VALUES ('".$name."', '".mysql_escape_string($your_ip1)."', '".mysql_escape_string($time)."')");
$total += $cols_for_vote;
$error .= '<div align=center>Голос за '$time.' зачислен.<br/></div>';
}
else
$error .= '<div align=center>Голос за '$time.' уже был зачислен.<br/></div>';
}
}
else
$error .= '<div align=center>Ваш голос на сайте L2Top.ru не найден.<br></div>';
}

echo 
$error.'<div align=center><br><b>'.$total.'</b> '.$bunus_name.' зачислено вашему персонажу!<br/></div>';

}

?>

  Ответить  
 
 автор: Zend72   (29.05.2009 в 14:58)   письмо автору
 
   для: Vezuvian   (29.05.2009 в 11:13)
 

Символ "@" перед file_get_contents() уберите и сразу поймете в чем причина.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования