PDF verplaatst naar nieuwe pagina. toch downloaden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marko Westerveld

Marko Westerveld

07/01/2017 11:59:44
Quote Anchor link
Goedemorgen,

Bij mijn leverancier kan ik pdf bestanden downloaden, die ik wil opslaan op mijn server.

Eerder was dit geen probleem, ik riep label.php aan en die gaf een pdf terug die ik download op de volgende manier:
Quote:
$imageString = file_get_contents($label_download);
$save = file_put_contents('***/pdf/'.$pdf_code.'.pdf',$imageString);



Werkte prima.

Maar nu als ik label.php aanroep, wordt ik doorgestuurd naar documenten/label.php en staat daar de download. Maar helaas kan ik niet rechtstreeks documenten/label.php aanroepen omdat er op label.php door de leverancier een geheime hash wordt aangemaakt die ze niet vrij geven.
Ik moet dus iets verzinnen in php dat de pagina label.php wordt geopend en doorgelinkt naar documenten/label.php en daarna de pdf wordt gedownload. Iemand die me op weg kan helpen in welke richting ik moet zoeken?
 
PHP hulp

PHP hulp

24/12/2024 04:23:55
 
- Ariën  -
Beheerder

- Ariën -

07/01/2017 12:14:23
Quote Anchor link
Je wilt dus een beveiliging omzeilen?
 
Marko Westerveld

Marko Westerveld

07/01/2017 12:19:09
Quote Anchor link
Nee de beveiliging hoef ik niet te omzeilen.

Ik roep aan: label.php met mijn gegevens, achter de schermen laat ik de pagina doen wat ie moet doen, dan wordt ik doorgelinkt naar de nieuwe pagina en daar wordt dan een pdf getoond die ik wil downloaden.

Dus nog steeds de PDF downloaden alleen dan een stap later.......

Beetje moeilijk uitleggen
 
- Ariën  -
Beheerder

- Ariën -

07/01/2017 13:32:21
Quote Anchor link
Leg eens uit: Label.php is jouw scriptje die je net gaf? Want in je file_put_contents roep je een $pfd_code op, waarvan ik niet weet waar die vandaan komt.
En opeens is label.php een pagina bij de leverancier?

Met andere woorden: Ik snap weinig van je verhaal en ik heb het idee dat ik nog wat code lijk te missen.
 
Marko Westerveld

Marko Westerveld

07/01/2017 13:58:03
Quote Anchor link
Ik downloade bij mijn leverancier een .pdf bestand via /label.php op hun server

Echter hebben ze de beveiliging aangepast. Ik ga naar /label.php met een aantal parameters.
Vervolgens wordt ik dus doorgelinkt naar documenten/label.php

Hier wordt het .pdf bestand getoond.
 
Thomas van den Heuvel

Thomas van den Heuvel

07/01/2017 15:31:48
Quote Anchor link
Ah, aan hun zijde is eerst een redirect voor terugwaarste compatibiliteit. Correct?

Twee mogelijke oplossingen:
- roep gewoon de nieuwe URL aan?
- volg de redirect (bijvoorbeeld met curl), en ga dan pas een document ophalen

Maar als je weet hoe de nieuwe URL er uitziet zou ik gewoon voor oplossing #1 gaan omdat #2 nodeloos omslachtig is. Tenzij je om wat voor vage reden niet rechtstreeks documenten/label.php zou kunnen aanroepen.

EDIT: dit staat in je oorspronkelijke bericht. Hm, vaag. Dan zul je moeten uitzoeken hoe die "geheime hash" werkt. Je zou bij hun ook eens kunnen informeren waarom ze dit zo opgezet hebben.
Gewijzigd op 07/01/2017 15:33:51 door Thomas van den Heuvel
 
Marko Westerveld

Marko Westerveld

07/01/2017 16:44:25
Quote Anchor link
Als ik de url oproep met curl, dan krijg ik een melding van een nieuwe pagina. Daarin staan parameters (label.php?sha=8123199380&klant=2323) maar als ik die dan wil openen moet ik inloggen met een gebruikersnaam en wachtwoord. Omdat ik de 1e pagina niet zelf heb geopend (controle op ip)

De reden waarom dit is, is omdat er in het verleden misbruik is gemaakt wat hun veel geld kost.

Ik moet dus de redirect volgen met curl en dan downloaden, maar het lukt helaas nog niet
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

08/01/2017 13:18:24
Quote Anchor link
In curl aangeven dat redirects gevolgd moeten worden, en waarschijnlijk zal er bij de leverancier iets met sessies gedaan worden dus moet je daar ook iets mee.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
    curl_setopt($this->curl, CURLOPT_URL, $this->api_url . 'label.php?' . http_build_query($this->params));
    curl_setopt($this->curl, CURLOPT_POST, 1);
    curl_setopt($this->curl, CURLOPT_POSTFIELDS, $this->params);
    curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($this->curl, CURLOPT_COOKIEJAR, '');
?>

Dit gebruik ik voor het ophalen van PDF etiketten bij een vervoerder, en dat werkt.
Gewijzigd op 08/01/2017 13:24:44 door Ger van Steenderen
 
Marko Westerveld

Marko Westerveld

09/01/2017 09:16:04
Quote Anchor link
Dank je wel Ger, hiermee is het mij ook gelukt!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.