A 403 Forbidden error
Résolu
danielos77
Messages postés
108
Date d'inscription
Statut
Membre
Dernière intervention
-
danielos77 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
danielos77 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Additionally, a 403 forbidden error was encountered while trying to use an errordocument to handle the request.
- Qwerty to azerty - Guide
- A link to the past - Accueil - Guide jeu vidéo
- Video to video - Télécharger - Conversion & Codecs
- Majuscule to minuscule - Guide
- Press del to enter setup ✓ - Forum Windows
11 réponses
C'est étrange...
A la limite, tu pourrais mettre en commentaire que les lignes 14 à 29 pour voir si le souci ne viendrait pas de ton fichier de connexion à la bdd.....
Il faudrait également t'assurer que tes différents fichiers ( y compris celui de connexion à la bdd ) soit bien encodés en UTF8 ( voir chapitre 1 de ce lien : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8#1-verifiez-l-encodage-des-fichiers )
Et enfin,
Histoire que ton code soit un peu plus propre.. je te propose :
Dans ton fichier cnxBdd.php tu peux ajouter ces fonctions ( que tu pourras utiliser ensuite ailleurs dans tes autres fichiers ! )
Puis dans ton fichier actuel, tu pourras remplacer ton code php par:
PS: je constate que tu mélanges des majuscules/minuscules dans le nom de tes tables et de tes champs dans ta bdd ...
Je te conseille de toujours ( pour les bases de données... (tables et champs ) utiliser que des minuscules.
Ca t'évitera d'éventuelles erreurs et ainsi tu n'auras pas à réfléchir à chaque fois que tu écris une requête si il y a des majuscules ou non...
A la limite, tu pourrais mettre en commentaire que les lignes 14 à 29 pour voir si le souci ne viendrait pas de ton fichier de connexion à la bdd.....
Il faudrait également t'assurer que tes différents fichiers ( y compris celui de connexion à la bdd ) soit bien encodés en UTF8 ( voir chapitre 1 de ce lien : https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8#1-verifiez-l-encodage-des-fichiers )
Et enfin,
Histoire que ton code soit un peu plus propre.. je te propose :
Dans ton fichier cnxBdd.php tu peux ajouter ces fonctions ( que tu pourras utiliser ensuite ailleurs dans tes autres fichiers ! )
/** * Permet d'exécuter la requête et de gérer les éventuelles erreurs */ function dbQuery($sql,$datas=null){ global $bdd; //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; return $requete; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); exit; } } /** * Si ta requête ne doit retourner qu'une seule ligne */ function dbOne($sql,$datas=NULL){ $req = dbQuery($sql,$datas); return $req->fetch(); } /** * Si ta requête ne doit retourner plusieurs lignes */ function dbAll($sql,$datas=NULL){ $req = dbQuery($sql,$datas); return $req->fetchAll(); }
Puis dans ton fichier actuel, tu pourras remplacer ton code php par:
<?php //activation de l'affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //on inclut le fichier de connexion à la bdd require_once "../secure/cnxBdd.php"; // echo 'Test <br>'; /** * Fonction permettant de récuperer le nombre en fonction du lieu * ça évite de répéter plusieurs fois la requête alors que seule une variable change... */ function getNBCrumFromLieu($lieu){ $res = dbOne("SELECT COUNT(ID) AS NB FROM CRULM where Lieu = :Lieu", [':Lieu'=>$lieu] ); return !empty($res['NB']) ? $res['NB'] : 0; } //On utilise la fonction pour récupérer les nombres $nb1 = getNBCrumFromLieu('Nangis'); $nb2 = getNBCrumFromLieu('Chavenay'); //echo 'Il y a '.$nb1.' enregistrement(s) pour Nangis.<br>'; $lib1 = 20 - intval($nb1); //echo 'Il y a '.$nb2.' enregistrement(s) pour Chavenay.<br>'; $lib2 = 20 - intval($nb2); ?>
PS: je constate que tu mélanges des majuscules/minuscules dans le nom de tes tables et de tes champs dans ta bdd ...
Je te conseille de toujours ( pour les bases de données... (tables et champs ) utiliser que des minuscules.
Ca t'évitera d'éventuelles erreurs et ainsi tu n'auras pas à réfléchir à chaque fois que tu écris une requête si il y a des majuscules ou non...
Attention, je ne parlai pas de la déclaration de tes pages ni de la connexion à la bdd ( bien qu'il faille aussi qu'elles soient en utf8 ).
Là je parles bien de l'encodage des fichiers eux-mêmes ( lis bien le contenu du lien que je t'ai donné)
Là je parles bien de l'encodage des fichiers eux-mêmes ( lis bien le contenu du lien que je t'ai donné)
Bonjour,
Le fichier sur lequel renvoi ton formulaire est : EnvoiComReg.php
C'est bien écrit de la même façon sur le serveur ? (majuscules/minuscules.. ) ?
Il se trouve bien dans le même dossier que le code du formulaire html ?
Quelle est l'url affichée dans ton navigateur lorsque tu as cliqué sur ton bouton submit et que tu as ce message d'erreur ?
As tu un fichier .htaccess à la racine de ton site ?
Le site est-il entièrement codé à la main ou tu as utilisé un CMS ou un FRAMEWORK PHP ?
Dans ton fichier EnvoiComReg.php, si tu retires tout ce qui se trouve en dessous de ton echo (ligne 8 ), le souci persiste ?
Tu travailles en LOCAL ou sur un serveur ?
Si en local, avec quel logiciel pour émuler le serveur web ?
Si sur un serveur .. chez qui es-tu hébergé ?
Le fichier sur lequel renvoi ton formulaire est : EnvoiComReg.php
C'est bien écrit de la même façon sur le serveur ? (majuscules/minuscules.. ) ?
Il se trouve bien dans le même dossier que le code du formulaire html ?
Quelle est l'url affichée dans ton navigateur lorsque tu as cliqué sur ton bouton submit et que tu as ce message d'erreur ?
As tu un fichier .htaccess à la racine de ton site ?
Le site est-il entièrement codé à la main ou tu as utilisé un CMS ou un FRAMEWORK PHP ?
Dans ton fichier EnvoiComReg.php, si tu retires tout ce qui se trouve en dessous de ton echo (ligne 8 ), le souci persiste ?
Tu travailles en LOCAL ou sur un serveur ?
Si en local, avec quel logiciel pour émuler le serveur web ?
Si sur un serveur .. chez qui es-tu hébergé ?
Bonjour Jordane,
- Oui c'est bien écrit de la même façon.
- Il sont bien tout les 2 dans le même dossier.
- https://aneg-ulm.yn.fr/CRULMIDF/EnvoiComReg.php est l'adresse après avoir cliqué sur le submit.
- Oui il y a un .htaccess à la racine du site
- Entièrement codé à la main.
- Oui le pb persiste après avoir mis en commentaire toute la fin du script après la ligne 8. Par contre si je met directement l'adresse https://aneg-ulm.yn.fr/CRULMIDF/EnvoiComReg.php, j'ai bien le mot test qui s'affiche (idem en levant la partie en commentaire).
- Sur un serveur
- Hébergé chez PlanetHoster
Mes autres formulaires sur d'autres pages fonctionnent.
Merci
Daniel
- Oui c'est bien écrit de la même façon.
- Il sont bien tout les 2 dans le même dossier.
- https://aneg-ulm.yn.fr/CRULMIDF/EnvoiComReg.php est l'adresse après avoir cliqué sur le submit.
- Oui il y a un .htaccess à la racine du site
- Entièrement codé à la main.
- Oui le pb persiste après avoir mis en commentaire toute la fin du script après la ligne 8. Par contre si je met directement l'adresse https://aneg-ulm.yn.fr/CRULMIDF/EnvoiComReg.php, j'ai bien le mot test qui s'affiche (idem en levant la partie en commentaire).
- Sur un serveur
- Hébergé chez PlanetHoster
Mes autres formulaires sur d'autres pages fonctionnent.
Merci
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Aucun souci avec le formulaire présent dans le fichier
https://aneg-ulm.yn.fr/CRULMIDF/ComReg1.php
Compare les deux fichiers pour essayer de voir où se situe le souci.
ça peut venir du nom d'un élément du formulaire, des balises html mal fermées ...
https://aneg-ulm.yn.fr/CRULMIDF/ComReg1.php
Compare les deux fichiers pour essayer de voir où se situe le souci.
ça peut venir du nom d'un élément du formulaire, des balises html mal fermées ...
Wouah...
Je viens de reprendre le fichier et de le renommer exactement comme celui du lien que tu me proposes.
Dans ce fichier, je n'avais gardé que la partie formulaire. ça marchait.
J'ai remis la partie texte. Toujours ok
Mais en remettant la partie php avant le html, ça merdouille.
Pourtant cette partie php n'a pour finalité que de compter les enregistrements déjà présent dans la table.
ça merdouille même en ne faisant qu'afficher les résultats des requêtes dans l'echo juste après, sans les mettre dans le formulaire.
Je viens de reprendre le fichier et de le renommer exactement comme celui du lien que tu me proposes.
Dans ce fichier, je n'avais gardé que la partie formulaire. ça marchait.
J'ai remis la partie texte. Toujours ok
Mais en remettant la partie php avant le html, ça merdouille.
Pourtant cette partie php n'a pour finalité que de compter les enregistrements déjà présent dans la table.
ça merdouille même en ne faisant qu'afficher les résultats des requêtes dans l'echo juste après, sans les mettre dans le formulaire.
C'est confirmé, c'est bien la partie php en amont du html qui fout le brun.
C'est bête, car je voulais afficher le nombre de place restante mais si je ne peux mettre de requête en amont ça devient compliqué...
Quelle serait la piste pour y arriver ?
C'est bête, car je voulais afficher le nombre de place restante mais si je ne peux mettre de requête en amont ça devient compliqué...
Quelle serait la piste pour y arriver ?
En mettant en commentaire de la ligne 2 à la ligne 29, ça fonctionne.
<?php //activation de l'affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // echo 'Test <br>'; //on inclut le fichier de connexion à la bdd require_once "../secure/cnxBdd.php"; $sql1 = "SELECT COUNT(ID) AS nb1 FROM CRULM where Lieu ='Nangis'" ; $result1 = $bdd->query($sql1); $columns = $result1->fetch(); $nb1 = $columns['nb1']; $sql2 = "SELECT COUNT(ID) AS nb2 FROM CRULM where Lieu ='Chavenay'" ; $result2 = $bdd->query($sql2); $columns = $result2->fetch(); $nb2 = $columns['nb2']; // echo 'Il y a '.$nb1.' enregistrement(s) pour Nangis.<br>'; $lib1=20-$nb1; // echo 'Il y a '.$nb2.' enregistrement(s) pour Chavenay.<br>'; $lib2=20-$nb2; ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Page CRULM IdF</title> <META NAME="Author" CONTENT="D. Haas"><META NAME="Description" CONTENT="Comité Régional ULM IdF"><META NAME="robots" content="noindex"><META NAME="googlebot" content="noindex"><script type="text/javascript"> function refuserToucheEntree(event) { // Compatibilité IE / Firefox if(!event && window.event) { event = window.event; } // IE if(event.keyCode == 13) { event.returnValue = false; event.cancelBubble = true; } // DOM if(event.which == 13) { event.preventDefault(); event.stopPropagation(); } } </script> <!-- Style to set the size of checkbox --> <style> input.largerCheckbox { width: 20px; height: 20px; } </style> </head> <body alink="red" background="../ULM/background9.gif" bgcolor="white" link="blue" text="black" vlink="purple"> <p align="center"><font color="#CC6633" size="7"><b><u>Inscription aux journées "Mise en Garde"<br></u></b></font> <b><font color="blue" size="6"></font></b></p> </p> <p><br></p> <p><br> <font size="5">Le Comité Régional d'Ile de France organise deux journées de mises en garde portant sur 3 thèmes.<br> <ul> <ul> • Mise en garde d'être dans une situation non voulue et inconfortable pendant un vol </font><font size="4">(Intervenants : Pierre Kolodziej et pilote instructeur de voltige)</font><font size="5">.<br><br> • Mise en garde de sa responsabilité pénale qui peut-être engagée dans certains cas </font><font size="4">(Intervenant : Patrick Pipart)</font><font size="5">.<br><br> • Mise en garde d'une mauvaise préparation de vol (visite prévol) ou d'une mécanique défaillante </font><font size="4">(Intervenant : Pierre Pouches)</font><font size="5">.<br> </ul> </ul> </font> </p> <p style="margin-left: 30px;"><font size="4"> Ces journées se dérouleront en salle à Nangis le dimanche 15 mai et à Chavenay le dimanche 18 septembre.<br> Les horaires sont : 9h00 - 12h30 et 14h00 - 16h00.<br> Une restauration est prévue pendant la pause méridienne.<br> </p> <p style="margin-left: 30px;"> Suite à ces modules, les personnes qui le souhaitent pourront faire un vol avec une mise en situation. Ces vols pourront se dérouler à Nangis, Chavenay ou Persan Beaumont.<br> Les pilotes intéressés prendront ensuite et directement rendez-vous auprès des instructeurs de voltige.<br> <u><b>ATTENTION :</b></u> Ces vols ne se dérouleront pas les jours de la présentation en salle mais plus tard.<br> <br> Les participations demandées sont de :<br> - 7€00 pour la journée en salle.<br> - xx€00 pour le vol de mise en situation<br> Dans les 2 cas, le complément au coût de revient sera mis par le Comité Régional. Chaque participation est à régler séparément et par chèque (au moins pour le vol car celui-ci ne sera encaissé qu'une fois le vol réalisé). <br> </p> <p> <font size="5"><u><b>Prérequis :</u></b></font><br> Afin de tirer un maximum de bénéfices de ces échanges, il faut, pour pouvoir s'inscrire :<br> - Être licenciées 2022.<br> - Être Breveté avec l'emport passager.<br> - Avoir à minima environ 50h00 de pilotage solo.<br> </p> <p><b><u><font color="blue" size="6"> Inscription :</font></u></b></p> <form action="EnvoiComReg.php" method="post" name="0"> <font size="5"> <p style="margin-left: 40px;"> <br> Il reste </font><font color="blue" size="5"><?php echo $lib1; ?></font><font size="5"> places à Nangis pour le 15 mai, et </font><font color="blue" size="5"><?php echo $lib2; ?></font><font size="5"> places à Chavenay pour le 18 septembre.<br> <font size="4">Les nombres en négatifs indiquent les inscriptions qui sont sur liste d'attente. Pour le cas où il y aurait un désistement ou pour une prochaine session.</font> </p> <font size="5"> <p style="margin-left: 40px;"> <LABEL for="Nom">Nom : </LABEL> <input type="text" name="Nom" id="Nom" required size="40" /> </p> <p style="margin-left: 40px;"> <LABEL for="Prenom">Prénom : </LABEL> <input type="text" name="Prenom" id="Prenom" required size="40" /> </p> <p style="margin-left: 40px;"> <LABEL for="Numlicence">Votre N° de licence : </LABEL> <input type="text" name="Numlicence" id="Numlicence" required size="12" /> </p> <p style="margin-left: 40px;"> Choix du lieu :<br> Nangis <input type="radio" name="Lieu" id="LieuNangis" value="Nangis" size="18" checked /> Chavenay <input type="radio" name="Lieu" id="LieuChavenay" value="Chavenay" size="18" /> </p> <p style="margin-left: 40px;"> <label for="Vol"> Souhaitez-vous faire un vol de mise en situation (Cochez si OUI, laissez vide si NON) </label> <!-- L'input hidden est pour le cas ou la checkbox n'est pas cochée car il manquerait une variable --> <input type="hidden" id="Vol" name="Vol<?php echo $Vol; ?>" value="NON"> <input type="checkbox" class="largerCheckbox" id="Vol" name="Vol<?php echo $Vol; ?>" value="OUI"> </p> </font> <p style="margin-left: 160px;"> <input type="submit" value="Envoi de votre INSCRIPTION" style="font-size : 14px; width: 200px; height: 50px;" /> </p> <br> <p> </p> </form> </body> </html>
Bonsoir,
Effectivement, en mettant mes requêtes en commentaires c'est bon aussi...
Je prends bonne note des recommandations même si je n'utilise jamais d'accent ni d'espace mais des underscores et justes des majuscules en première lettre pour le confort (de l'efficacité du repérage pas de la beauté calligraphique).
Pour l'utf8, c'est ce que j'utilise (mais je vais quand même relire ton lien la connexion à la bdd est bien déclarée en utf8, en principe, je le déclare bien aussi dans mes pages en utf8. C'est vrai que c'est pas ce que je déclare pour l'interclassement dans les tables par contre.
La construction pour éviter la répétition de la requête est super aussi (comme tout ce que tu proposes ;-)).
Je bosse tout ça demain et soit je reviens avec les résultats ou sinon je met en résolu.
@+ et encore un grand merci Jordane.
Daniel
Effectivement, en mettant mes requêtes en commentaires c'est bon aussi...
Je prends bonne note des recommandations même si je n'utilise jamais d'accent ni d'espace mais des underscores et justes des majuscules en première lettre pour le confort (de l'efficacité du repérage pas de la beauté calligraphique).
Pour l'utf8, c'est ce que j'utilise (mais je vais quand même relire ton lien la connexion à la bdd est bien déclarée en utf8, en principe, je le déclare bien aussi dans mes pages en utf8. C'est vrai que c'est pas ce que je déclare pour l'interclassement dans les tables par contre.
La construction pour éviter la répétition de la requête est super aussi (comme tout ce que tu proposes ;-)).
Je bosse tout ça demain et soit je reviens avec les résultats ou sinon je met en résolu.
@+ et encore un grand merci Jordane.
Daniel
Bonjour Jordane,
Je suis désolé mais la function ne fonctionne pas, j'ai le message
Fatal error: Uncaught Error: Call to undefined function dbOne() in /home/anegjxuk/public_html/CRULMIDF/Com1Reg.php:15 Stack trace: #0 /home/anegjxuk/public_html/CRULMIDF/Com1Reg.php(20): getNBCrumFromLieu('Nangis') #1 {main} thrown in /home/anegjxuk/public_html/CRULMIDF/Com1Reg.php on line 15
la ligne 15 est
J'ai pas trouvé les guillemets ou apostrophes qui n'allaient pas, mais c'est pas grave. Ca aurait été 'pluss mieux' mais bon mes requêtes fonctionnent et je n'ai plus l'error 403.
L'erreur venait du nom du Checkbox. Je passe le sujet en résolu.
Merci encore pour ton attention à venir en aide "aux naufragés".
Daniel
Je suis désolé mais la function ne fonctionne pas, j'ai le message
Fatal error: Uncaught Error: Call to undefined function dbOne() in /home/anegjxuk/public_html/CRULMIDF/Com1Reg.php:15 Stack trace: #0 /home/anegjxuk/public_html/CRULMIDF/Com1Reg.php(20): getNBCrumFromLieu('Nangis') #1 {main} thrown in /home/anegjxuk/public_html/CRULMIDF/Com1Reg.php on line 15
la ligne 15 est
$res = dbOne("SELECT COUNT(ID) AS NB FROM CRULM where Lieu = :Lieu", [':Lieu'=>$lieu] );
J'ai pas trouvé les guillemets ou apostrophes qui n'allaient pas, mais c'est pas grave. Ca aurait été 'pluss mieux' mais bon mes requêtes fonctionnent et je n'ai plus l'error 403.
L'erreur venait du nom du Checkbox. Je passe le sujet en résolu.
Merci encore pour ton attention à venir en aide "aux naufragés".
Daniel
Euh..... comme j'ai 2 fichiers de connexion (utilisation de 2 bdd) et que les noms sont très proches, évidement, je n'avais pas mis le code dans le bon... so sorry. Ca fonctionne impeccablement, une fois cette étourderie corrigée.
Pour l'encodage, c'est bien utf8 (sans BOM) que j'utilise sous Notepad++.
@+ et merci encore pour l'aide et ces découvertes
Daniel
Pour l'encodage, c'est bien utf8 (sans BOM) que j'utilise sous Notepad++.
@+ et merci encore pour l'aide et ces découvertes
Daniel