Curl voegt een port toe waardoor hij faalt (opgelost)
ik hoop hier wat hulp te vinden wat mijn code betreft.
ik ben bezig met een module systeem die een Get request stuurt naar alle modules zodat die hun ding kunnen doen.
dus ik post naar Validator.php > stuurt naar alle modules de get met de data van de post request.
Dit doet hij wel maar het vreemde is de website draait SSL verbinding dus https://
het gekke is dat zodra ik https gebruik hij aan het einde van het domein in de url :443 zet (ssl port)
dus zodra hij verstuurd de url "https://mijndomijntje.nl" naar "https://mijndomijntje.nl:443" maakt.
waardoor de 404 naar voren komt want dat bestaat niet!
hier is de class die ik gebruik :
https://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/
iemand een idee waarom dit misgaat?
ik heb alle urls getest en dit is de code die ik gebruik :
https://pastebin.com/Spd34pC0
alvast bedankt!
Gewijzigd op 06/04/2019 21:39:02 door Mar groen
Gewijzigd op 06/04/2019 19:52:25 door - Ariën -
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php//$path returnt ./modulenaam
foreach ($directories as $path) {
$trimmed = substr($path,1);
$module = "https://domijntje".$trimmed."/module.php?js=1".$vars;
echo $module;
array_push($modulearray,$module);
}
// uiteindelijk array met elke module url https://domijntje.nl/modulenaam/module.php?js=1 + vars (&my=2)
$r = multiRequest($modulearray);
echo '<pre>';
print_r($r); ?>
foreach ($directories as $path) {
$trimmed = substr($path,1);
$module = "https://domijntje".$trimmed."/module.php?js=1".$vars;
echo $module;
array_push($modulearray,$module);
}
// uiteindelijk array met elke module url https://domijntje.nl/modulenaam/module.php?js=1 + vars (&my=2)
$r = multiRequest($modulearray);
echo '<pre>';
print_r($r); ?>
Toevoeging op 06/04/2019 19:54:51:
Quote:
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
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
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
<?php
function multiRequest($data, $options = array()) {
// array of curl handles
$curly = array();
// data to be returned
$result = array();
// multi handle
$mh = curl_multi_init();
// loop through $data and create curl handles
// then add them to the multi-handle
foreach ($data as $id => $d) {
$curly[$id] = curl_init();
$url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;
curl_setopt($curly[$id], CURLOPT_URL, $url);
curl_setopt($curly[$id], CURLOPT_HEADER, 0);
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);
// post?
if (is_array($d)) {
if (!empty($d['post'])) {
curl_setopt($curly[$id], CURLOPT_POST, 1);
curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']);
}
}
// extra options?
if (!empty($options)) {
curl_setopt_array($curly[$id], $options);
}
curl_multi_add_handle($mh, $curly[$id]);
}
// execute the handles
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);
// get content and remove handles
foreach($curly as $id => $c) {
$result[$id] = curl_multi_getcontent($c);
curl_multi_remove_handle($mh, $c);
}
// all done
curl_multi_close($mh);
return $result;
}
?>
function multiRequest($data, $options = array()) {
// array of curl handles
$curly = array();
// data to be returned
$result = array();
// multi handle
$mh = curl_multi_init();
// loop through $data and create curl handles
// then add them to the multi-handle
foreach ($data as $id => $d) {
$curly[$id] = curl_init();
$url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;
curl_setopt($curly[$id], CURLOPT_URL, $url);
curl_setopt($curly[$id], CURLOPT_HEADER, 0);
curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);
// post?
if (is_array($d)) {
if (!empty($d['post'])) {
curl_setopt($curly[$id], CURLOPT_POST, 1);
curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']);
}
}
// extra options?
if (!empty($options)) {
curl_setopt_array($curly[$id], $options);
}
curl_multi_add_handle($mh, $curly[$id]);
}
// execute the handles
$running = null;
do {
curl_multi_exec($mh, $running);
} while($running > 0);
// get content and remove handles
foreach($curly as $id => $c) {
$result[$id] = curl_multi_getcontent($c);
curl_multi_remove_handle($mh, $c);
}
// all done
curl_multi_close($mh);
return $result;
}
?>
Gewijzigd op 06/04/2019 19:55:17 door mar groen
Eh, en over welke poort heb je HTTPS dan wel lopen? Dan moet je die d'r expliciet achter zetten (443 is de default voor HTTPs, dat is ongeveer hetzelfde als :80 achter een HTTP (zonder SSL) URL plakken. Dat werkt gewoon. Dus die 404 zou je ook moeten krijgen als je de resulterende URL gewoon in een browser plakt.
dus https werkt bij alles en iedereen maar mijn script geen idee waarom dat een 404 terug geeft het bestand is er daar ben ik zeker van
Toevoeging op 06/04/2019 21:38:49:
hey ik heb alles nu eindelijk door.
die port die hij toevoegt verdwijnt bij verbinding dus daar zat het probleem dus niet in.
maar de url zelf.
na lang studeren en je reactie rob zie ik idd dat er iets mis is met de url.
na vergelijking met wat ik invoer kwam ik er zojuist achter dat de url een stuk miste die door een var doorgevoerd werd. (stomme if statements) erg bedankt man jullie allen voor deze helderheid!