J'ai mis les cookies régulièrement dans une page de rappel dans mon application Twitter. Tout fonctionne bien. Maintenant, en utilisant jQuery, je soumets un formulaire, et la fonction de rappel active un script PHP. Ce script n'a besoin que d'un cookie pour les valeurs sérialisées de $ _POST; et les valeurs s'exécutent bien (à la fois sérialisé et normal, je leur ai fait écho pour déboguer). L'heure d'expiration est définie sur 1 an à l'avance. Mais pour une raison quelconque, le cookie n'apparaitra nulle part. Voici le code:Setcookie ne fonctionne pas?
// js/main.js
$('#settings-form').live('submit', function() {
$.post('controllers/settings.php', $(this).serialize(), function(data) { // Everything here works.
if (data == 'OK') // no errors spits out "OK". this works
changeView({'msg': 'Your settings were saved successfully.'}); // This just resets the view and adds a message div at the top. This works
else
changeView({'msg': data}); // This echoes the error if any exists. Doesn't happen, no errors arise
});
return false; // Cancels redirecting after submitting form
});
// controllers/settings.php
setcookie('user_settings', serialize($_POST), strtotime('+1 year'));
J'ai vérifié toutes les variables et j'ai même essayé de placer les factices pour le test (comme « boo » au lieu de serialize ($ _ POST) pour une raison qui ne fonctionne pas..
J'ai essayé de faire un chdir ('..'), pour que le cookie dir soit au bon endroit, mais ça ne semble pas être le problème, en vérifiant les cookies dans mon navigateur ne semble pas fonctionner du tout, pour n'importe quel chemin.Il ne fonctionne tout simplement pas.J'ai aussi essayé de changer manuellement le domaine et le chemin, mais ceux qui ne fonctionnent pas non plus.
Très bien, ce que j'ai fait était de combiner les deux - utilisé JS pour définir le cookie mais PHP pour obtenir la bonne valeur afin que je puisse l'utiliser facilement. Merci! Dommage que je devais contourner JS cependant. – casraf