Comment rendre responsive ces exemples
Résolu
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous
je viens de suivre ce tuto pour faire un tableau en responsive d un code php
mais cela ne semble pas fonctionner
j ai bien ma colonne et mes lignes , mais pas moyen que tout cela soit responsive
merci de l aide
je viens de suivre ce tuto pour faire un tableau en responsive d un code php
mais cela ne semble pas fonctionner
j ai bien ma colonne et mes lignes , mais pas moyen que tout cela soit responsive
merci de l aide
<?php include('./base.php'); if(isset($_POST['entrees'])) { $pseudo= htmlspecialchars($_POST['pseudo']); $passe = htmlspecialchars($_POST['passe']); $confirm_passe = htmlspecialchars($_POST['confirm_passe']); $passe_hache = password_hash($_POST['passe'], PASSWORD_DEFAULT); if(!empty($_POST['pseudo']) AND !empty($_POST['passe']) AND !empty($_POST['confirm_passe'])) { if($passe == $confirm_passe) { if(strlen($_POST['pseudo'])>=4 AND strlen($_POST['pseudo'])<=10) { $req = $bdd->prepare("SELECT * FROM client WHERE pseudo = ?"); $req->execute(array($pseudo)); $pseudo_est_la = $req->rowCount(); if($pseudo_est_la == 0) { $req = $bdd->prepare('INSERT INTO client(pseudo, passe, date_inscription) VALUES(:pseudo, :passe, CURDATE())'); $req->execute(array( 'pseudo' => $_POST['pseudo'], 'passe' => password_hash($_POST['passe'], PASSWORD_DEFAULT))); echo '<div class="container"style="margin:auto; width:600px;"> <div class="row"> <div class="col-sm"> <p class="bg-light border mt-2"> <h3> Bienvenue ' . $_POST['pseudo'] . '!</p></div></div> <div class="row"><div class="col-sm"> <p class="bg-light border mt-2">Vous avez été inscrit comme client. </p></div> </div> <div class="row"><div class="col-sm"> <p class="bg-light border mt-2">Cliquez sur le lien pour retourner au bon de commande.</h3> </p> </div> </div> </div>'; ?> <div class="container"style="margin:auto; width:600px"> <div class="row"> <div class="col-sm"style="margin:auto; width:600px"> <p class="bg-light border mt-2"> <a href="commande.php?pseudo=<?php echo $pseudo;?>"><span style="font-size:22px"><strong> Retour au bon de commande </strong></span></a></p> </div> </div> </div> <?php } else { echo ' <div class="container"style="margin:auto; width:600px"> <div class="row"> <div class="col-sm"> <p class="bg-light border mt-2"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Ce pseudo existe déjà. Vous êtes déjà inscrit. Vous devez vous connecter. </a> </span></p> </div> <div class="col-sm"> <p class="bg-light border mt-2"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Choisissez un autre pseudo : <a href="connexion_perle.php">Se connecter</a> </span></p> </div> </div> </div> '; exit(); } } else { echo ' <div class="container"style="margin:auto; width:600px"> <div class="row"> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Le pseudo doit contenir entre 4 et 10 caractères.</span> </div> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Essayez à nouveau : <a href="inscr_perle.php">S\'incrire</a> </span> </div> </div> </div>'; exit(); } } else { echo '<div class="container"style="margin:auto; width:600px"> <div class="row"> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Vos mots de passe ne correspondent pas. </span> </div> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Essayez à nouveau : <a href="inscr_perle.php">S\'incrire</a> </span> </div> </div> </div> '; exit(); } } else { echo '<div class="container"style="margin:auto; width:600px"> <div class="row"> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Tous les champs ne sont pas complétés. </span> </div> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Essayez à nouveau : <a href="inscr_perle.php">S\'incrire</a> </span> </div> </div> </div>'; exit(); } } ?> <html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content=""> <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors"> <meta name="generator" content="Jekyll v4.1.1"> <title>Jumbotron Template · Bootstrap</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <link rel="canonical" href="https://getbootstrap.com/docs/4.5/examples/jumbotron/"> <!-- Bootstrap core CSS --> <link href="../assets/dist/css/bootstrap.min.css" rel="stylesheet"> <style> .bd-placeholder-img { font-size: 1.125rem; text-anchor: middle; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } @media (min-width: 768px) { .bd-placeholder-img-lg { font-size: 3.5rem; } } </style> <!-- Custom styles for this template --> <link href="jumbotron.css" rel="stylesheet"> </head> <body> <main role="main"> <!-- Main jumbotron for a primary marketing message or call to action --> <form method="post" action=""> <div class="container"> <!-- Example row of columns --> <div class="row"> <div class="col-md-4"> <p><label for="pseudo">Votre pseudo S.V.P:</label></p> <p><label for="passe">Votre mot de passe:</label></p> <p> <label for="confirm_passe">confirmation du mot de passe:</label> </p> </div> <div class="col-md-4"> <p><input type="text" name="pseudo" id="pseudo"> </p> <p><input type="password" name="passe" id="passe"></p> <p><input type="password" name="confirm_passe" id="confirm_passe"> </p> <p><input type="submit" name="entrees" value="entrez"> </p> </div> </div> <hr> </div> <!-- /container --> </form> </main> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script>window.jQuery || document.write('<script src="../assets/js/vendor/jquery.slim.min.js"><\/script>')</script><script src="../assets/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script> </body></html>
A voir également:
- Comment rendre responsive ces exemples
- Comment rendre un fichier moins lourd - Guide
- Comment nettoyer son mac pour le rendre plus rapide - Guide
- Exemples moyenne - Guide
- Comment rendre un clavier qwerty en azerty - Guide
- Rendre un dossier invisible - Guide
14 réponses
Bonjour,
Déjà .. quelques points qu'il me semblait déjà t'avoir dit plusieurs fois.... :
- htmlspecialchars ne doit s'utiliser que pour de l'affichage ... pas pour "nettoyer" les variables avant d'en servir dans des requêtes SQL
- CHAQUE requête faite en PDO doivent se trouver dans UN bloc TRY/CATCH
- On récupère PROPREMENT les variables AVANT de les utiliser (donc.. il ne devrait pas y avoir de $_POST['truc..'] en plein milieu du code ... )
Et pour finir :
- Tu génère du code HTML ( via tes echo.... ) avant le début de ta page html ( qui commence dans le <body> ... ).. c'est donc normal que ça ne marche pas comme voulu ..
Déjà .. quelques points qu'il me semblait déjà t'avoir dit plusieurs fois.... :
- htmlspecialchars ne doit s'utiliser que pour de l'affichage ... pas pour "nettoyer" les variables avant d'en servir dans des requêtes SQL
- CHAQUE requête faite en PDO doivent se trouver dans UN bloc TRY/CATCH
- On récupère PROPREMENT les variables AVANT de les utiliser (donc.. il ne devrait pas y avoir de $_POST['truc..'] en plein milieu du code ... )
Et pour finir :
- Tu génère du code HTML ( via tes echo.... ) avant le début de ta page html ( qui commence dans le <body> ... ).. c'est donc normal que ça ne marche pas comme voulu ..
bonjour
Merci pour la reponse
c est la pemiere fois que je fais un fichier en php
bon je vais regarder a tout cela
Merci pour toutes ces infos
je vais les analyser une a une
encore merci
Merci pour la reponse
c est la pemiere fois que je fais un fichier en php
bon je vais regarder a tout cela
Merci pour toutes ces infos
je vais les analyser une a une
encore merci
En gros, ça pourrait donner un truc du genre
<?php //Démarrage des sessions session_start(); //Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Un peu de lecture sur l'utilisation de PDO : // https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs //connexion à la bdd require_once './base.php'; // Découpage en "fonctions" du code pour le rendre plus facile à maintenir et pouvoir plus facilement réutiliser ces fonctionnalités // perso, je placerai ces fonctions dans un fichier à part que j'inclurerai ensuie dans les pages où j'en ai besoin.. /** * Fonction permettant de faire des requêtes PDO "proprement" * @global type $bdd issue de base.php * @param type $sql La requete à executer * @param type $datas les datas à transmettre dans la requete */ function execQuery($sql, $datas = NULL) { global $bdd; // variable de connexion à la BDD try { $requete = $bdd->prepare($sql); return $requete->execute($datas); } catch (Exception $e) { // en cas d'erreur : echo "<br><span style='color:red'>Erreur : </span>" . $e->getMessage(); echo "<br> Requete SQL :<br>" . $sql; echo " <br>Les datas : <br>"; print_r($datas); } } function getUserByPseudo($pseudo) { //Execution de la requete $sql = "SELECT * FROM client WHERE pseudo = ?"; $datas = array($pseudo); $res = execQuery($sql, $datas); return $res->fetch(); // on retourne les infos dans un array } function addUser($pseudo, $pass) { $sql = "INSERT INTO client(pseudo, passe, date_inscription) VALUES(:pseudo, :passe, CURDATE())"; $datas = array(':pseudo' => $pseudo, ':passe' => $pass); $res = execQuery($sql, $datas); return $res; } /** * Fonction qui vérifie que le pseudo/password existent en bdd * @param type $pseudo * @param type $pass * @return type */ function verif_login($pseudo, $pass) { $user = getUserByPseudo($pseudo); if (!empty($user)) { return password_verify($pass, $user['passe']); } } //-------- FIN DES FONCTIONS ----------// //récupération PROPRE des variables AVANT de les utiliser $pseudo = !empty($_POST['pseudo']) ? trim($_POST['pseudo']) : NULL; $passe = !empty($_POST['passe']) ? trim($_POST['passe']) : NULL; $confirm_passe = !empty($_POST['confirm_passe']) ? trim($_POST['confirm_passe']) : NULL; //Traitement du SUBMIT if (isset($_POST['entrees'])) { $passe_hache = password_hash($passe, PASSWORD_DEFAULT); if (!empty($_POST['pseudo']) AND!empty($_POST['passe']) AND!empty($_POST['confirm_passe'])) { if ($passe == $confirm_passe) { if (strlen($pseudo) >= 4 AND strlen($pseudo) <= 10) { $user = getUserByPseudo($pseudo); //Si l'utilisateur n'existe pas if (empty($user)) { //si l'insert en BDD c'est bien passé if (addUser($pseudo, $passe_hache)) { $message = ' <div class="col-sm-12"> <p class="bg-light border mt-2"> <h3> Bienvenue ' . $pseudo . '!</p></div></div> <div class="row"><div class="col-sm"> <p class="bg-light border mt-2">Vous avez été inscrit comme client. </p> </div> <div class="col-sm-12"> <p class="bg-light border mt-2"> <h3>Cliquez sur le lien pour retourner au bon de commande.</h3> <a href="commande.php?pseudo=' . $pseudo . '"> <span style="font-size:22px"><strong> Retour au bon de commande </strong></span> </a> </p> </div> </div>'; } } else { $message = ' <div class="col-sm-12"> <p class="bg-light border mt-2"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Ce pseudo existe déjà. Vous êtes déjà inscrit. Vous devez vous connecter. </a> </span></p> <div class="col-sm"> <p class="bg-light border mt-2"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Choisissez un autre pseudo : <a href="connexion_perle.php">Se connecter</a> </span></p> </div> </div>'; } } else { $message = '<div class="col-sm-12"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Le pseudo doit contenir entre 4 et 10 caractères.</span> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Essayez à nouveau : <a href="inscr_perle.php">S\'incrire</a> </span> </div> </div>'; } } else { $message = '<div class="col-sm-12"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Vos mots de passe ne correspondent pas. </span> <div class="col"> <span style="font-size:24px; font-weight:bold; color:red; margin-left:10%;"> Essayez à nouveau : <a href="inscr_perle.php">S\'incrire</a> </span> </div> </div> '; } } } ?> <!Doctype> <html lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta name="description" content=""> <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors"> <meta name="generator" content="Jekyll v4.1.1"> <title>Jumbotron Template · Bootstrap</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous"> <link rel="canonical" href="https://getbootstrap.com/docs/4.5/examples/jumbotron/"> <!-- Bootstrap core CSS --> <link href="../assets/dist/css/bootstrap.min.css" rel="stylesheet"> <style> .bd-placeholder-img { font-size: 1.125rem; text-anchor: middle; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } @media (min-width: 768px) { .bd-placeholder-img-lg { font-size: 3.5rem; } } </style> <!-- Custom styles for this template --> <link href="jumbotron.css" rel="stylesheet"> </head> <body> <div class="container"> <main role="main"> <!-- Main jumbotron for a primary marketing message or call to action --> <form method="post" action=""> <!-- Example row of columns --> <div class="row"> <div class="col-md-4"> <p><label for="pseudo">Votre pseudo S.V.P:</label></p> <p><label for="passe">Votre mot de passe:</label></p> <p> <label for="confirm_passe">confirmation du mot de passe:</label> </p> </div> <div class="col-md-4"> <p><input type="text" name="pseudo" id="pseudo" value="<?php echo htmlspecialchars($pseudo); ?>"> </p> <p><input type="password" name="passe" id="passe"></p> <p><input type="password" name="confirm_passe" id="confirm_passe"> </p> <p><input type="submit" name="entrees" value="entrez"> </p> </div> <hr> </div> </form> </main> <?php if (!empty($message)) { echo $message; } ?> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script> window.jQuery || document.write('<script src="../assets/js/vendor/jquery.slim.min.js"><\/script>') </script> <script src="../assets/dist/js/bootstrap.bundle.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script> </body> </html>
ah super un très grand merci pour ce code
cela me fait grand plaisir et en plus avec des liens et des commentaire
je vais étudier tout cela de près
passe une bonne journée
cela me fait grand plaisir et en plus avec des liens et des commentaire
je vais étudier tout cela de près
passe une bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
après un copier coller j ai une erreur a la ligne 45
Fatal error: Uncaught Error: Call to a member function fetch() on boolean in /storage/ssd3/790/14980790/public_html/site-peche/BOOSTRAP/bootstrap-4.5.3-examples/jumbotron/inscr_perle.php:45 Stack trace: #0 /storage/ssd3/790/14980790/public_html/site-peche/BOOSTRAP/bootstrap-4.5.3-examples/jumbotron/inscr_perle.php(86): getUserByPseudo('azerty50') #1 {main} thrown in /storage/ssd3/790/14980790/public_html/site-peche/BOOSTRAP/bootstrap-4.5.3-examples/jumbotron/inscr_perle.php on line 45
Fatal error: Uncaught Error: Call to a member function fetch() on boolean in /storage/ssd3/790/14980790/public_html/site-peche/BOOSTRAP/bootstrap-4.5.3-examples/jumbotron/inscr_perle.php:45 Stack trace: #0 /storage/ssd3/790/14980790/public_html/site-peche/BOOSTRAP/bootstrap-4.5.3-examples/jumbotron/inscr_perle.php(86): getUserByPseudo('azerty50') #1 {main} thrown in /storage/ssd3/790/14980790/public_html/site-peche/BOOSTRAP/bootstrap-4.5.3-examples/jumbotron/inscr_perle.php on line 45
ah oui,
grosse erreur de ma part ...
Il faut modifier la fonction execQuery
grosse erreur de ma part ...
Il faut modifier la fonction execQuery
function execQuery($sql, $datas = NULL) { global $bdd; // variable de connexion à la BDD try { $requete = $bdd->prepare($sql); $requete->execute($datas); return $requete; } catch (Exception $e) { // en cas d'erreur : echo "<br><span style='color:red'>Erreur : </span>" . $e->getMessage(); echo "<br> Requete SQL :<br>" . $sql; echo " <br>Les datas : <br>"; print_r($datas); } }
Merci Jordane mais cela refuse de fonctionner
j ai ce message
Cette page ne fonctionne pasImpossible de traiter cette demande via peche-a-la-perle.000webhostapp.com à l'heure actuelle.
HTTP ERROR 500
j ai ce message
Cette page ne fonctionne pasImpossible de traiter cette demande via peche-a-la-perle.000webhostapp.com à l'heure actuelle.
HTTP ERROR 500
Merci jordane
je pense que je dois modifier le fichier base.php avec mes codes d accès a la base de données
car a présent lorsque je lance index.html
j ai ce message dans une page blanche
Erreur : SQLSTATE[HY000] [1045] ProxySQL Error: Access denied for user 'root'@'2a02:4780:bad:f00d::b' (using password: NO)
et lorsque je lance test.html
Erreur : SQLSTATE[HY000] [1045] ProxySQL Error: Access denied for user 'root'@'2a02:4780:bad:f00d::b' (using password: NO)
apparemment il refuse l accès a la base de donnée
je pense que je dois modifier le fichier base.php avec mes codes d accès a la base de données
car a présent lorsque je lance index.html
j ai ce message dans une page blanche
Erreur : SQLSTATE[HY000] [1045] ProxySQL Error: Access denied for user 'root'@'2a02:4780:bad:f00d::b' (using password: NO)
et lorsque je lance test.html
Erreur : SQLSTATE[HY000] [1045] ProxySQL Error: Access denied for user 'root'@'2a02:4780:bad:f00d::b' (using password: NO)
apparemment il refuse l accès a la base de donnée
ah ben voila je viens de faire un essai avec wampserver
cela fonctionne
je continue les essais demain
et je reviens dire quoi
bonne soiree
encore merci
cela fonctionne
je continue les essais demain
et je reviens dire quoi
bonne soiree
encore merci
Quel morceau ?
Que veux tu obtenir ? Tu peux le "dessiner" et nous le montrer ?
Sachant que là, j'ai surtout retravaillé le code php
je ne me suis pas occupé du design ...
A noter, que pour réaliser la "structure" de tes pages, tu pourrais t'inspirer du code généré par un generateur tel que
https://www.layoutit.com/build
Que veux tu obtenir ? Tu peux le "dessiner" et nous le montrer ?
Sachant que là, j'ai surtout retravaillé le code php
je ne me suis pas occupé du design ...
A noter, que pour réaliser la "structure" de tes pages, tu pourrais t'inspirer du code généré par un generateur tel que
https://www.layoutit.com/build
ah oui génial cet outil un immense merci
oui il est vrai que pour boostrap on a presque tout a disposition pour bien faire les choses
et donc je vais m occuper moi même de ce petit réglage de mise en page
néanmoins il reste juste une petite chose
pourrais tu mettre un message d erreur lorsque l utilisateur ne rentre pas le même mot de passe lors de l inscription
passe une bonne matinée
oui il est vrai que pour boostrap on a presque tout a disposition pour bien faire les choses
et donc je vais m occuper moi même de ce petit réglage de mise en page
néanmoins il reste juste une petite chose
pourrais tu mettre un message d erreur lorsque l utilisateur ne rentre pas le même mot de passe lors de l inscription
passe une bonne matinée
Merci pour la réponse
mais je viens de faire un essai si l utilisateur entre un mot de passe et sans le confirmer appuyer sur valiser
aucun message d erreur n apparaît
mais je viens de faire un essai si l utilisateur entre un mot de passe et sans le confirmer appuyer sur valiser
aucun message d erreur n apparaît