OVH Cloud OVH Cloud

problème curieux, php s'arrête ???

21 réponses
Avatar
Une Bévue
j'ai un script php très simple :
<?php
error_reporting(E_ALL);
date_default_timezone_set('Europe/Paris');
setlocale(LC_CTYPE, 'fr_FR.utf-8');
if(isset($_GET['json'])) {
echo "HAVE \$_GET...<br />";
print_r($_GET['json']);
echo "<pre id='pasteboard>";
$pasteboard = json_decode($_GET['json'], true);
foreach($pasteboard as $key => $value) {
echo "$key => $value \n";
}
echo "</pre>";
} else {
echo "NO \$_GET...<br />";
}
?>

ce script php est dans une iframe côté html/js :
<iframe id="send_JS_2_php" name="send_JS_2_php"
src="send_JS_2_php.php"></iframe><br />

avec JS je change le src de cette iframe par :
iframe.src = "send_JS_2_php.php?json=" + JSON.stringify(pasteboard);

là, dans mon iframe, je vois bien que le php reçoit le 'pasteboard car
print_r($_GET['json']); me donne :
{"firstname":"Alfred","lastname":"Hitchcock"}
ce qui correspond tout à fait à l'objet js 'pasteboard :
pasteboard = {firstname: 'Alfred', lastname: 'Hitchcock'};

MAIS, et c'est là que je ne comprends plus tout se passe "comme si"
l'éxécution du script php s'arrêtait là (càd après le
print_r($_GET['json'])).

Un moment j'ai pensé que mon json_decode($_GET['json'] plantait mais le :
echo json_last_error_msg() ...
ne donne rien

donc même en supprimant ce $pasteboard = json_decode($_GET['json'], true);

simplement en laissant donc :
echo "<pre id='pasteboard>";
echo "</pre>";

je ne vois pas du tout le "<pre id='pasteboard></pre>" dans le html
résultant.

c'est pourquoi je dis que tout se passe "comme si" l'éxécution du script
s'arrêtait après le print_r.

bon, bien sûr, j'ai essayé en direct ce script par qqc comme :

<url_du_script>?json=<le json en question>

ça donne exactement là même chose...

1 réponse

1 2 3
Avatar
Une Bévue
Le 20/10/14 17:34, Olivier Miakinen a écrit :
Ça en valait la peine !



OUI ))
1 2 3