Необходимо загружать изображения на страницу с названием и описанием. Вот код страницы index.php:
<?php
// Соединяемся с сервером БД
mysql_connect ( 'localhost', 'local', '***' );
mysql_query( 'SET NAMES cp1251' );
mysql_select_db ( 'yarmarka' );
if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
// Проверяем пришел ли файл
if( !empty( $_FILES['image']['name'] ) ) {
// Проверяем, что при загрузке не произошло ошибок
if ( $_FILES['image']['error'] == 0 ) {
// Если файл загружен успешно, то проверяем - графический ли он
if( substr($_FILES['image']['type'], 0, 5)=='image' ) {
// Читаем содержимое файла
$image = file_get_contents( $_FILES['image']['tmp_name'] );
// Экранируем специальные символы в содержимом файла
$image = mysql_escape_string( $image );
$title = mysql_escape_string( $_POST['title'] );
$title = mysql_escape_string( $_POST['opisanie'] );
// Формируем запрос на добавление файла в базу данных
$query="INSERT INTO `images_new` VALUES(NULL, '".$title."', '".$image."', '".$opisanie."',)";
// После чего остается только выполнить данный запрос к базе данных
mysql_query( $query );
}
}
}
}
?>
<html>
<head>
<title>Загрузка изображений</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<h3>Загруженные изображения</h3>
<p>
<?php
$query = "SELECT id, title, opisanie, content FROM images_new WHERE 1 ORDER BY id";
$res = mysql_query( $query );
while( $img = mysql_fetch_array( $res ) ) {
echo 'Название: '.$img['title'].' <br />';
echo 'Описание: '.$img['opisanie'].' <br />';
echo '<img src="image.php?id='.$img['id'].'" alt="'.$img['id'].'" />';
}
?>
</p>
<form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
Наименование: <input type="text" name="title" value="" /><br/>
Описание: <input type="text" name="opisanie" value="" /><br/>
Изображение: <input type="file" name="image" /><br/>
<input type="submit" value="Загрузить" />
</form>
</body>
</html>
А вот код файла image.php:
<?php
// Соединяемся с сервером БД
mysql_connect ( 'localhost', 'local', '***' );
mysql_query( 'SET NAMES cp1251' );
mysql_select_db ( 'yarmarka' );
if ( isset( $_GET['id'] ) ) {
// Здесь $id номер изображения
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `content`, `title`, `opisanie` FROM `images_new` WHERE `id`=".$id;
// Выполняем запрос и получаем файл
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
// Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
header("Content-type: image/*");
// И передаем сам файл
echo $image['content'];
echo $image['title'] ;
echo $image['opisanie'] ;
}
}
}
?>
В результате выводит id вместо изображения, "иероглифы" вместо описания, а строка названия вообще не выводится.
(Отредактировано автором: 25 Февраля, 2011 - 11:56:05)