За последние 24 часа нас посетили 16532 программиста и 1551 робот. Сейчас ищет 2101 программист ...

safe_mode is enabled or an open_basedir

Тема в разделе "PHP для новичков", создана пользователем xddanik, 25 фев 2015.

  1. xddanik

    xddanik Новичок

    С нами с:
    23 дек 2014
    Сообщения:
    24
    Симпатии:
    0
    Тут вышла проблемма я нашёл скрипт для отсчёта на картинке до лета и нового года и переделал его. Сперва у меня была идея чтобы юзать скрипт через другой с помощью cURL но как только я его загрузил на хостинг пошла ошибка
    Код (Text):
    1. Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home/u545674722/public_html/newyear/Script.php on line 64
    Я искал в интернете решение проблеммы но так и не нашёл думаю вы мен поможете
    Вот код скрипта
    Код (PHP):
    1. <?php
    2. #Тут вписываем свои данные от ВК.
    3. $login = 'Логин'; 
    4. $pass = 'Пароль'; 
    5. #Тут фотка, пример: vk.com/photo220353117_322405904 | Вводим 220353117_322405904
    6. $photo = '142099162_340367209';
    7.  
    8.  
    9. #Дальше не трогать!!!
    10. $width = 1280;
    11. $heigth = 800;                    
    12. $dir = dirname(__FILE__) . '/';
    13. $font = '/4.ttf';
    14. $font_bold = '/4.ttf';
    15. function curl_exec_follow($ch, &$maxredirect = null) {
    16. $mr = $maxredirect === null ? 5 : intval($maxredirect);
    17. if (ini_get('open_basedir') == '' && ini_get('safe_mode' == 'On')) {
    18. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $mr > 0);                 
    19. curl_setopt($ch, CURLOPT_MAXREDIRS, $mr);
    20. } else {
    21. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
    22. if ($mr > 0) {
    23. $newurl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    24.  
    25. $rch = curl_copy_handle($ch);
    26. curl_setopt($rch, CURLOPT_HEADER, true);
    27. curl_setopt($rch, CURLOPT_NOBODY, true);
    28. curl_setopt($rch, CURLOPT_FORBID_REUSE, false);
    29. curl_setopt($rch, CURLOPT_RETURNTRANSFER, true);
    30. do {
    31. curl_setopt($rch, CURLOPT_URL, $newurl);
    32. $header = curl_exec($rch);
    33. if (curl_errno($rch)) {
    34. $code = 0;
    35. } else {
    36. $code = curl_getinfo($rch, CURLINFO_HTTP_CODE);
    37. if ($code == 301 || $code == 302) {
    38. preg_match('/Location:(.*?)\n/', $header, $matches);
    39. $newurl = trim(array_pop($matches));
    40. } else {
    41. $code = 0;
    42. }
    43. }
    44. } while ($code && --$mr);
    45. curl_close($rch);
    46. if (!$mr) {
    47. if ($maxredirect === null) {
    48. trigger_error('Too many redirects. When following redirects, libcurl hit the maximum amount.', E_USER_WARNING);
    49. } else {
    50. $maxredirect = 0;
    51. }
    52. return false;
    53. }
    54. curl_setopt($ch, CURLOPT_URL, $newurl);
    55. }
    56. }
    57. return curl_exec($ch);
    58. }
    59. function curl($url, $post = null){
    60.  $ch = curl_init($url);
    61.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    62.  curl_setopt($ch, CURLOPT_USERAGENT, 'Xddanik1/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Xddanik/2008092417
    63. Firefox/3.0.3');
    64. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//!!!!
    65.  
    66. curl_setopt($ch, CURLOPT_COOKIEFILE, './cookie');
    67.  curl_setopt($ch, CURLOPT_COOKIEJAR, './cookie');
    68. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false );
    69. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false );
    70.  if($post)
    71.  {
    72.   curl_setopt($ch, CURLOPT_POST, 1);
    73.   curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    74.  }
    75.  //$response =curl_exec_follow($ch);
    76.  $response = curl_exec($ch);
    77.  curl_close($ch);
    78.  return $response;
    79. }
    80. function vk_auth($email, $pass) {
    81. global $login,$pass;
    82. $j=json_decode( curl('http://vk.com/feed2.php'), true );
    83. $t="by login/pass";
    84. $response = curl('http://login.vk.com/?act=login&email='.$login.'&pass='.$pass);
    85. //echo '>>>>>>'.$response.'<<<<<<<';
    86. $json=curl('http://vk.com/feed2.php');
    87. $j=json_decode( $json, true );
    88. if ($j['user']['id']==-1){
    89. return null;
    90. } else {
    91. return 'Logined as id'.$j['user']['id'].' '.$t;
    92. }
    93. /*
    94. preg_match('|Set-Cookie: remixsid=(.*); exp|', $response, $cm);
    95. return $cm[1];*/
    96. }
    97. function vk_get_feed ($cookies) {
    98. // global $json;
    99. $str=curl('http://vk.com/feed2.php');
    100. $result = json_decode( $str, true );//$json->decode($str);
    101. return $result;
    102. }
    103. function imagegettextsize($img,$size,$angle,$font_file,$text) {
    104. $arr = imagettftext($img,$size,$angle,-1000,-1000,0,$font_file,$text);
    105. return $arr[2]-$arr[0];
    106. }
    107. function print_text ($ava, $x, $y, $left, $size, $color, $text, $font_file, $angle) {
    108. if ($left) $x = 200 - $x - imagegettextsize($ava,$size,$angle,$font_file,$text);
    109. $color = imagecolorallocate($ava,$color['red'],$color['green'],$color['blue']);
    110. imagettftext($ava,$size,$angle,$x,$y,$color,$font_file,$text);
    111. }
    112. function todate ($d,$m,$y) {
    113. global $time;
    114. return round((mktime(0,0,0,$m,$d,$y)-$time)/(3600*24),0);
    115. }
    116. function vk_avatar ($cookies, $filename) {
    117. global $photo;
    118. $get_data = curl('http://vk.com/al_photos.php', array('act' => 'edit_photo', 'al' => 1, 'photo' => $photo));
    119. preg_match('/"upload_url":"(.*?)"/', $get_data, $upload_url);
    120. preg_match("/'{$photo}', '(.*?)'/", $get_data, $hash);
    121. $upload_url = str_replace('\/', '/', $upload_url[1]);
    122. echo "\r\n-----{parse info}-----\r\n";
    123. //echo iconv('cp1251','utf-8',$get_data);
    124. // echo "\r\n-----\r\n";
    125. echo '$hash='.$hash[1]."\r\n";
    126. echo '$photo='.$photo."\r\n";
    127. echo '$upload_url='.$upload_url."\r\n";
    128. $upload = curl($upload_url, array('photo' => '@'.$filename));
    129. $postdata = array(
    130. '_query' => $upload,
    131. 'act' => 'save_desc',
    132. 'aid' => '-7',
    133. 'al' => 1,
    134. 'conf' => '///',
    135. 'cover' => "",
    136. 'filter_num' => 0,
    137. 'hash' => $hash[1],
    138. 'photo' => $photo,
    139. 'text' => "");
    140. ;
    141. $save_desc = curl('http://vk.com/al_photos.php', $postdata);
    142. echo "-------{result}-------\r\n";
    143. echo iconv('cp1251','utf-8',$save_desc);
    144. echo "\r\n--------{end}---------\r\n\r\n";
    145. echo 'OK';
    146. //unlink('./cookie');
    147. }
    148. header("Content-Type: text/plain");
    149. echo /*microtime(1)."\r\n" .*/ " Авторизация ВКонтакте...\r\n";
    150. $email = iconv('utf-8','cp1251',$email);
    151. $pass = iconv('utf-8','cp1251',$pass);
    152. $sid = vk_auth($email, $pass)
    153. or die('Error!');
    154. echo $sid."\r\n";
    155. $cookies = '';//'remixsid='.$sid;
    156. $vk_feed = vk_get_feed($cookies);
    157. echo /*microtime(1)."\r\n" .*/ " Ебашим пикчу...\r\n";
    158. $path  = dirname(__FILE__); 
    159. $randomfone = ''.rand(1,3).'';
    160. $top   = imagecreatefrompng($path.'/photo'.$randomfone.'.png');
    161. $img   = $path.'/photo'.$randomfone.'.png';
    162. $size  = getimagesize($img);
    163. $image = imagecreatefrompng($img);
    164. $color = imagecolorallocate($image, 0, 0, 0); 
    165. $color1 = imagecolorallocate($image, 255, 255, 255);
    166. imagecopyresampled($image, $top, 0, 0, 0, 0, $size[0], $size[1], $size[0], $size[1]);
    167. //Рисуем текст
    168.  //Отрисовка всякой поебени
    169. date_default_timezone_set ('Europe/Minsk');
    170. $dney = ceil((mktime(0,0,0, 1, 1, 2016) - time())/86400);
    171. $dney1 = ceil((mktime(0,0,0, 6, 1, 2015) - time())/86400);
    172. imagettftext($image, 66, 0, 320, 280, $color, $path.'/5.ttf', "До НГ $dney ДНЕЙ:3 
    173. И до лета $dney1 дней:3");
    174. imagettftext($image, 16, 0, 8, 789, $color1, $path.'/4.ttf', "http://vk.com/id142099162");
    175. //Отрисовка времени
    176. //Отрисовка даты        //Сейвим результ
    177. imagepng($image, $path.'/result.png'); 
    178. //Асвабаждаем рысурсы
    179. imagedestroy($image); 
    180. echo /*microtime(1)."\r\n" .*/ " Заливаем пикчу...\r\n";
    181. vk_avatar($cookies, $dir . 'result.png');
    182. echo /*microtime(1)."\r\n" .*/ " Готово!\r\n";  
    183. $fh = fopen('cookie', 'a');
    184. fwrite($fh, '<h1>Hello world!</h1>');
    185. fclose($fh);
    186.  
    187. unlink('cookie'); 
    188. ?>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    тебе поможет гугл.переводчик и немного смекалки. курлопция_следоватьлокации не может быть активирована когда включен безопасных режим или используется оупен_бейздир. сделай пхпинфо и посмотри какой из вариантов твой и дальше думай как с ним бороться.