За последние 24 часа нас посетили 19270 программистов и 1608 роботов. Сейчас ищут 937 программистов ...

Добавление фото с урл

Тема в разделе "Прочие вопросы по PHP", создана пользователем rustrek, 17 дек 2012.

  1. rustrek

    rustrek Активный пользователь

    С нами с:
    17 дек 2012
    Сообщения:
    23
    Симпатии:
    0
    Всем привет, ребята подскажите пожалуйста, уже час мучаюсь, что то не могу вдуплить.

    Проблема (или задача) такая, есть форма добавления новостей, фото к новости можно добавить с локального компа, а я хочу добавить возможность добавлять ещё и с урл.

    создал фому

    Код (PHP):
    1.     <div class="form alt">
    2.         <table width="100%" border="0" cellpadding="0" cellspacing="0">    
    3.             <tr>
    4.                 <td class="label"><label for="image">С компа:  <font color="red">*</font>  <font color="grey">( <i>250x200px</i> )</font></label></td>
    5.             </tr>
    6.             <tr>
    7.                 <td><input type="file" size="80" id="image" name="image" value="' . $_POST['image'] . '"></td>
    8.             </tr>
    9.             <tr>
    10.                 <td class="label"><label for="image">Урл:  <font color="red">*</font>  <font color="grey">( <i>250x200px</i> )</font></label></td>
    11.             </tr>
    12.             <tr>
    13.                 <td><input type="text" size="80" id="image" name="url" value="' . $_POST['url'] . '"></td>
    14.             </tr>
    15.         </table>
    16.     </div>
    17.  
    вот php код

    Код (PHP):
    1.   if ($_POST[submit])
    2.   {
    3.       $_POST = safe_data ($_POST, 'query');
    4.  
    5.         if(isset($_POST['confirm']) && isset($_SESSION['confirm']))
    6.         {
    7.             if(strtolower($_POST['confirm'])!=$_SESSION['confirm'])
    8.             {
    9.             $error =     "<div align=center>\n";
    10.             $error .=     "<b>Ошибка: Введенный код не совпадает с кодом на изображении!</b><br>Введите код, изображенный на картинке и повторите попытку...\n";
    11.             $error .=     "</div>\n";
    12.             }
    13.         } else {
    14.             $error =     "<div align=center>\n";
    15.             $error .=     "<b>Ошибка: Введенный код не совпадает с кодом на изображении!</b><br>Введите код, изображенный на картинке и повторите попытку...\n";
    16.             $error .=     "</div>\n";
    17.         }
    18.     $ref = mysql_query('SELECT * FROM '.$DBPrefix.'news WHERE link=\'' . $_POST['link'] . '\' AND title=\'' . $_POST['title'] . '\' LIMIT 1');
    19.     if (mysql_num_rows($ref)!=0)
    20.     {    
    21.         $error .= '<div align=center>Такая новость уже есть, попробуйте изменить <b>заголовок</b>.</div>';
    22.       }
    23.       if (!($_POST[id_category]))
    24.       {
    25.         $error .= 'Пожалуйста выберите <b>категорию</b>.<br/>';
    26.       }
    27.  
    28.  
    29.      if ($submit || isset($_POST['text']))
    30.      {
    31.         $_POST['text'] = (isset($_POST['text'])) ? trim($_POST['text']) : '';
    32.      if (!empty($_POST['text']))
    33.      {
    34.         $html_entities_match = array('#&(?!(\#[0-9]+;))#', '#<#', '#>#', '#"#');
    35.         $html_entities_replace = array('&', '<', '>', '"');
    36.         $_POST['text'] = str_replace("\r", '', trim($_POST['text']));
    37.         $_POST['text'] = preg_replace("#\n{3,}#", "\n\n", $_POST['text']);
    38.        // $_POST['text'] = preg_replace($html_entities_match, $html_entities_replace, $_POST['text']);
    39.        // $_POST['text'] = nl2br($_POST['text']);
    40.  
    41.       if (!($error))
    42.       {
    43.         if (!(mysql_query ("INSERT INTO ".$DBPrefix."news VALUES('0',
    44.         '0',
    45.         '" . $_POST['id_category'] . "',
    46.         '" . $_POST['id_source'] . "',
    47.         '" . $_POST['id_region'] . "',
    48.         '" . $_POST['date'] . "',
    49.         '" . $_POST['title'] . "',
    50.         '" . $_POST['text'] . "',
    51.         '" . $_POST['link'] . "',
    52.         '0',
    53.         '0',
    54.         '0',
    55.         '" . $_POST['seo_title'] . "',
    56.         '".$_SESSION['user_id']."')")))
    57.         {
    58.           exit (mysql_error ());
    59.         }
    60.         $listid = mysql_insert_id ();
    61.         $image = $_FILES['image']['name'];
    62.         $image2 = $_FILES['image']['tmp_name'];
    63.         if (preg_match('/\S+\.(gif|jpg|jpeg|bmp|png)/siU', $image, $out))
    64.         {
    65.             $id_news = 21;
    66.             $fl_ext = $out[1];
    67.             $photo = $listid.".".$fl_ext;
    68.             $filename_full = "images/news/".$photo;
    69.             $f = $image2;
    70.             $to = $filename_full;
    71.             require("parser/resize.php");
    72.           mysql_query("UPDATE ".$DBPrefix."news SET image='".$photo."' WHERE id='".$listid."' LIMIT 1");
    73.             header ('location:news_prev.php?id=' . $listid . '&add=true');
    74.           die();
    75.         } else {
    76.         mysqlquery("DELETE FROM  ".$DBPrefix."news WHERE id = ".$listid.";");
    77.             $error .= 'Ошибка при загрузке файла <b>'.$image.'</b>.<br/>';
    78.         }
    79.       }
    80.  
    81.     }
    82.  } 
    83.       else
    84.       {
    85.         $_POST = safe_data ($_POST, 'display');
    86.       }
    87.   }
    88.  
    не могу отправить по урл, с локального нормально всё передаётся.

    Подскажите пожалуйста как быть?

    в принципе условие то должно быть

    Код (PHP):
    1. if ((isset($_FILES["image"])) or (isset($_POST['url'])) ){
    2. if(!$_POST['url']) {
    3. .....
    4. } else {
    5. ......
    6. }
    7.  
    но не срабатывает, что то я туплю. Спасибо
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    Код (PHP):
    1. $source = "http://example.com/dir/picture.jpeg"; // удаленный url
    2. $dest    = "upload/picture.jpeg"; // локально сохраняем в
    3. if (copy($source, $dest))
    4.     echo "Всё ок";
    5. else
    6.     echo "Копирование не удалось"; 
     
  3. rustrek

    rustrek Активный пользователь

    С нами с:
    17 дек 2012
    Сообщения:
    23
    Симпатии:
    0
    спасибо, та я принцип понимаю, не могу его прикрутить к своему коду просто, не лезет в голову сейчас ни чего, проверку сейчас делаю, смотрю, что не так
     
  4. rustrek

    rustrek Активный пользователь

    С нами с:
    17 дек 2012
    Сообщения:
    23
    Симпатии:
    0
    да, совсем забыл добавить, картинки загружаются через ресайз + каждой картинки даётся название - это id новости + расшерение ($listid = mysql_insert_id (); ) в самом коде выше видно, так то залить картинку через форму то можно, а вот в моём случаи чуть сложнее, по этому и забуксовал немного.

    может есть у кого идеи, поделитесь пожалуйста