Comment envoyer depuis un boutton une page php -> page html?
Résolujordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonsoir,
J'ai un petit probléme dans ma page php de connection car j'aimerais envoyer un utilisateur depuis le boutton de connection (si il est connecté à la BDD) a une page de profil qui sera la sienne:
Entre autre: Page connéction php>boutton de connéction>voir si il est connécté >si connécté envoyer vers sa page profil
Mais lors de l'application de mon code j'ai une error 404
Not Found
The requested URL was not found on this server.
Apache/2.4.51 (Win64) PHP/7.4.26 Server at localhost Port 80
voilà mon code
<?php include "Connexion1.php"; ?> <?php?> <form method="post" type ="lemail" type ="lpassword" action="Monblocnote.html"> <?php //lancement de la session session_start(); //ne lancer que si les champs entrés ne sont pas vides if (!empty($_POST['lemail']) && !empty($_POST['lpassword']) ) { $mysqli=new mysqli('localhost', 'email', 'password', 'database.php'); //vérification si pb de connexion à la BDD et afficher messages d'erreur if ($mysqli->error) { echo "problème de connexion à la bdd"; echo $mysqli->connect_error . "<br>"; echo $mysqli->connect_error . "<br>"; exit(); } } //on a réussi à se connecter à la BDD //... //redirection automatique vers une autre page après vérification des conditions en amont header("Location:Monblocnote.html"); $users = $mysqli -> real_escape_string($_POST(['lemail'])); ?>
- Comment envoyer depuis un boutton une page php -> page html?
- Comment supprimer une page sur word - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Comment créer une page facebook - Guide
- Comment traduire une page - Guide
- Page d'accueil - Guide
2 réponses
Bonjour
Pour commencer, il serait bien de nous indiquer qu'elle est l'URL qui apparaît dans ton navigateur Internet lorsque tu obtiens ce message.
Ensuite, il faudrait nous poster ton code complet car là il semble qu'il manque pas mal de choses..
Pense aussi à modifier tous tes fichiers censé être protégé par cette authentification en PHP sinon n'importe qui ayant l'URL pourra se connecter à sa page profil et à celle des autres....
D'ailleurs, pour protéger tes pages, il serait bien que tu te penches sur le fonctionnement des variables de session.
Et au cas où, ne confonds pas la connexion à la base de données et l'authentification de ton utilisateur... La connexion à la base, sert uniquement au programme PHP pour pouvoir effectuer des requêtes SQL dans cette base.
L'authentification de ton utilisateur, passera par une requête SQL qui ira vérifier que son login existe puis en PHP vérifiera que le mot de passe crypté correspond à celui que tu as transpi dans le formulaire.
Ton formulaire fais appel ( et redirige ) vers le fichier de connexion
action="Connection1.php"
Il ne faut donc pas l'inclure dans ta page
<?php include "Connexion1.php"; ?>
En plus tu sembles avoir un fichier de connexion à la bdd en PDO ... et tu greffes un peu au hasard.. des lignes de codes en mysqli ...
Bref, ton code devrait ressembler à ça
<?php //-----------------------------------------// //Démarrage des variables de session //-----------------------------------------// session_start(); //-----------------------------------------// //Affichage des éventuelles erreurs PHP : //( à lire : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code ) //-----------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-----------------------------------------// //connexion à la bdd // visiblement, tu as un fichier contenant la connexion en PDO // Merci d'appliquer ceci : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs //-----------------------------------------// require_once "database.php"; //-----------------------------------------// // Traitement du formulaire (submit) //-----------------------------------------// if(isset($_POST['formlogin'])) { extract($_POST); if(!empty($lemail) && !empty($lpassword)) { try{ $q= $db->prepare("SELECT * FROM users WHERE email = :email"); $q->execute(['email' => $lemail]); $result = $q->fetch(); //on rempli la variable de session avec les infos de l'utilisateur ( son ID par exemple ) $_SESSION['USER']['ID'] = $result['id']; }catch(Exception $e){ echo "Erreur : " . $e->getMessage(); } //Si la requête a retournée quelquechose if(!empty($result)) { //compte existant $hashpassword = $result['password']; if(password_verify($lpassword, $result['password'])){ //redirection automatique vers une autre page après vérification des conditions en amont header("Location:Monblocnote.html"); // si tu laisses ce fichier en .html, tu ne pourras pas utiliser le php pour vérifier que la variable de session est remplie et qu'il a le droit de voir cette page... exit; } else{ echo " Mais le mot de passe n'est pas correct"; } } else { echo " Mais L'adresse mail ne correspond pas à un compte existant"; } } else { echo "Tous les champs ne sont pas renseignés"; } } ?> <!Doctype html> <html> <head> <meta charset= "utf-8"> <title>Connection</title> <link rel="apple-touch-icon" sizes="57x57" href="img/apple-icon-57x57.png"> <link rel="apple-touch-icon" sizes="60x60" href="img/apple-icon-60x60.png"> <link rel="apple-touch-icon" sizes="72x72" href="img/apple-icon-72x72.png"> <link rel="apple-touch-icon" sizes="76x76" href="img/apple-icon-76x76.png"> <link rel="apple-touch-icon" sizes="114x114" href="img/apple-icon-114x114.png"> <link rel="apple-touch-icon" sizes="120x120" href="img/apple-icon-120x120.png"> <link rel="apple-touch-icon" sizes="144x144" href="img/apple-icon-144x144.png"> <link rel="apple-touch-icon" sizes="152x152" href="img/apple-icon-152x152.png"> <link rel="apple-touch-icon" sizes="180x180" href="img/apple-icon-180x180.png"> <link rel="icon" type="image/png" sizes="192x192" href="img/android-icon-192x192.png"> <link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="96x96" href="img/favicon-96x96.png"> <link rel="icon" type="image/png" sizes="16x16" href="img/favicon-16x16.png"> <link rel="manifest" href="img/manifest.json"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="msapplication-TileImage" content="img/ms-icon-144x144.png"> <meta name="theme-color" content="#ffffff"> <style> h1{ font-family: 'Century Gothic'; } p{ font-family:'Century Gothic' ; } </style> </head> <body> <header> <center> <h1>Connection</h1> </center> </header> <div> <center> <!-- action ="" ==> Le formulaire redirige sur la même page --> <form method="post" type ="lemail" type ="lpassword" action=""> <p>Votre email :</p> <input type="lemail" name="lemail" id="lemail" required><br/> <br> <br> <p>Votre mots de passe :</p> <input type="lpassword" name="lpassword" id="lpassword" required><br/> <br> <br> <p>Se connecter </p><input type="submit" name="formlogin" id="formlogin" value="..."> </form> </center> </div> </body> </html>
Je te laisse lire les commentaires que j'y ai glissé ... (et les appliquer ! )
Pour ce qui est de ton autre question, merci d'ouvrir une nouvelle discussion propre à son traitement.
Je peux tout de même déjà te dire .. que tu sembles essayer de mettre des instruction apache (qui devraient se trouver dans un fichier .htaccess et/ou dans la config apache de ton serveur ... avec du code php .. et .. non... faut vraiment arrêter de copier/coller des trucs au pifs n'importe où dans les fichiers de ton site sinon tu n'y arrivera pas.
Je te rappelle encore une fois au passage, que si tu laisse l'extension .html à tes fichiers, ceux-ci ne pourront pas exécuter de code php ( et donc vérifier que l'utilisateur est connecté ..) . ( à moins d'avoir fait un paramétrage pariculier dans la config apache de ton serveur... mais je déconseille ! )
Voila. Bonne continuation.
Bonjour;
Alors l'url qu'il est sencé affiché "http://localhost/Pagewebphphtml/Connexion-inscription/Monblocnote.html"mais m'affiche ce si:
http://localhost/Pagewebphphtml/Connexion-inscription/Connection1.php
voilà mon code complet de ma page connexion
Le html:
Le php connection 1 :
le php connexion 2 :
J'espere qu'il y aura tous ce que vous aurez besoin mais ne vous inquietez pas je protegerais mes fichiers pour qu'aucun ne puisse y accedder sans connection.
Merci à l'avance de votre aide!
Ton formulaire redirige bien vers la page qui t'est affichée...
Ton fichier connexion 2 n'est jamais appelé ou utiliser dans le code que tu nous montres...
D'ailleurs, son code devrait se trouver à l'intérieur du fichier connexion 1 vers la ligne 36.
De cette façon ?
Mais j'ai tjrs le meme probleme
Mais sinon pendant ce temps là j'ai trouvé de la protection de l'url pouvez me dire si il est juste.