Re[6]: Проблема с запросом НTTPSend
От: surovnev  
Дата: 20.05.12 05:22
Оценка:
Здравствуйте, okman, Вы писали:

O>Здравствуйте, surovnev, Вы писали:


S>>Через Wireshark не могу проверить (чёт ничего в ней не понял)

S>>я делал через FireFox расширением LiveHTTPHeaders вот что он выдаёт при добавлении изображения:
S>>...

O>Параметры загрузки изображений на данный хостинг устанавливаются отдельными HTTP-запросами,

O>которые выполняются до главного POST-а. Попробуйте поменять размер превьюшек, либо попереключайте
O>checkbox, и посмотрите, что в этот момент уходит в сеть. Сессия там контролируется через Cookie.
O>А ответ сервера приходит в виде HTML, его еще нужно распарсить, чтобы вытащить ссылки на картинки.

Не могли бы вы мне а помочь составить правильный запрос? Всё перепробовал так и не получилось.
У меня есть страница add_photo.php вот её код:
<?
require_once("blocks/bd.php");
require_once("blocks/functions.php");

$date=date("Y-m-d");
if (isset($_FILES['UploadFile'])) {
if (($_FILES['UploadFile'] ['type'] != "image/jpeg") && ($_FILES['UploadFile'] ['type'] != "image/png") && ($_FILES['UploadFile'] ['type'] != "image/png") && ($_FILES['UploadFile'] ['type'] != "image/gif")) {
$error="Изображение должно быть формата jpg, jpeg, gif или png";
} else {
$time=time();
$time2=time()-60*60*24*30;
$result=mysql_query("SELECT * FROM photos WHERE time<'$time2'",$db);
while ($myrow=mysql_fetch_array($result)) {
@unlink($_SERVER['DOCUMENT_ROOT']."/images/".$myrow['date']."/".$myrow['id']."_med.jpg");
@unlink($_SERVER['DOCUMENT_ROOT']."/images/".$myrow['date']."/".$myrow['id']."_mini.jpg");
@unlink($_SERVER['DOCUMENT_ROOT']."/images/".$myrow['date']."/".$myrow['id']."_norm.jpg");
if ($myrow['mas']!='') {
$result2=mysql_query("SELECT * FROM photos WHERE mas='{$myrow['mas']}'",$db);
if (mysql_num_rows($result2)==1) @unlink($_SERVER['DOCUMENT_ROOT']."/images/".$myrow['date']."/".$myrow['mas']."_mas.jpg");
}
}
$result=mysql_query("DELETE FROM photos WHERE time<'$time2'",$db);
@mkdir($_SERVER['DOCUMENT_ROOT']."/images/".$date);
@chmod($_SERVER['DOCUMENT_ROOT']."/images/".$date,0777);
$name=$_FILES['UploadFile'] ['name'];
$i=strlen($name)-1;
while ($name[$i]!=".") $i--;
$ext=substr($name,$i+1);

$result=mysql_query("INSERT INTO photos (date, time, user_id, ip) VALUES ('$date', '$time', '{$_SESSION['user']}', '{$_SESSION['ip']}')",$db);
$result=mysql_query("SELECT LAST_INSERT_ID() FROM photos",$db);
$myrow=mysql_fetch_array($result);
$id=$myrow[0];
$name=$myrow[0].substr($name,$i);
$name2=$myrow[0]."_mini.jpg";
$name3=$myrow[0]."_norm.jpg";
$name4=$myrow[0]."_med.jpg";
$targetPath = $_SERVER['DOCUMENT_ROOT']."/images/".$date.'/';
move_uploaded_file ($_FILES['UploadFile'] ['tmp_name'], $targetPath.$name2);
thumb($targetPath.$name2, $targetPath.$name3, 1000);
thumb($targetPath.$name2, $targetPath.$name4, 400);
if (($_POST['size']==80) || ($_POST['size']==100) || ($_POST['size']==120) || ($_POST['size']==150)) {
thumb2($targetPath.$name2, $targetPath.$name2,$_POST['size'],0, $_POST['size'], $_POST['size']);
} else {
thumb($targetPath.$name2, $targetPath.$name2, substr($_POST['size'],1));
}
}
}

if ($_SESSION['toone']==1) {
$result=mysql_query("SELECT * FROM photos WHERE user_id='{$_SESSION['user']}'",$db);
$myrow=mysql_fetch_array($result);
$t=getimagesize($_SERVER['DOCUMENT_ROOT'].'/images/'.$myrow['date'].'/'.$myrow['id'].'_mini.jpg');
$x=$t[0];
$num=mysql_num_rows($result);
if ($num<4) {
$kolx=$num;
$koly=1;
} else {
$kolx=4;
$koly=$num/$kolx-floor($num/$kolx);
if ($koly==0) $koly=$num/$kolx;
else $koly=floor($num/$kolx)+1;

}
$mas=$myrow['id'];
mysql_query("UPDATE photos SET mas='$mas' WHERE id='{$myrow['id']}'",$db);
$thumb=ImageCreateTrueColor($x*$kolx,$x*$koly);
if ($_SESSION['color']!=1)
imagefill($thumb, 0, 0, 0xFFFFFF);
$img=imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].'/images/'.$myrow['date'].'/'.$myrow['id'].'_mini.jpg');
$i=0; $j=0;
imagecopyresampled($thumb,$img,$i*$x,$j*x,0,0,$x,$x,$x,$x);
$i=1; $j=0;
while ($myrow=mysql_fetch_array($result)) {
$img=imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].'/images/'.$myrow['date'].'/'.$myrow['id'].'_mini.jpg');
imagecopyresampled($thumb,$img,$i*$x,$j*$x,0,0,$x,$x,$x,$x);
mysql_query("UPDATE photos SET mas='$mas' WHERE id='{$myrow['id']}'",$db);
$i++;
if ($i>3) {
$i=0;
$j++;
}
}
$thumb=imagejpeg($thumb,$_SERVER['DOCUMENT_ROOT'].'/images/'.$date.'/'.$mas.'_mas.jpg',88);
}

$result=mysql_query("SELECT * FROM photos WHERE user_id='{$_SESSION['user']}'",$db);
if (mysql_num_rows($result)==0) {
$error='Фотографии не найдены';
}
else {
$i=0;
while ($myrow=mysql_fetch_array($result)) {
$photos[$i]=$myrow;
$i++;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
</head>
<body>
<table width="100%" height="295" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="60%" valign="top">
<div id="content">
<div><?=$error?></div>
<? if (($error=='') && ($_SESSION['toone']==1)) { ?>
<div align="center"><img src="images/<?=$date?>/<?=$mas?>_mas.jpg"></div><br>
<div>Ссылки для вставки:</div>
<table cellpading="3" cellspacing="3" border="0">
<tr>
<td>BB-Code:</td>
<td><input type="text" value=
'http://&lt;?=$_SERVER['HTTP_HOST']?&gt;/photo.php?mas=&lt;?=$mas?&gt;' size="120" /></td>
</tr>
<tr>
<td>HTML-Code:</td>
<td><input type="text" value=
'<a href="http://<?=$_SERVER['HTTP_HOST']?>/photo.php?mas=<?=$mas?>"><img src="http://<?=$_SERVER['HTTP_HOST']?>/images/<?=$date?>/<?=$mas?>_mas.jpg"></a>' size="120" /></td>
</tr>
<tr>
<td>URL only:</td>
<td><input type="text" value=
'http://<?=$_SERVER['HTTP_HOST']?>/photo.php?mas=<?=$mas?>' size="120" /></td>
</tr>
</table>
<? } ?>
<? if (($error=='') && ($_SESSION['toone']!=1)) { ?>
<table width="50%" cellpadding="3" cellspacing="3" border="0" align="center">
<tr>
<?
$i=0;
for ($j=0;$j<count($photos);$j++) {
if (($i%4==0) && ($i!=0)) echo '</tr><tr>';
?>
<td align="center"><a href="images/<?=$date?>/<?=$photos[$i]['id']?>_norm.jpg" rel="lightbox[roadtrip]"><img src="images/<?=$date?>/<?=$photos[$i]['id']?>_<? if (count($photos)==1) echo 'med'; else echo 'mini'; ?>.jpg" /></a></td>
<?
$i++;
}
?>
</tr>
</table>
<div>Ссылки для вставки:</div>
<table cellpading="3" cellspacing="3" border="0">
<tr>
<td>BB-Code:</td>
<td><input type="text" value=
'<? for ($i=0;$i<count($photos);$i++) { ?>http://&lt;?=$_SERVER['HTTP_HOST']?&gt;/photo.php?id=&lt;?=$photos[$i]['id']?&gt; <? } ?>' size="120" /></td>
</tr>
<tr>
<td>HTML-Code:</td>
<td><input type="text" value=
'<? for ($i=0;$i<count($photos);$i++) { ?><a href="http://<?=$_SERVER['HTTP_HOST']?>/photo.php?id=<?=$photos[$i]['id']?>"><img src="http://<?=$_SERVER['HTTP_HOST']?>/images/<?=$date?>/<?=$photos[$i]['id']?>_mini.jpg"></a> <? } ?>' size="120" /></td>
</tr>
<tr>
<td>URL only:</td>
<td><input type="text" value=
'<? for ($i=0;$i<count($photos);$i++) { ?>http://<?=$_SERVER['HTTP_HOST']?>/photo.php?id=<?=$photos[$i]['id']?> <? } ?>' size="120" /></td>
</tr>
</table>
<? } ?>
</div>
</td>
</tr>
</table>
</body>
</html>


Я так понял страница формирует ссылки через этот запрос: $result=mysql_query("SELECT * FROM photos WHERE user_id='{$_SESSION['user']}'",$db);
А я как раз не передаю значение user, может потому что оно пустое по этому страница отражает все картинки загруженные через программу. А вот как передать его я незнаю...

Вот страница через которую происходит отправка изображения (index.php)
<?
require_once("blocks/bd.php");

$_SESSION['user']=md5(time());
$_SESSION['toone']=$_POST['toone'];
$_SESSION['color']=$_POST['color'];
$_SESSION['ip']=$_SERVER['REMOTE_ADDR'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Фотохостинг,Хостинг картинок,Бесплатный хостинг фотографий.</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link href="/uploadify/uploadify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="/uploadify/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="/uploadify/swfobject.js"></script>
<script type="text/javascript" src="/uploadify/jquery.uploadify.v2.1.4.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#file_upload').uploadify({
'uploader' : '/uploadify/uploadify.swf',
'script' : '/uploadify/uploadify.php?user=<?=$_SESSION['user'].'-'.$_POST['size_multi']?>',
'cancelImg' : '/uploadify/cancel.png',
'multi' : true,
'buttonText' : 'Browse',
'folder' : '/images/',
'fileDesc' : 'jpg;gif;png;jpeg',
'fileExt' : '*.jpg;*.jpeg;*.png;*.gif',
'auto' : false
});
});
</script>
</head>
<body>
<img src="../picuhead.jpg">
<table width="100%" height="295" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="60%" valign="top">
<div id="content">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td width="50%" valign="top" bgcolor=#EDEDED>
<strong>Массовая загрузка:</strong><br /><br />
<form action="" method="post" enctype="multipart/form-data">
<strong>Размер превью:</strong><br />
<select id="asd" name="size_multi" onchange="document.getElementById('size_multi_sub').click()">
<option value="80" <? if ($_POST['size_multi']=='80') echo 'selected'?>>80*80</option>
<option value="100" <? if ($_POST['size_multi']=='100') echo 'selected'?>>100*100</option>
<option value="120" <? if ($_POST['size_multi']=='120') echo 'selected'?>>120*120</option>
<option value="150" <? if ($_POST['size_multi']=='150') echo 'selected'?>>150*150</option>
<? if ($_POST['toone']!=1) { ?>
<option value="l120" <? if ($_POST['size_multi']=='l120') echo 'selected'?>>Большая 120</option>
<option value="l150" <? if ($_POST['size_multi']=='l150') echo 'selected'?>>Большая 150</option>
<? } ?>
</select>
<br><br>
<input type="checkbox" value="1" name="toone" id="toone" <? if ($_POST['toone']==1) echo 'checked="checked"';?> onchange="document.getElementById('size_multi_sub').click()"> Отоброзить миниатюры одной картинкой
<? if ($_POST['toone']==1) { ?>
<br><br>
Цвет фона:<br>
<input onclick="document.getElementById('size_multi_sub').click()" type="radio" name="color" value="0" <? if (($_SESSION['color']=='') || ($_SESSION['color']==0)) { ?>checked="checked"<? } ?>> Белый<br>
<input onclick="document.getElementById('size_multi_sub').click()" type="radio" name="color" value="1" <? if ($_SESSION['color']==1) { ?>checked="checked"<? } ?>> Черный
<? } ?>
<br><br>
<input type="submit" id="size_multi_sub" style="display:none;" />
<input id="file_upload" name="file_upload" type="file" /><br />
<a href="javascript:$('#file_upload').uploadifyUpload();">Загрузить выбранные фото</a><br /><br />
</form>
</td>
<td valign="top" bgcolor=#DDDDDD>
<strong>Единичная загрузка:</strong><br /><br />
<form action="add_photo.php" method="post" enctype="multipart/form-data">
<strong>Размер превью:</strong><br />
<select name="size">
<option value="80">80*80</option>
<option value="100">100*100</option>
<option value="120">120*120</option>
<option value="150">150*150</option>
<option value="l120">Большая 120</option>
<option value="l150">Большая 150</option>
</select>
<br>
<strong>Выберите фотографию:</strong><br />
<input type="file" name="UploadFile" /><br /><br />
<input type="submit" name="but_addphoto2" value="Загрузить" />
</form>

</td></tr></table>
</div>
</td>
</tr>
</table>
<center>Фотохостинг 2011</center>
<!--LiveInternet counter--><script type="text/javascript"><!--
document.write("<a href='http://www.liveinternet.ru/click' "+
"target=_blank><img src='//counter.yadro.ru/hit?t27.1;r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' alt='' title='LiveInternet: показано количество просмотров и"+
" посетителей' "+
"border='0' width='0' height='0'><\/a>")
//--></script><!--/LiveInternet-->
<meta name='yandex-verification' content='6309317533f75bae' />
</body>
</html>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.