Ca ne changera rien, ça revient au même : avec les " les variables sont interpolées (remplacées par leur valeur) et le / ne peut pas figurer en nom d'une variable.
Le problème vient de la variable $_POST["nfamille"] ? (elle n'existe pas ?)
Tu obtiens quoi ? var_dump($_POST); ?
mots de passe en clair, sans commentaire
fetchAll pour au plus une ligne c'est un peu overkill mais pourquoi pas (je veux dire ce n'est pas le pire)
idem, le LIMIT 1, normalement, n'est pas nécessaire (j'espère qu'il y a une contrainte unique sur login surtout)
ucfirst/strtolower/strtoupper sont incompatibles avec de l'UTF-8 (surtout ucfirst !)
au lieu d'utiliser les chaînes "oui"/"non", il existe le type booléen
tester l'existence des variables (ligne 8) c'est bien, sauf qu'il faut le faire avant de l'utiliser (ligne 6) sinon ça sert un peu à rien
et tant qu'à faire, on les teste toutes, pas juste une
Bon, au moins, pour une fois, il n'y a pas d'injection SQL
> La variable "nfamille" semble ne pas exister.... mais pourquoi ?
Après avoir soumis le formulaire ? (pas avant) On pourrait avoir le code de ce formulaire ?
> Faut-il mettre le test if(isset ()) avant session-start () ?
Pas nécessairement mais tu pourrais, semble-t-il, ici.
> avec toutes les variables (login et pass compris ?)
C'est toujours mieux de s'assurer que ce qu'on utilise existe au préalable puisque les variables superglobales $_COOKIE, $_POST, $_GET, etc dépendent de ce que l'utilisateur (si encore le client est humain et non un bot quelconque) envoie (et veut bien nous envoyer/jouer le jeu).
Euh, tu n'as pas de champ pour demander nfamille, nom et prenom donc ces variables POST sont censées provenir de quoi et d'où ?!?
Si c'est bien un formulaire de connexion, il me paraîtrait logique que ces informations proviennent de la base de données, non ? Parce que tu ne vas pas les redemander à chaque connexion, si ?
Mon besoin est pourtant simple sur le papier: une table avec mes 5 variables, un formulaire de connexion avec login et pass et une redirection vers un dossier Nom de Famille en récupérant $nfamille.
Bon je vais essayer de repenser l'écriture.
Par contre peux-tu juste me dire si il est possible et comment écrire un header location avec une variable de ma table comme pour ma demande initiale ?
Par contre peux-tu juste me dire si il est possible et comment écrire un header location avec une variable de ma table comme pour ma demande initiale ?
alors pour pallier à ce problème il sera mieux d'avoir une fonction qui élimine et transforme les caractères spéciaux ou les entités HTML en d'autre caractères alphanumériques, alors tu pourras avoir quelque chose du style:
> Mon besoin est pourtant simple sur le papier: une table avec mes 5 variables, un formulaire de connexion avec login et pass et une redirection vers un dossier Nom de Famille en récupérant $nfamille.
Oui sauf que ce n'est pas ce que tu as écrit (code) : tu as des variables qui supposent provenir du formulaire et non de ta table.
> Par contre peux-tu juste me dire si il est possible et comment écrire un header location avec une variable de ma table comme pour ma demande initiale ?
Absolument. Par contre il est vrai qu'il faudrait un urlencode mais à savoir :
il faudra penser à protéger l'accès à cette page parce que si je tape moi-même l'adresse et que je consulte les données de quelqu'un d'autre, ce n'est pas terrible
utiliser peut être autre chose que le nom de famille : quid d'un homonyme ?
Mais, as-tu vraiment besoin de faire figurer cette information dans l'URL plutôt que de la mettre en session (et utiliser celle-ci) ?
@julp: en fait mon projet est de faire un genre de messagerie privée et je souhaitais donc créer des dossiers par familles car j'ai (j'aurai) plusieurs fichiers à y mettre (image, pdf, php, doc...).
Et cela me semblait le plus simple.
Avec les sessions je ne vois pas trop comment y arriver.
Bon je vais reprendre le projet à zéro en essayant de mieux comprendre (!!) le fonctionnement de php.
> au lieu d'utiliser les chaînes "oui"/"non", il existe le type booléen
Mais de toute façon cette variable de session vaudra "oui" (ou vaudrait TRUE) sinon ne serait pas définie. En conséquence, c'est avant tout un isset qu'il faudrait (aurait fallu ?) pour la tester. Du moins sans avoir une initialisation explicite à FALSE (ou autre $_SESSION["autoriser"] ?? FALSE) qui ne nous a pas été montrée.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Ton présent détermine ton futur et la connaissance te placera au dessus de ta génération .
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli