Une Bévue
2014-10-16 11:29:11 UTC
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...
<?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...