L'id de session est trop long ou contient des caractères illégaux, les caractères valides sont a-z, A-Z, 0-9 et '-,'
Comment résoudre :
Warning: session_start() [function.session-start]: L'id de session est trop long ou contient des caractères illégaux, les caractères valides sont a-z, A-Z, 0-9 et '-,' en ..... sur la ligne 3
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ......:3)..... sur la ligne 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at .....:3)..... sur la ligne 3
- n'ont pas de caractères illégaux en vous identifiant de session?
Vous devez vous connecter pour publier un commentaire.
jetez un oeil à cette
session_start()
discussion pour un travail autour de:PHPSESSID
en premier lieu? Ne sont-ils pas généré automatiquement par PHP?-
dans l'expression régulière, puisque c'est un caractère valide.C'est une information de la vulnérabilité , un attaquant malveillant peut modifier les cookies et attribue des caractères illégaux, c'est PHPSESSID pour exposer ce PHP warning , qui contient en fait juteuse informations comme le chemin du fichier et le nom d'utilisateur !
Il y a un rapport de bug pour ce problème (https://bugs.php.net/bug.php?id=68063)
Vous pouvez vérifier la réussite de votre session_start et générer l'id, si nécessaire:
session_regenerate_id(): Cannot regenerate session id - session is not active in FILE on line X
suivie par la même erreur que le titre de la question...J'ai édité Andron de la solution précédente! (correction de la valeur retournée) et a ajouté que l'évaluation de la sortie de my_session_start(). Solution précédente résoudre le problème avec le message d'erreur, mais j'ai besoin d'avoir de la session a commencé.
Je suggère l'utilisation de "plus correct" version de la fonction.
Plusieurs remarques:
Expression régulière dépend le php ini paramètres, comme décrit ici et ici.
Donc mis à jour la version ressemble à ceci:
Si vous n'avez pas de soins sur les autres utilisateurs (par exemple: si c'est une interface privée), il suffit de cocher votre navigateur, trouver le cookie PHPSESSID (ou le nom que vous avez donné), les supprimer, et de les actualiser.
Je suis venu avec cette méthode simple, juste essayer et attraper le démarrage de la session, et si il y a un problème de régénérer la session.