грешка при качване на снимки

systems

Registered
Добър вечер използвам следния скрипт за качване на снимки, качва снимката дотук добре но след качването ми показва грешен линк към снимката къде му е грешката ето го:

PHP:
<?php 
error_reporting(0);
$upload_dir = "img/uploads/images/"; //Може да се смени с друга папка , която вие си пожелаете 
$size_bytes = 5242880; //Големината на файла в bytes 
$extlimit = "yes"; //Да има лимит или не (yes/no) 
$limitedext = array(".gif",".jpg",".png",".jpeg",".psd"); //Разрешени файлове за качване 
//Далй папката в която ще се качват файловете съществува или не 
if (!is_dir("$upload_dir")) { 
die ("Грешка: Папката <b>($upload_dir)</b> не съществува"); 
} 

if(isset($_POST['uploadform'])){ 
// Когато полето на формата е попалнено тогава ще се качват нещата 
//Започване на ъплоад формата. 

$file_tmp = $_FILES['filetoupload']['tmp_name']; 
$file_name = $_FILES['filetoupload']['name']; 
//Взимане на размера на файла 
$file_size = $_FILES['filetoupload']['size']; 

//Показване когато не е избран файл 
if (!is_uploaded_file($file_tmp)){ 
echo "<div class='error'>Грешка : Моля изберете файл за качване!. <br>↵<a href=\"$_SERVER[HTTP_REFERER]\">НАЗАД</a><div>"; 
exit(); //Излиза от това и не прави нищо друго. 
} 


//Проверява дали големината на файла съвпада с допустимата 
if ($file_size > $size_bytes){ 
echo "<div class='error'>Грешка : Файла е твърде голям. Той трябва да бъде под <b>". $size_bytes / 1024 ."</b> KB. <br />↵<a href=\"$_SERVER[HTTP_REFERER]\">НАЗАД</a></<div>"; 
exit(); 
} 
//Далй файла е от допустимите 
$ext = strrchr($file_name,'.'); 
if (($extlimit == "yes") && (!in_array(strtolower($ext),$limitedext))) { 
echo("<div class='error'>Грешка : Този тип файл не е позволен за качване.<div> "); 
exit(); 
} 
	
// Далй има такъв файл 
$file_name = rand(0,100000).strrchr($file_name,'.'); 
while(file_exists($upload_dir.$file_name)){ 
$file_name = rand(0,100000).strrchr($file_name,'.'); 
} 

$snimkata = $site_link."".$upload_dir."".$file_name; 
//На мястото на интервала (space) се слага "_". 
$file_name = str_replace(' ', '_', $file_name); 
//Местене на файла в папката която сме посочили отгоре на скрипта 
//move_uploaded_file('filename','destination') С тази функция преместваме файла в избраната от нас диреактория 
if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) { 
//Казва на потребителя кога файла е качен и дава лйнк към него 
echo "<div class='success'><center>Файла (<a href=\"$upload_dir$file_name\">$file_name</a>) е качен успешно!<div><br /><br /> 


<img src=\"$_SERVER[HTTP_REFERER]$snimkata\" border=\"0\"><br>

<b>phpBB/IPB - снимката</b><br>
<input type=\"text\" value='[url=$_SERVER[HTTP_REFERER]$snimkata][img]$_SERVER[HTTP_REFERER]".$snimkata."[/img] [/url]' size=\"100\"><br>

<b>HTML Текстови линк</b><br>
<input type=\"text\" value='<a href=\"$_SERVER[HTTP_REFERER]$snimkata\">$_SERVER[HTTP_REFERER]".$snimkata."</a>' size=\"100\"><br>

<b>Директен линк към оригинала</b><br>
<input type=\"text\" value='$_SERVER[HTTP_REFERER]".$snimkata."' size=\"100\"><br> 


↵<a href=\"$_SERVER[HTTP_REFERER]\">НАЗАД</a>"; 
exit(); 
}else{ 
//Показва грешка при провал на преместването 
echo "Има проблем при преместването на вашия файл. <br />↵<a href=\"$_SERVER[HTTP_REFERER]\">НАЗАД</a>"; 
exit(); 
} 
//Край на .... 
// Ако формата не е попълнена да се покаже това : 
}else{ 
//Началото на else 

// Проверяване на сички наши заявки (да не се надвишава големината , и да е един от избраните типове файлове от нас) 
for($i=0;$i<count($limitedext);$i++){ 
if (($i<>count($limitedext)-1))$commas=", ";else $commas=""; 
list($key,$value)=each($limitedext); 
$all_ext .= $value.$commas; 
} 

//Изложението 
echo "<div class=\"form\">"

."<form method=\"post\" enctype=\"multipart/form-data\" action=\"\">" 
."<img src=\"images/warring.png\" alt=\"poddurjani formati\"/> Поддържани формати: $all_ext (До 5MB)<br />"
."Картинка <input type=\"file\" name=\"filetoupload\" class=\"input\" /><br /><br />"
."<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\" />" 
."<input type=\"submit\" class=\"submit\"  name=\"uploadform\" value=\"Качи!\" /><br />"
."</form>"
."</div>";
}//Край на else 

?>

след качване на снимката ми дава следния линк:
Код:
http://сайт.ком/pic.phpimg/uploads/images/54615.gif

а верния линк е:
Код:
http://сайт.ком/img/uploads/images/54615.gif

и немога да разбера защо така ми го дава, защо не ми показва верния линк а ми дава грешния.
иначе фаила ми се казва pic.php
 
пробвай

линк:

<input type="text" value="<?php echo $snimkata; ?>" />

и виж какво излиза , защото из цялата каша с HTTP_REFERER и няква променлива $siteurl v $snimkata , която я няма по-нагоре никъде не разбрах ..

т.е. махни $_SERVER[HTTP_REFERER] в линковете и остави само $snimkata - там е пътя до снимката
 
що просто не го напишеш url-a



<img src=\"http://localhost/$snimkata\" border=\"0\"><br>

<b>phpBB/IPB - снимката</b><br>
<input type=\"text\" value='http://localhost/[/color]$snimkata] ' size=\"100\"><br>

<b>HTML Текстови линк</b><br>
<input type=\"text\" value='<a href=\"http://localhost/$snimkata\">http://localhost/".$snimkata."</a>' size=\"100\"><br>

<b>Директен линк към оригинала</b><br>
<input type=\"text\" value='http://localhost/".$snimkata."' size=\"100\"><br>

че взима сегашния url ми се струва

или си добави една променлива $url =adresa;
и я добави в $snimkata и оставяш само тая променлива
 
Sunrize Благодаря ти стана без проблеми така още веднъж благодаря и на двамата за помоща.
 

Back
Горе