J'utilise ce Flash Messages Script pour un système simple de redirection et de message flash. Tout fonctionne correctement sur mon apache localhost, mais dès que je le télécharge sur un serveur (également apache) cela ne fonctionne pas. Il définit les sessions et affiche également les messages correctement, mais il ne supprime pas les messages par la suite. Maintenant, j'ai un tas de "messages Flash" sur mon site Web et ils obtiendront de plus en plus à moins que vous fermiez votre navigateur pour désactiver toutes les sessions avec force.Les messages Flash ne disparaissent pas PHP
J'ai déjà lu la documentation un millier de fois et ai également recherché dans le script de messages Flash sur le serveur pour des erreurs. Je n'ai pas pu en trouver.
Peut-être que vous pouvez m'aider. L'hôte sur lequel je vais déployer mon site web est strato.com.
Modifier: J'ai trouvé un cookie appelé PHPSESSID dans les informations de mon navigateur. Peut-être que cela pourrait être utile.
Constructeur:
public function __construct()
{
// Generate a unique ID for this user and session
$this->msgId = sha1(uniqid());
// Create session array to hold our messages if it doesn't already exist
if (!array_key_exists('flash_messages', $_SESSION)) $_SESSION['flash_messages'] = [];
}
fonction Effacer la session:
protected function clear($types=[])
{
if ((is_array($types) && empty($types)) || is_null($types) || !$types) {
unset($_SESSION['flash_messages']);
} elseif (!is_array($types)) {
$types = [$types];
}
foreach ($types as $type) {
unset($_SESSION['flash_messages'][$type]);
}
return $this;
}
Ajouter Sessions:
public function add($message, $type=self::defaultType, $redirectUrl=null, $sticky=false)
{
// Make sure a message and valid type was passed
if (!isset($message[0])) return false;
if (strlen(trim($type)) > 1) $type = strtolower($type[0]);
if (!array_key_exists($type, $this->msgTypes)) $type = $this->defaultType;
// Add the message to the session data
if (!array_key_exists($type, $_SESSION['flash_messages'])) $_SESSION['flash_messages'][$type] = array();
$_SESSION['flash_messages'][$type][] = ['sticky' => $sticky, 'message' => $message];
// Handle the redirect if needed
if (!is_null($redirectUrl)) $this->redirectUrl = $redirectUrl;
$this->doRedirect();
return $this;
}
Montrez-nous Votre code qui définit et désactive la session S'il vous plaît –
J'ai découvert que c'est quelque chose à voir avec le cookie PHPSESSID. Comment puis-je désactiver ce cookie? –