Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Загрузка файлов в папку, а данных в бд.
 
 автор: kronck   (22.10.2010 в 12:57)   письмо автору
 
 

Добрый день.
Не поделится ли вот каким скриптом:
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>&nbsp;</p>
          <p>
            <label>
<input type="submit" name="submit" id="submit" class="button" value="Занести заметку в базу" />
            </label>
          </p>
          <p>&nbsp;</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($filenamestrpos($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 
'При загрузке возникли ошибки. Попробуйте ещё раз.';?>

  Ответить  
 
 автор: sim5   (22.10.2010 в 13:29)   письмо автору
 
   для: kronck   (22.10.2010 в 12:57)
 

Вы бы выставляли только основное, без БЛА-БЛА, глядишь, оно бы и нагляднее было.
А чего это вы так легко реализователи свои "полеты" в базу? Вы даже не удосужились сделать элементарную проверку принятых данных, как то на присутствие самих значений, ибо isset проверяет только наличие самой переменной, но ни как присутствие в ней значения.
Начинать надо с проверки загружаемого файла, и, если он был загружен, производить все манипуляции с ним, затем уже проверка данных, и после всего успешного запись в базу, включая информацию и о загруженном файле?

Меня всегда интересовал вопрос - а нафига собственно говоря пользователю ваша к нему просьба - " Установите права доступа - 777"? Он что в состоянии это сделать?

Уже столько раз говорилось, что доверять трем буквам после точки, это в лучшем случае получать на сервере мусор, в худшем случае крайне непотребные вещи. Воспользуйтесь поиском, уже столько об этом говорилось, что даже и лень писать.

  Ответить  
 
 автор: kronck   (22.10.2010 в 13:45)   письмо автору
 
   для: sim5   (22.10.2010 в 13:29)
 

ок

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования