file_get_contents kan geen $_SESSION variables meenemen.
Nu ben ik tot ontdekking gekomen tenminste als het waar is.
Dat file_get_contents geen 'toegang' heeft op sessions.
Vergeleken met de vorige topic heb ik het iets anders aangepakt
dit is nu de xml bestand:
Hoe kan ik er voor zorgen dat die wel de session pakt want dat is belangrijk.
any workarounds?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php session_start();
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;
$root = $doc->createElement('queue');
$root = $doc->appendChild($root);
$apiKey = $doc->createElement('apiKey');
$apiKey = $root->appendChild($apiKey);
$textapiKey = $doc->createTextNode('5a16411104cabf6b516');
$textapiKey = $title->appendChild($textapiKey);
$hash = $doc->createElement('hash');
$hash = $root->appendChild($hash);
$hash_value = $doc->createTextNode($_SESSION['key_api);
$hash_value = $hash->appendChild($hash_value);
echo $doc->saveXML();
?>
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;
$root = $doc->createElement('queue');
$root = $doc->appendChild($root);
$apiKey = $doc->createElement('apiKey');
$apiKey = $root->appendChild($apiKey);
$textapiKey = $doc->createTextNode('5a16411104cabf6b516');
$textapiKey = $title->appendChild($textapiKey);
$hash = $doc->createElement('hash');
$hash = $root->appendChild($hash);
$hash_value = $doc->createTextNode($_SESSION['key_api);
$hash_value = $hash->appendChild($hash_value);
echo $doc->saveXML();
?>
file_get_contents leest de inhoud van een bestand (zoals je aan de naam kan zien).
Eventueel leest het de output van een webpagina.
anders zou die het moeten doen.
Hij leest nu alles behalve de session.
$hash_value = $doc->createTextNode( $_SESSION['key_api );
Gewijzigd op 24/06/2013 12:23:04 door - Ariën -
Inderdaad een vervelend type foutje het trekt de aandacht weg op het probleem
Hij pakt nog steeds de session niet omdat file_get_contents geen sessions pakt.
php in xml? Als dat zo is, hoef je geen file_get_contents te gebruiken. Dan zou je het gewoon zo kunnen doen:
Ik neem aan dat dit gerelateerd is aan Code (php)
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
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
<?php
session_start();
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;
$root = $doc->createElement('queue');
$root = $doc->appendChild($root);
$apiKey = $doc->createElement('apiKey');
$apiKey = $root->appendChild($apiKey);
$textapiKey = $doc->createTextNode('5a16411104cabf6b516');
$textapiKey = $title->appendChild($textapiKey);
$hash = $doc->createElement('hash');
$hash = $root->appendChild($hash);
$hash_value = $doc->createTextNode($_SESSION['key_api']);
$hash_value = $hash->appendChild($hash_value);
$ch = curl_init("http://api.online-convert.com/queue-status");
$request["queue"] = $doc->saveXML();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
$info = curl_getinfo( $ch );
$error = curl_error($ch);
curl_close ($ch);
?>
session_start();
$doc = new DOMDocument('1.0');
// we want a nice output
$doc->formatOutput = true;
$root = $doc->createElement('queue');
$root = $doc->appendChild($root);
$apiKey = $doc->createElement('apiKey');
$apiKey = $root->appendChild($apiKey);
$textapiKey = $doc->createTextNode('5a16411104cabf6b516');
$textapiKey = $title->appendChild($textapiKey);
$hash = $doc->createElement('hash');
$hash = $root->appendChild($hash);
$hash_value = $doc->createTextNode($_SESSION['key_api']);
$hash_value = $hash->appendChild($hash_value);
$ch = curl_init("http://api.online-convert.com/queue-status");
$request["queue"] = $doc->saveXML();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch);
$info = curl_getinfo( $ch );
$error = curl_error($ch);
curl_close ($ch);
?>
101 The file is waiting in the queue for being processed.
Terwijl als ik het hardcoded doe krijg ik dit:
100 The file has been successfully converted. 0 1372070905 http://www15.online-convert. etc etc
Zo te zien komen ze allebei overeen.
Maar is dat niet logisch want de hashkey maakt steeds een andere aan
dus als ik upload geeft die een hash en die hash kan ik dan pas voor hardcode gebruiken
maar als ik dan refresh maakt die een andere aan
Toevoeging op 24/06/2013 15:56:16:
@Koen
heb je misschien nog een idee?
Gewijzigd op 24/06/2013 13:20:01 door Francoi gckx
Francoi gckx op 24/06/2013 13:19:21:
Dan krijg ik bool(false) dus dat betekent dat ze niet overeen komen.
Maar is dat niet logisch want de hashkey maakt steeds een andere aan
dus als ik upload geeft die een hash en die hash kan ik dan pas voor hardcode gebruiken
maar als ik dan refresh maakt die een andere aan
Toevoeging op 24/06/2013 15:56:16:
@Koen
heb je misschien nog een idee?
Maar is dat niet logisch want de hashkey maakt steeds een andere aan
dus als ik upload geeft die een hash en die hash kan ik dan pas voor hardcode gebruiken
maar als ik dan refresh maakt die een andere aan
Toevoeging op 24/06/2013 15:56:16:
@Koen
heb je misschien nog een idee?
Nog iemand die een oplossing weet?
Als je je hardcoded hash var_dump't en je session hash ook, komt de lengte dan wel overeen?
Ze komen overeen ik heb zelfs gecontroleerd of er in het begin of einde een spatie zit.
Toevoeging op 26/06/2013 10:33:18:
Als je wilt kan ik je de bestanden geven
En geeft mijn vorige var_dump met equals nog steeds false aan? Weet je dan zeker dat alles precies overeenkomt? Geef anders eens een voorbeeld.
Gewijzigd op 27/06/2013 17:50:28 door Francoi gckx
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<queue-answer>
<status>
<code>100</code>
<message>The file has been successfully converted.</message>
</status>
<params>
<downloadCounter>0</downloadCounter>
<dateProcessed>1372243861</dateProcessed>
<directDownload>http://www5.online-convert.com/download-file/abc3aa3021c9b49de933a548552ed5dc</directDownload>
<source_checksum>a8f398aac96639fff052b6c8c2bec91b</source_checksum>
<checksum>b76e7ddfc93a0d4e1528ee145272ea85</checksum>
<target_size>40</target_size>
<convert_to>pdf</convert_to>
<mime_type>application/pdf</mime_type>
<hash>abc3aa3021c9b49de933a548552ed5dc</hash>
</params>
</queue-answer>
<queue-answer>
<status>
<code>100</code>
<message>The file has been successfully converted.</message>
</status>
<params>
<downloadCounter>0</downloadCounter>
<dateProcessed>1372243861</dateProcessed>
<directDownload>http://www5.online-convert.com/download-file/abc3aa3021c9b49de933a548552ed5dc</directDownload>
<source_checksum>a8f398aac96639fff052b6c8c2bec91b</source_checksum>
<checksum>b76e7ddfc93a0d4e1528ee145272ea85</checksum>
<target_size>40</target_size>
<convert_to>pdf</convert_to>
<mime_type>application/pdf</mime_type>
<hash>abc3aa3021c9b49de933a548552ed5dc</hash>
</params>
</queue-answer>
Ik heb het getest met als inc_xml/inc_xml_cv.xml de volgende inhoud:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?xml version="1.0" encoding="utf-8" ?>
<queue>
<apiKey>mijnapikey</apiKey>
<targetType>document</targetType>
<targetMethod>convert-to-pdf</targetMethod>
</queue>
<queue>
<apiKey>mijnapikey</apiKey>
<targetType>document</targetType>
<targetMethod>convert-to-pdf</targetMethod>
</queue>
En ik heb alle code die jij hier net hebt neergezet gebruikt, behalve dat ik wel mijn eigen API-key heb gebruikt. Heb je wel je testMode uitgezet in inc_xml/inc_xml_cv.xml?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<queue-answer>
<status>
<code>101</code>
<message>The file is waiting in the queue for being processed.</message>
</status>
<params>
<hash>5df1789c77fac1d859de2f7fcb831552</hash>
</params>
</queue-answer>
<queue-answer>
<status>
<code>101</code>
<message>The file is waiting in the queue for being processed.</message>
</status>
<params>
<hash>5df1789c77fac1d859de2f7fcb831552</hash>
</params>
</queue-answer>
Heb je precies zelfde code gebruikt?
Dat klopt, want het bestand is niet binnen een paar milliseconden geconvert. Ik heb de hash opgeslagen en dan opnieuw uitgevoerd na een paar seconden. Dan krijg je wel de directe downloadlink. Deze response kreeg ik eerst ook, maar na een paar seconden krijg je gewoon code 100.
waarschijnlijk omdat als ik refresh een nieuwe hash aangemaakt wordt, hoe behou ik de hash
ik probeer het 2 keer uit te voeren zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$gDwLink = new SimpleXMLElement(get_data('cvuploads/' .$t . $n));
$download = $gDwLink->params->hash;
$gDwLinkD = new SimpleXMLElement(get_dlcv($download));
$dd = $gDwLinkD->params->hash;
echo get_dlcv($dd);
?>
$gDwLink = new SimpleXMLElement(get_data('cvuploads/' .$t . $n));
$download = $gDwLink->params->hash;
$gDwLinkD = new SimpleXMLElement(get_dlcv($download));
$dd = $gDwLinkD->params->hash;
echo get_dlcv($dd);
?>
hoe had jij het dan gedaan?
Ik had in dit geval gewoon even de hash gekopieerd uit het bestand, dus 'abc3aa3021c9b49de933a548552ed5dc' gekopieerd en erin gezet als $download. Maar je kan dus een database of session gebruiken in jouw geval.