Эта тема на forum.dklab.ru


solomusic: как при добавлении изображения на сервер считывать имя в БД?
Проблема в том что при добавлении изображения на сервер имя в БД (MySQL) у меня не получается считать. Вот то что я делала:
if(isset($_POST['save'])){
mysql_connect("localhost","root","");
mysql_select_db("realtyy");

$imgDir = "images";
@mkdir($imgDir, 0777);

if (@$_REQUEST['doUpload']) {
$data = $_FILES['file1'];
$tmp = $data['tmp_name'];

if (@file_exists($tmp)) {
$info = @getimagesize($_FILES['file1']['tmp_name']);

if (preg_match('{image/(.*)}is', $info['mime'], $p)) {

$name = "$imgDir/".time().".".$p[1];

move_uploaded_file($tmp, $name);
} else {
echo "<h2>Попытка добавить файл недопустимого формата!</h2>";
}
} else {
echo "<h2>Ошибка закачки #{$data['error']}!</h2>";
}
}
далее отправка всех данных в БД:
$sql="INSERT INTO `dob` ( `id`, `kind`, `type`, `area`, `street`, `metric`, `price`, `val`, `phone`, `e-mail`, `img`, `detail` ) VALUES ( '', '".$_POST['kind']."', '".$_POST['t']."', '".$_POST['r']."', '".$_POST['st']."', '".$_POST['metr']."', '".$_POST['cena']."', '".$_POST['val']."', '".$_POST['phone']."', '".$_POST['email']."', '".$_POST['file1']."', '".$_POST['det']."')";
$res = mysql_query($sql);
}
и вот данные отправки изображения:
<tr id="iM38"><td class="manTd1" id="iM39">изображения (GIF, JPEG, PNG):<div class="fHelp">макс.размер - <b>500</b>Kb</div></td><td class="manTd2" id="iM40"><div style="display:inline;" id="iplus"><input class="button" style="width:24px;" type="button" value=" + " onclick="addImgF();" title="добавить поле для файла"> </div><input type="file" id="fln1" name="file1" size="20" onchange="getimage(1);"><span id="iCode1"></span><div id="imblock"></div></td></tr>
но при отправке данных, инфо о изображениях вообще не отображается в БД. Кто знает, как решить эту проблему прошу, помогите!
dimagolov:
http://www.phpfaq.ru/debug
solomusic:
хм... спасибо... но теперь еще вопрос... название выводит... но почему-то загрузка изображения на страницу не происходит. Показываю код:
<script>
function win(detail, street, phone, img)
{
msg=window.open("","msg","height=400,width=400,left=200,top=200");
msg.document.write("<html><head><title>" + street + "</title></head>");
msg.document.write("<body>");
msg.document.write("<Table><tr><td>" + detail + "</td></tr>");
msg.document.write("<tr><td>тел: " + phone + "</td></tr>");
msg.document.write("<tr><td><a rel='lightbox[roadtrip]' title='фото' href='images/" + img + "'><img src='images/" + img + "' ></a></td></tr>");
msg.document.write("</table></body></html>");
msg.focus();
}
</script>
ini_set('display_errors',1);
error_reporting(E_ALL);
mysql_connect ("localhost", "root", "");
mysql_select_db('realtyy');
$sql = "SELECT * FROM `dob` WHERE `type` LIKE 'aa' ORDER BY `id` DESC";
$result = mysql_query($sql);
$data = array();
while($res=mysql_fetch_array($result))
{
echo "<TR bgcolor=#FLEFE5>";
echo "<TD ALIGN=CENTER>".$res['id']."</TD>";
echo "<TD ALIGN=CENTER><B><i>".$res['area']."</i></B></TD>";
echo "<TD ALIGN=CENTER>".$res['street']."</TD>";
echo "<TD ALIGN=CENTER>".$res['metric']."</TD>";
echo "<TD ALIGN=CENTER><pre>".$res['price']." ".$res['val']."</pre></TD>";
echo "<TD ALIGN=CENTER>".$res['phone']."</TD>";
echo "<TD width='30%' ALIGN='CENTER'><a href='#' onclick='win(\"" . htmlentities($res['detail'], ENT_QUOTES, "cp1251") . "\", \"" . htmlentities($res['street'], ENT_QUOTES, "cp1251") . "\", \"" . htmlentities($res['phone'], ENT_QUOTES, "cp1251") . "\",\"".htmlentities($res['img'], ENT_QUOTES, "cp1251")."\")'>открыть</a></TD> ";
echo "<TD ALIGN=CENTER>".$res['date']."</TD>";
echo "</TR>";
};
вот.. рисунок должен выводится в дополнительном окошке вместе с инфо... здесь наверняка как всегда элементарная ошибка, но я ее не вижу... увы...
dimagolov:
solomusic, а зачем делать и картинку и рбрамлять ее ссылкой на себя саму? а чем потаенный смысл?
что говорит access-log & access-log apache? обращения к картинке идут и если да, то с каким результатом?

вообще интересно. файлы перемещать в images с именем в виде time(), а заприсываем в базу вместо имени $_POST['file1'] который как я понимаю undefined вообще, вернее не установлена.

вывод - лог ошибок не смотрим.
solomusic:
Вы совершенно правы. Вместо того чтоб запрашывать файл с именем $name я просто запрашывала имя временного файла... сейчас все работает...простите... видемо заработалась и не обратила внимание... ;)

Эта тема на forum.dklab.ru