|
|
|
| Добрый день.
Не поделится ли вот каким скриптом:
1. Пользователь вводит данные, какой либо текст допустим Ф.И.О, Контакты и еще что нибудь (впринципе не важно) и эта информация лети в бд (это я легко реализовал).
2. Далее есть пункт Загрузка Изображния. Данный пункт я тоже реализовал и
получается что ДАННЫЕ ЛЕТЯТ В БД, и картинка грузится в папку, но СВЯЗАТЬ картинку с данными у меня не получается.
Не поделится кто нибудь скриптом?
Или прошу помощи по коду:
Форма загрузки:
<form action="./add_post.php" method="post" enctype="multipart/form-data">
<p>
<label>Выберите город<span class="bold2">*</span><br />
<select name="reg">
<?php
$result = mysql_query("SELECT title,id FROM region",$db);
if (!$result) {
echo "<p>Запрос не прошел. Напишите об этом администратору. Код ошибки:</p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";
exit ();
}
?>
</select>
</label>
</p>
<br />
<p>
<label>Выберите раздел объявления<span class="bold2">*</span><br />
<select name="cat" size="3">
<?php
$result = mysql_query("SELECT title,id FROM categories ORDER BY title",$db);
if (!$result) {
echo "<p>Запрос не прошел. Напишите об этом администратору. Код ошибки:</p>";
exit (mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
do
{
printf ("<option value='%s'>%s</option>",$myrow["id"],$myrow["title"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "<p>Информация по запросу не может быть извлечена. В таблице нет записей.</p>";
exit ();
}
?>
</select>
</label>
</p>
<br />
<p><label>Цена товара <span class="bold2">*</span><br /></label>
<input name="cost" id="cost" type="text" maxlength="8" />
<select name="vibor"><option value="rub">р.</option></select>
</p><br />
<p>
<label>Заголовок объявления <span class="bold2">*</span><br />
<br /><span style="font-size:11px;">БЛА БЛА БЛА.</span>
<br />
<input type="text" name="title" id="title" size="70" maxlength="70" />
<br />
<br />
<label>
<input name="date" type="hidden" id="date" value="<?php $date = date("Y-m-d-H-i-s"); echo $date; ?>" />
</label>
</p>
<p>
<p>
<label>Введите полный текст заметки <span class="bold2">*</span><br />
<br /><span style="font-size:11px;">БЛА БЛА БЛА.</span>
<textarea name="text" id="text" maxlength="3000" cols="60" rows="8"></textarea>
</label>
</p>
<p><br />
<label>Контактные данные <span class="bold2">*</span><br />
<br /><span style="font-size:11px;">БЛА БЛА БЛА</span>
<textarea name="contacts" id="contacts" cols="25" rows="5" maxlength="500" ></textarea>
</label>
</p>
<p>
<label>
<input name="autor" id="autor" type="hidden" value="
<?php require "yadro.php"; echo $objCore->getSessionInfo()->getUserInfo('email'); ?>" />
</label>
</p>
<p><br />
<label>Загрузить изображение<br />
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="mini_img" id="mini_img">
</label>
</p><br />
<p>
<input type="checkbox" name="rules" value="yes" /> БЛА БЛА БЛА</a>
<span class="bold2">*</span></p>
<p> </p>
<p>
<label>
<input type="submit" name="submit" id="submit" class="button" value="Занести заметку в базу" />
</label>
</p>
<p> </p>
</form>
|
Сам обработчик:
<?php
if (isset($title) and isset($date) and isset($text) and isset($autor) and isset($cat) and
isset($contacts) and isset($reg) and isset($cost) and isset($rules))
{
/* Здесь можно заносить данные в базу */
$result = mysql_query ("INSERT INTO data (title,date,text,autor,cat,contacts,reg,cost,rules,mini_img)
VALUES ('$title','$date','$text','$autor','$cat'
,'$contacts','$reg','$cost','$rules','$filename')");
if ($result == 'true') {echo "<p class='bold'>БЛА БЛА БЛА.</p>";}
else {echo "<p>Ваша ЗАМЕТКА НЕ ДОБАВЛЕНА</p>";}
}
else
{
echo "<p class='bold'>БЛА БЛА БЛА</p>";
}
$allowed_filetypes = array('.jpg','.gif','.bmp','.png');
$max_filesize = 524288;
$upload_path = './uploadimg/';
$filename = $_FILES['mini_img']['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
if(!in_array($ext,$allowed_filetypes))
die('<p class="bold"><br />Также Вы не загрузили картинку либо данный тип файла не поддерживается.</p>');
if(filesize($_FILES['mini_img']['tmp_name']) > $max_filesize)
die('Фаил слишком большой.');
if(!is_writable($upload_path))
die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');
// Загружаем фаил в указанную папку.
if(move_uploaded_file($_FILES['mini_img']['tmp_name'],$upload_path . $filename))
echo '<p class="bold"><a href="' . $upload_path . $filename . '">смотреть.</a></p>';
else
echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';?>
|
| |
|
|
|
|
|
|
|
для: kronck
(22.10.2010 в 12:57)
| | Вы бы выставляли только основное, без БЛА-БЛА, глядишь, оно бы и нагляднее было.
А чего это вы так легко реализователи свои "полеты" в базу? Вы даже не удосужились сделать элементарную проверку принятых данных, как то на присутствие самих значений, ибо isset проверяет только наличие самой переменной, но ни как присутствие в ней значения.
Начинать надо с проверки загружаемого файла, и, если он был загружен, производить все манипуляции с ним, затем уже проверка данных, и после всего успешного запись в базу, включая информацию и о загруженном файле?
Меня всегда интересовал вопрос - а нафига собственно говоря пользователю ваша к нему просьба - " Установите права доступа - 777"? Он что в состоянии это сделать?
Уже столько раз говорилось, что доверять трем буквам после точки, это в лучшем случае получать на сервере мусор, в худшем случае крайне непотребные вещи. Воспользуйтесь поиском, уже столько об этом говорилось, что даже и лень писать. | |
|
|
|
|
|
|
|
для: sim5
(22.10.2010 в 13:29)
| | ок | |
|
|
|
|