04-04-26, 02:36 AM
(04-04-26, 02:06 AM)nnnjk كتب : مشكور
جربته ماسحب الصوره من الموقع المذكور
لي موقع اخر ليس فيه شهادة دومين
https وليس فيه حماية نقل الصور وليس فيه خاصية ssl
لم ينقل الصوره باامتداد webp
اعتقد ان المشكله من نوع الملف webp يحتوي على اربعة حروف وليس ثلاثة حروف
لا ابداً عدد الأحرف ما له أي علاقة
الصورة يتم تحميلها بالفعل لكن لا يتم ختمها فيتم حذفها
حل مؤقت تحول WebP إلى JPG وتختمه (حتى لو السيرفر ما يدعم WebP)
لو بعد هذا في موقع ما ينقل هذا يعني السيرفر فيه حماية قوية
الاحتمال الاكبر مشكلة Cloudflare أو Cookies
PHP كود :
<?php
function GetCacheID() {
global $db;
$SQL = "INSERT INTO " . TABLE_PREFIX . "y2ksw_imgcache2 (ID) VALUES (0)";
$db->query_write($SQL);
return $db->insert_id();
}
function DownloadImage($url) {
if (empty($url)) return false;
$context = stream_context_create([
'http' => [
'header' => "User-Agent: Mozilla/5.0\r\n"
],
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]);
$data = @file_get_contents($url, false, $context);
if ($data === false || strlen($data) < 100) {
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_TIMEOUT => 20,
CURLOPT_USERAGENT => 'Mozilla/5.0',
CURLOPT_HTTPHEADER => [
'Accept: image/webp,image/apng,image/*,*/*;q=0.8',
'Referer: ' . $url
]
]);
$data = curl_exec($ch);
curl_close($ch);
}
return $data;
}
function CacheImages($message_body, $old_message, $forum_home) {
$files = [];
$n = 0;
$pos_end = -1;
while (($pos_start = strpos(strtolower($message_body), '[img]', $pos_end + 1)) !== false) {
$pos_end = strpos(strtolower($message_body), '[/img]', $pos_start + 1);
if ($pos_end === false) break;
$pos_start += 5;
$pos_end--;
$url = trim(substr($message_body, $pos_start, $pos_end - $pos_start + 1));
$files[$n]['url'] = $url;
$n++;
}
if (!$n) return $old_message;
foreach ($files as $i => $file) {
if (empty($file['url'])) continue;
if (!empty($forum_home) && strpos($file['url'], $forum_home . 'imgcache/2/') !== false) {
$files[$i]['url'] = '';
continue;
}
$matar = strtolower($file['url']);
if (preg_match("/alshafeen.site|alsh3er.com/i", $matar)) {
$files[$i]['url'] = '';
continue;
}
}
for ($i = 0; $i < $n; $i++) {
if (empty($files[$i]['url'])) continue;
for ($j = $i + 1; $j < $n; $j++) {
if ($files[$j]['url'] == $files[$i]['url']) {
$files[$j]['url'] = '';
}
}
}
foreach ($files as $file) {
if (empty($file['url'])) continue;
$content = DownloadImage($file['url']);
if (!$content) continue;
$tmp = tempnam(sys_get_temp_dir(), "img_");
file_put_contents($tmp, $content);
$info = @getimagesize($tmp);
$ext = '';
if ($info && isset($info['mime'])) {
if ($info['mime'] == 'image/jpeg') $ext = 'jpg';
elseif ($info['mime'] == 'image/png') $ext = 'png';
elseif ($info['mime'] == 'image/gif') $ext = 'gif';
elseif ($info['mime'] == 'image/webp') $ext = 'jpg';
}
if ($ext == '') {
if (strpos($file['url'], '.webp') !== false) {
$ext = 'jpg';
} else {
unlink($tmp);
continue;
}
}
$id = GetCacheID();
$new_file = 'imgcache/2/' . $id . 'alsh3er.' . $ext;
if ($info && isset($info['mime']) && $info['mime'] == 'image/webp') {
$img = @imagecreatefromstring(file_get_contents($tmp));
if ($img) {
imagejpeg($img, $new_file, 90);
imagedestroy($img);
} else {
copy($tmp, $new_file);
}
} else {
copy($tmp, $new_file);
}
unlink($tmp);
AddWatermark($new_file, "alsh3er.site");
$old_message = str_replace($file['url'], $forum_home . $new_file, $old_message);
}
return $old_message;
}
function AddWatermark($imagePath, $text) {
$info = getimagesize($imagePath);
if (!$info) return;
if ($info['mime'] == 'image/jpeg') $img = imagecreatefromjpeg($imagePath);
elseif ($info['mime'] == 'image/png') $img = imagecreatefrompng($imagePath);
elseif ($info['mime'] == 'image/gif') $img = imagecreatefromgif($imagePath);
else return;
$color = imagecolorallocatealpha($img, 255, 255, 255, 50);
imagestring(
$img,
3,
imagesx($img) - 120,
imagesy($img) - 15,
$text,
$color
);
if ($info['mime'] == 'image/jpeg') imagejpeg($img, $imagePath);
elseif ($info['mime'] == 'image/png') imagepng($img, $imagePath);
elseif ($info['mime'] == 'image/gif') imagegif($img, $imagePath);
imagedestroy($img);
}
?>

![[صورة مرفقة: 177461173141861.gif]](https://up6.cc/2026/03/177461173141861.gif)