Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Mavrikii
 

$_SESSION['phone_model'][$_POST["phone_model"]] = $_POST["quantity"];
Спасибо тебе огромное, все работает люкис

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 21:48 09-10-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sto50

Цитата:
$_SESSION['phone_model'][$_POST["phone_model"]] = $_POST["quantity"];

лучше не делать напрямую.. причин до кучи - могут подсунуть не число. если где то идет вывод без экранирования, то можно получить XSS. могут подделать название, которого нет или что угодно.
поэтому сначала санация полученных данных, разнообразные проверки, и только после этого добавление в сессию.
 
могут вообще подсунуть отрицательно число для количества - еще и деньги окажетесь должны, если речь о магазине )

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 21:51 09-10-2023 | Исправлено: Mavrikii, 21:51 09-10-2023
Sto50



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Mavrikii

Спасибо большое. Я так и сделаю

Всего записей: 81 | Зарегистр. 26-06-2005 | Отправлено: 22:26 09-10-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
 
Проблема разрешилась.

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 12:44 10-01-2024 | Исправлено: Vladsvn, 16:42 10-01-2024
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

код загружает только первую страницу фотографий из imdb, остальные страницы нет, в чем проблема?
 
 

Код:
 
 
<?php
 
$imdbId = "tt0070047";
$maxPages = 6; // Numero massimo di pagine che vuoi scaricare
 
$pages = [];
for ($i = 1; $i <= $maxPages; $i++) {
    $pages[] = "https://www.imdb.com/title/$imdbId/mediaindex?page=$i&ref_=ttmi_mi_sm";
}
 
$cookieFile = 'cookiefile.txt';
if (!file_exists($cookieFile)) {
    touch($cookieFile);
}
 
foreach ($pages as $page => $url) {
    echo "Elaborazione della pagina " . ($page + 1) . "...\n"; // Messaggio di debug
     
     sleep(5); // Aspetta 5 secondi prima di fare la prossima richiesta
 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'); // Simula un browser web
    curl_setopt($ch, CURLOPT_COOKIEFILE, realpath($cookieFile)); // Leggi i cookie da questo file
    curl_setopt($ch, CURLOPT_COOKIEJAR, realpath($cookieFile)); // Salva i cookie in questo file
    $movieDetails = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Errore durante la richiesta HTTP: ' . curl_error($ch);
        exit();
    }
    curl_close($ch);
 
    if (!preg_match_all('/<script type="application\/ld\+json">(.*?)<\/script>/s', $movieDetails, $matches)) {
        echo "Errore: Nessuno script JSON trovato nella pagina $url.\n";
        continue;
    }
 
    $scripts = $matches[1];
    $hasDownloadedImages = false;
 
    foreach ($scripts as $script) {
        $json = json_decode($script);
 
        if (is_object($json) && property_exists($json, 'image') && is_array($json->image)) {
            $images = $json->image;
 
            foreach ($images as $image) {
                if (property_exists($image, 'contentUrl')) {
                    $immagine = $image->contentUrl;
                    $imageData = @file_get_contents($immagine);
                    if ($imageData === false) {
                        echo "Errore: Impossibile scaricare l'immagine da $immagine.\n";
                    } else {
                        // Utilizza basename() per ottenere il nome del file dalla sua URL
                        $filename = "images1/" . basename($immagine);
                        if (!file_exists($filename)) {
                            file_put_contents($filename, $imageData);
                            $hasDownloadedImages = true;
                        }
                    }
                } else {
                    echo "Errore: L'oggetto immagine non contiene la chiave 'contentUrl'.\n";
                }
            }
        } else {
            echo "Errore: Il JSON non &#232; strutturato come previsto.\n";
        }
    }
 
    if ($hasDownloadedImages) {
        echo "Pagina " . ($page + 1) . " completata.\n";
    } else {
        echo "Nessuna immagine scaricata dalla pagina " . ($page + 1) . ".\n";
    }
}
 
// Cancella il file dei cookie alla fine dello script
if (file_exists($cookieFile)) {
    unlink($cookieFile);
}  
 
?>
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 16:33 29-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
код загружает только первую страницу фотографий из imdb, остальные страницы нет, в чем проблема?

потому что смена номера страницы выдает одно и то же.
ссылки на картинки находятся не там, а в  
<div class="media_index_thumb_list" id="media_index_thumbnail_grid">
 

Цитата:
                    $immagine = $image->contentUrl;
                    $imageData = @file_get_contents($immagine);
                    if ($imageData === false) {
                        echo "Errore: Impossibile scaricare l'immagine da $immagine.\n";
                    } else {
                        // Utilizza basename() per ottenere il nome del file dalla sua URL
                        $filename = "images1/" . basename($immagine);
                        if (!file_exists($filename)) {
                            file_put_contents($filename, $imageData);
                            $hasDownloadedImages = true;
                        }
                    }

и лучше сначала проверять, есть ли уже файл, и если нет, то скачиваеть, а не после скачивания.
 
берите ссылку на превьюшку
https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_UY100_CR25,0,100,100_AL_.jpg
удаляете часть о размере, оставляя
https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg
профит

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 20:23 29-01-2024
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
потому что смена номера страницы выдает одно и то же.
ссылки на картинки находятся не там, а в  
<div class="media_index_thumb_list" id="media_index_thumbnail_grid">

 
 
URL-ссылки на фотографии находятся внутри json
 
 

Код:
 
 
<script type="application/ld+json">{
  "@context": "http://schema.org",
  "@type": "ImageGallery",
  "url": "/title/tt0070047/mediaindex",
  "image": [
    {
      "@type": "ImageObject",
      "width": "5392",
      "height": "3600",
      "url": "https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "mainEntityOfPage": "/title/tt0070047/mediaviewer/rm2287360001",
      "contentUrl": "https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "caption": "Linda Blair and Ellen Burstyn in The Exorcist (1973)"
    },
    {
      "@type": "ImageObject",
      "width": "5444",
      "height": "3600",
      "url": "https://m.media-amazon.com/images/M/MV5BMzFmYTM4OGEtMTY2Ni00YzZiLTg0NDYtZGI5Y2Q5YTZiNTIwXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "mainEntityOfPage": "/title/tt0070047/mediaviewer/rm2539018241",
      "contentUrl": "https://m.media-amazon.com/images/M/MV5BMzFmYTM4OGEtMTY2Ni00YzZiLTg0NDYtZGI5Y2Q5YTZiNTIwXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "caption": "Linda Blair and Ellen Burstyn in The Exorcist (1973)"
    },
    {
      "@type": "ImageObject",
      "width": "5513",
      "height": "3600",
      "url": "https://m.media-amazon.com/images/M/MV5BZTFhODhiNjctMWE0Mi00NjU0LThmYzMtYmNiNTEzMTRlOTVmXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "mainEntityOfPage": "/title/tt0070047/mediaviewer/rm2304137217",
      "contentUrl": "https://m.media-amazon.com/images/M/MV5BZTFhODhiNjctMWE0Mi00NjU0LThmYzMtYmNiNTEzMTRlOTVmXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "caption": "Linda Blair, Max von Sydow, and Jason Miller in The Exorcist (1973)"
    },
    {
      "@type": "ImageObject",
      "width": "5500",
      "height": "3720",
      "url": "https://m.media-amazon.com/images/M/MV5BZDVjMDQyMWItMjg1Yy00ZDI0LWJlOTUtMDI1YTgwNWRkZDEwXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "mainEntityOfPage": "/title/tt0070047/mediaviewer/rm2320914433",
      "contentUrl": "https://m.media-amazon.com/images/M/MV5BZDVjMDQyMWItMjg1Yy00ZDI0LWJlOTUtMDI1YTgwNWRkZDEwXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "caption": "Max von Sydow and Jason Miller in The Exorcist (1973)"
    },
    {
      "@type": "ImageObject",
      "width": "5421",
      "height": "3600",
      "url": "https://m.media-amazon.com/images/M/MV5BMzQzZDg4MmItMDI1NC00ODBkLWJlOTUtNjdkZGJiYWJmM2RmXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "mainEntityOfPage": "/title/tt0070047/mediaviewer/rm2337691649",
      "contentUrl": "https://m.media-amazon.com/images/M/MV5BMzQzZDg4MmItMDI1NC00ODBkLWJlOTUtNjdkZGJiYWJmM2RmXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_.jpg",
      "caption": "Jason Miller in The Exorcist (1973)"
    },
 
 


Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 22:53 29-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
URL-ссылки на фотографии находятся внутри json
 

эта информация не меняется на разных страницах - элементарно же видно в браузере.
открываем страницу, смотрим исходный код - везде одинаковая информация, поэтому и скрипт получает одно и то же.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 22:54 29-01-2024 | Исправлено: Mavrikii, 22:55 29-01-2024
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
Queste informazioni non cambiano nelle diverse pagine: sono semplicemente visibili nel browser.
apriamo la pagina, guardiamo il codice sorgente: le stesse informazioni sono ovunque, quindi lo script riceve la stessa cosa.  

 
а как поправить код?

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:20 29-01-2024 | Исправлено: zagorisback, 23:33 29-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
а как поправить код?

не пытаться парсить json, брать откуда указал.
например первое превью
https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_UY100_CR25,0,100,100_AL_.jpg
макс размер можно получить заменив в конце на  
https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_FMjpg_UX2160_.jpg
 
вторая превью
https://m.media-amazon.com/images/M/MV5BMzFmYTM4OGEtMTY2Ni00YzZiLTg0NDYtZGI5Y2Q5YTZiNTIwXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_UY100_CR25,0,100,100_AL_.jpg
аналогично на  
https://m.media-amazon.com/images/M/MV5BMzFmYTM4OGEtMTY2Ni00YzZiLTg0NDYtZGI5Y2Q5YTZiNTIwXkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_FMjpg_UX2160_.jpg
и так далее

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 23:33 29-01-2024
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
не пытаться парсить json, брать откуда указал.
например первое превью
https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_UY100_CR25,0,100,100_AL_.jpg
макс размер можно получить заменив в конце на  
https://m.media-amazon.com/images/M/MV5BMzNjODBmNTctMmI5Mi00NzZhLWEwNTEtYzczZTlhZWJkODA4XkEyXkFqcGdeQXVyMTUzMTg2ODkz._V1_FMjpg_UX2160_.jpg

 
 
тогда для этого требуется регулярное выражение (регулярное выражение), можете ли вы его предоставить?  

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:38 29-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
тогда для этого требуется регулярное выражение (регулярное выражение), можете ли вы его предоставить?

лениться то зачем?
сначала выцепить содержимое
<div class="media_index_thumb_list" id="media_index_thumbnail_grid">.*</div>, а уже в нем эти URL
 

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 00:23 30-01-2024
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Я решил код другим способом, в любом случае спасибо
Теперь у меня другая проблема, ниже
 
Добавлено:
 
У меня есть эта строка, взятая из URL
 

Цитата:
<li><strong>Date added:</strong> Jan 30th, 2024</li>

 
проблема в том, что я не могу преобразовать строку в DateTime
 

Код:
 
 
  $dateString = str_replace(['st', 'nd', 'rd', 'th', ',', 'Date added:'], ['', '', '', '', '', ''], $dateString);
   
  $dateString2 = DateTime::createFromFormat('d/m/Y', $dateString);
   
  var_dump($dateString2);
 
 
 
=   bool(false)
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 16:26 31-01-2024 | Исправлено: zagorisback, 16:34 31-01-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
проблема в том, что я не могу преобразовать строку в DateTime
 


Код:
$str = '<li><strong>Date added:</strong> Jan 30th, 2024</li>';
$str = rtrim(explode('</strong> ', $str)[1], '</li>');
// или $str = explode('Date added: ', strip_tags($str))[1];
$d = DateTime::createFromFormat('M jS, Y', $str);

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 23:21 31-01-2024 | Исправлено: Mavrikii, 23:25 31-01-2024
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 

Цитата:
$str = '<li><strong>Date added:</strong> Jan 30th, 2024</li>';
$str = rtrim(explode('</strong> ', $str)[1], '</li>');
// или $str = explode('Date added: ', strip_tags($str))[1];
$d = DateTime::createFromFormat('M jS, Y', $str);  

 
 
Я уже тестировал подобный скрипт, он не работает,
проблема в том, что DateTime::createFromFormat не поддерживается php 5.6, там находится скрипт

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 12:10 01-02-2024 | Исправлено: zagorisback, 12:13 01-02-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
проблема в том, что DateTime::createFromFormat не поддерживается php 5.6, там находится скрипт

поддерживается.

Цитата:
(PHP 5 >= 5.3.0, PHP 7, PHP 8)

 
 

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 12:18 01-02-2024 | Исправлено: Mavrikii, 12:20 01-02-2024
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
конвертировать вот так d/m/Y ,  
 
строка содержит пробел слева, th и запятую
 

Код:
$str = '<li><strong>Date added:</strong> Jan 30th, 2024</li>';
$str = rtrim(explode('</strong> ', $str)[1], '</li>');
// или $str = explode('Date added: ', strip_tags($str))[1];
$d = DateTime::createFromFormat('d/m/Y', $str);
 
var_dump($d);  

 
= bool(false)

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 13:18 01-02-2024
pacnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос имеем такой запрос
 
SELECT `id`, AES_DECRYPT(`pp`, '12345') as `pp` FROM `db` WHERE AES_DECRYPT(`email`,'12345')  = 'test@mail.ru'  
 
если в базе есть test@mail.ru, то все работает хорошо, а вот если такого пользователя нет например  test222@mail.ru, то получаем ошибку Warning: mysqli_query(): Couldn't fetch mysqli in  
 
Почему?

Всего записей: 39 | Зарегистр. 12-02-2007 | Отправлено: 16:43 16-02-2024
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pacnik

Цитата:
Почему?

Код показывайте, дело не в запросе.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 17:10 16-02-2024
pacnik

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
$file = 'Ира:test@mail.ru/Петя:test222@mail.ru'; #test@mail.ru ящик существует
$key = '12345';
 
$array_users = [];
$array_users = explode ('/', $file);
 
foreach ($array_users as $val) {
     
    $users_data = explode (':', $val);
    $name = $users_data[0];
    $email_user = $users_data[1];
    
    $result_pp  =  mysqli_query( $link,    
    "SELECT `id`, AES_DECRYPT(`pp`, '$key') as `pp` FROM `db` WHERE AES_DECRYPT(`email`,'$key')  = '$email_user' ");
        
    
    while (  $n_pp  =  mysqli_fetch_assoc($result_pp)  ){                         
       
        $id =  $n_pp['id'];
    }
        
 
    if ($id > 1) {
        $result_update  = mysqli_query( $link,  
            "UPDATE `db2` SET  
                `name` = AES_ENCRYPT('$name','$key'),
                `ph` = AES_ENCRYPT('$ph','$key'),
                `dp_pp` = '50'
            WHERE `id` = '$id'")  or die(mysqli_error($link));
 
 
    }else{
    
        echo 'не найден -'.$id . $email_user;
    }
 
    
    mysqli_close($link);    
}

Всего записей: 39 | Зарегистр. 12-02-2007 | Отправлено: 18:00 16-02-2024
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru