Rafraichire une page php
Résolu/Fermé
A voir également:
- Rafraichire une page php
- Supprimer une page word - Guide
- Comment traduire une page - Guide
- Créer une page facebook - Guide
- Imprimer tableau excel sur une page - Guide
- Word numéro de page 1/2 - Guide
3 réponses
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
13 sept. 2019 à 18:34
13 sept. 2019 à 18:34
Bonjour,
Pour commencer... je t'invite à lire et à appliquer le contenu de ce lien
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite ... reviens nous voir avec ton code COMPLET.
Car là.. avec juste quelques morceaux.. difficile de dire ce qui ne va pas.
(mais ne reviens qu'après avoir appliqué les conseils donnés dans le lien que je viens de te donner... sinon ce n'est pas la peine ! )
Pour commencer... je t'invite à lire et à appliquer le contenu de ce lien
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Ensuite ... reviens nous voir avec ton code COMPLET.
Car là.. avec juste quelques morceaux.. difficile de dire ce qui ne va pas.
(mais ne reviens qu'après avoir appliqué les conseils donnés dans le lien que je viens de te donner... sinon ce n'est pas la peine ! )
Utilisateur anonyme
13 sept. 2019 à 19:19
13 sept. 2019 à 19:19
Pour rappel -
Après m’être authentifié une première fois et avoir utilisé le formulaire d'upload (admin.php ligne 49)
je rafraîchie cette mème page MAIS ne desire pas retomber de nouveau sur le formulaire d’authentification (admin.php ligne 30).
Cela fonctionne quand je clique sur rafraîchir via mon navigateur mais pas quand je le demande (collector.php ligne 35) avec
admin.php :
Collector.php (appelé par le formulaire d'upload)
j'espere que ce sera plus explicite ainsi.
désolé pour l'orthographe et si vous avez le sentiment que j'abuse du forum.
Après m’être authentifié une première fois et avoir utilisé le formulaire d'upload (admin.php ligne 49)
je rafraîchie cette mème page MAIS ne desire pas retomber de nouveau sur le formulaire d’authentification (admin.php ligne 30).
Cela fonctionne quand je clique sur rafraîchir via mon navigateur mais pas quand je le demande (collector.php ligne 35) avec
header('Location: admin.php');ou
header("Refresh: 0;url=admin.php");
admin.php :
<!doctype html> <html> <head> <meta charset="utf-8"> <title>OC | Admin panel</title> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link rel="stylesheet" href="css/master.css"> <title>website | Admin</title> </head> <body> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=OpinionCollector;charset=utf8', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> <?php if (!isset($_POST['mdp']) OR $_POST['mdp'] != "666-999") { ?> <div class="nav-bar"> <h1>titre</h1> <a href="index.php">BACK</a> </div> <div class="Authentification master"> <form class="slave" action="admin.php" method="post"> <p> <label for="mdp">Admin Password</label><br> <input type="password" name="mdp" /> <input type="submit" value="Valider" /> </p> </form> </div> <?php } else { ?> <div class="nav-bar"> <h1>titre</h1> <a href="index.php">BACK</a> </div> <div class="container-fluid Administration"> <div class="row"> <div class="col-lg-6 split master"> <div class="slave"> <form class="slave" action="back/collector.php" method="post" enctype="multipart/form-data"> <input type="file" name="fileUpload" required><br> <input type="text" name="title" placeholder="give a title" required><br> <input type="text" name="instruction" placeholder="give some instructions" required><br> <button type="submit" name="submit">UPLOAD</button> </form> </div> </div> <div class="col-lg-6 split"> <div class="row"> <div class="col-lg-12 pictureCol"> <div class="row"> <?php $reponse = $bdd->query('SELECT PicturePath, titre, NbrLikes, NbrDislikes FROM OC ORDER BY ID DESC LIMIT 0, 50'); while ($donnees = $reponse->fetch()) { ?> <div class="slave picture" style="background-image: url( <?php echo( htmlspecialchars($donnees['PicturePath']) ) ?> )"> <div class="stats"> <div class="row"> <div class="col-lg-12 master"> <h2 class="slave"> <?php echo( htmlspecialchars($donnees['titre'])) ?> </h2> </div> </div> <div class="row"> <div class="col-md-6"> <img src="media/details/like.png" title="like"> <h2 class="count"> <?php echo( htmlspecialchars($donnees['NbrLikes']) ) ?> </h2> </div> <div class="col-md-6"> <img src="media/details/dislike.png" title="dislike"> <h2 class="count"> <?php echo( htmlspecialchars($donnees['NbrDislikes']) ) ?> </h2> </div> </div> <div class="row"> <div class="col-lg-12"> <button type="button">comment(s)</button> </div> </div> <div class="row"> <div class="col-lg-12"> <a> <img src="media/details/cross.png" title="delete this picture ?" class="button"> </a> </div> </div> </div> </div> <?php } $reponse->closeCursor(); ?> </div> </div> </div> </div> </div> </div> <?php } ?> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>
Collector.php (appelé par le formulaire d'upload)
<?php $conn = new mysqli("localhost", "root", "", "OpinionCollector"); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } if (isset($_POST['submit'])) { $file = $_FILES['fileUpload']; $fileTmpName = $_FILES['fileUpload']['tmp_name']; $fileSize = $_FILES['fileUpload']['size']; $fileError = $_FILES['fileUpload']['error']; $fileType = $_FILES['fileUpload']['type']; $allowed = array('jpg', 'png', 'jpeg', 'pdf'); $fileName = $_FILES['fileUpload']['name']; $fileTitle = $_POST['title']; $instruction = $_POST['instruction']; $fileExt = explode('.', $fileName); $fileActualExt = mb_strtolower(end($fileExt)); if (in_array($fileActualExt, $allowed)) { if ($fileError === 0) { if ($fileSize > 100000) { $fileNameNew = uniqid('', true). "." . $fileActualExt; $filePath = 'uploads/'. $fileNameNew; $fileDestination = '../uploads/'. $fileNameNew; move_uploaded_file($fileTmpName, $fileDestination); $sql = "INSERT INTO OC (PicturePath, PictureName, titre, instruction) VALUES ('$filePath', '$fileName', '$fileTitle', '$instruction')"; if ($conn->query($sql) === TRUE) { header("Refresh: 0;url=../admin.php"); } else { echo "Error: " . $sql . "<br>" . $conn->error; } }else { echo "Your file is too big !! -> " . $fileSize . " > 100000"; } }else { echo "There is an error uploading your file !!"; } }else { echo "you canot upload files of [ " . $fileExt . " ] type !!"; } } $conn->close(); ?>
j'espere que ce sera plus explicite ainsi.
désolé pour l'orthographe et si vous avez le sentiment que j'abuse du forum.
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
>
Utilisateur anonyme
13 sept. 2019 à 20:46
13 sept. 2019 à 20:46
bonjour, quelle autre technique te semble-t'elle préférable, et pourquoi?
Bonsoir,
non il y a les variables de sessions pour cela. Je ne vois d'ailleurs pas le rapport entre les cookies du navigateur et une session PHP qui par définition existe côté PHP uniquement.
Quand à l'intitulé de votre question/sujet j'ai beau creuser je ne comprends pas ce que veux dire rafraîchir une page PHP. Ce qui est actualisé c'est l'affichage HTML, PHP fonctionne avant que la page existe(préprocesseur comme dit dans le nom du langage) donc il n'y a rien à rafraîchir de ce côté là : le programme est exécuté, récupère les données sur la base pour les filer au HTML ou inversement.
L'inverse par contre est vrai et très répandu, très utile aussi: Ne pas faire appel au serveur(comme PHP et celui de la base de données) pour que les pages mettent moins de temps à charger et afficher quelque chose. Celà peut se faire avec AJAX donc le principe est de mettre en 'mémoire'(métadonnées) des résultats de requêtes probables sur la base pour pouvoir les fournir sans avoir à exécuter à nouveau le script PHP et SQL; ainsi la page HTML peut être actualisé sans les quelques millisecondes nécessaires aux requêtes et à fournir celles ci.
Donc non n'essayez pas d'actualiser PHP, PHP est simplement exécuté(interprété plutôt) côté serveur pour fournir de la matière à la page HTML et automatiser certaines tâches nottament sérielles et en rapport avec un SGBD relationnel.
non il y a les variables de sessions pour cela. Je ne vois d'ailleurs pas le rapport entre les cookies du navigateur et une session PHP qui par définition existe côté PHP uniquement.
Quand à l'intitulé de votre question/sujet j'ai beau creuser je ne comprends pas ce que veux dire rafraîchir une page PHP. Ce qui est actualisé c'est l'affichage HTML, PHP fonctionne avant que la page existe(préprocesseur comme dit dans le nom du langage) donc il n'y a rien à rafraîchir de ce côté là : le programme est exécuté, récupère les données sur la base pour les filer au HTML ou inversement.
L'inverse par contre est vrai et très répandu, très utile aussi: Ne pas faire appel au serveur(comme PHP et celui de la base de données) pour que les pages mettent moins de temps à charger et afficher quelque chose. Celà peut se faire avec AJAX donc le principe est de mettre en 'mémoire'(métadonnées) des résultats de requêtes probables sur la base pour pouvoir les fournir sans avoir à exécuter à nouveau le script PHP et SQL; ainsi la page HTML peut être actualisé sans les quelques millisecondes nécessaires aux requêtes et à fournir celles ci.
Donc non n'essayez pas d'actualiser PHP, PHP est simplement exécuté(interprété plutôt) côté serveur pour fournir de la matière à la page HTML et automatiser certaines tâches nottament sérielles et en rapport avec un SGBD relationnel.
autant pour moi Tihuboueux, c'est vrais que après réflexion ça n'a pas beaucoup de sens de rafraîchir du php.
je me suis laisser piéger du faite que les pages a rafraîchir sont a format [file.php] ...
peux tu m'en dire d’avantage concernant les variables de sessions ?
s'agit t'il d'un booléen qui passe de 0 a 1 lors de la première authentification et qui permet de by pass les prochaines ?
je vais aller me renseigner de mon coté également.
merci de tes indications .
je me suis laisser piéger du faite que les pages a rafraîchir sont a format [file.php] ...
peux tu m'en dire d’avantage concernant les variables de sessions ?
s'agit t'il d'un booléen qui passe de 0 a 1 lors de la première authentification et qui permet de by pass les prochaines ?
je vais aller me renseigner de mon coté également.
merci de tes indications .
mieux que moi il existe tout un tas de ressources en ligne pour que vous appreniez et trouvez ce qui est nécessaire quand vous en avez besoin.
Bien sûr il faut approfondir; Rome ne s'est pas fait en un jour et un développeur expérimenté non plus.
Recherche sur "variables de session PHP" me donne tout un tas de réponses , en voici une parmi d'autres(notez le session_start() 'voir lien' qui indique une création ou renouvellement de session).
https://www.php.net/manual/fr/reserved.variables.session.php
Bien sûr il faut approfondir; Rome ne s'est pas fait en un jour et un développeur expérimenté non plus.
Recherche sur "variables de session PHP" me donne tout un tas de réponses , en voici une parmi d'autres(notez le session_start() 'voir lien' qui indique une création ou renouvellement de session).
https://www.php.net/manual/fr/reserved.variables.session.php
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
13 sept. 2019 à 21:27
13 sept. 2019 à 21:27
oui oui je t'assure l'avoir lu.
afficher les variables c'est du debug a mes yeux si ce n'est pas destiné a rester.
Parfois je me demande si les gens savent lire....
Je ne te parle pas de debug... ni d'affichage de tes variables.... je te parle de RECUPERER PROPREMENT LES VARIABLES AVANT DE LES UTILISER....
Le lien explique également où écrire son code... en l'occurence... placer le maximum de php EN DEHORS du html afin de rendre sa lecture plus simple ainsi que facilité son évolution et sa maintenance...
Bref...
Dans les choses étranges de ton code... on peut voir par exemple que tu utilises du mysqli d'un côté ... et du PDO de l'autre.... ce à quoi je demanderai... POURQUOI ?
Ensuite
Après m’être authentifié une première fois et avoir utilisé le formulaire d'upload (admin.php ligne 49)
je rafraîchie cette mème page MAIS ne desire pas retomber de nouveau sur le formulaire d’authentification (admin.php ligne 30).
Normal .. vu que ton formulaire d'authentification réagit en fonction des variables POST ...
Hors.. quand tu fais ta redirection via le header... les variables PHP ne sont pas re transmises...
Comme le dit tihuboueux ... il faut utiliser les variables de session...
Voila à quoi devrait ressembler ton code..(si tu avais lu les liens que je t'ai donné... )
Fichier cnxBdd.php
<?php //connexion à la bdd ET activation des erreurs PDO try{ $bdd =new PDO('mysql:host=localhost; dbname=OpinionCollector; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
Fichier Admin.php
<?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); //connexion à la bdd require_once "cnxBdd.php"; //récupération PROPRE des variables AVANT de les utiliser ! $isLoged = !empty($_SESSION['isLogued']) ? $_SESSION['isLogued'] : NULL; $mdp = !empty($_POST['mdp']) ? $_POST['mdp'] : NULL; //on vérifie la connexion if(!$isLoged && $mdp){ $isLoged = $mdp == "666-999" ? true : false; $_SESSION['isLogued'] = $isLogued //exécution de la requête $sql = 'SELECT PicturePath, titre, NbrLikes, NbrDislikes FROM OC ORDER BY ID DESC LIMIT 0, 50'; try{ $reponse = $bdd->query($sql); }catch(Exception $e){ echo "Erreur dans la requete : ".$sql; die($e->getMessage()); } }else{ unset($_SESSION['isLogued']); } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>OC | Admin panel</title> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link rel="stylesheet" href="css/master.css"> <title>website | Admin</title> </head> <body> <div class="nav-bar"> <h1>titre</h1> <a href="index.php">BACK</a> </div> <?php if (!$isLoged){ ?> <div class="Authentification master"> <form class="slave" action="admin.php" method="post"> <p> <label for="mdp">Admin Password</label><br> <input type="password" name="mdp" /> <input type="submit" value="Valider" /> </p> </form> </div> <?php } else { ?> <div class="container-fluid Administration"> <div class="row"> <div class="col-lg-6 split master"> <div class="slave"> <form class="slave" action="back/collector.php" method="post" enctype="multipart/form-data"> <input type="file" name="fileUpload" required><br> <input type="text" name="title" placeholder="give a title" required><br> <input type="text" name="instruction" placeholder="give some instructions" required><br> <button type="submit" name="submit">UPLOAD</button> </form> </div> </div> <div class="col-lg-6 split"> <div class="row"> <div class="col-lg-12 pictureCol"> <div class="row"> <?php while ($donnees = $reponse->fetch()) { ?> <div class="slave picture" style="background-image: url( <?php echo( htmlspecialchars($donnees['PicturePath']) ) ?> )"> <div class="stats"> <div class="row"> <div class="col-lg-12 master"> <h2 class="slave"> <?php echo( htmlspecialchars($donnees['titre'])) ?> </h2> </div> </div> <div class="row"> <div class="col-md-6"> <img src="media/details/like.png" title="like"> <h2 class="count"> <?php echo( htmlspecialchars($donnees['NbrLikes']) ) ?> </h2> </div> <div class="col-md-6"> <img src="media/details/dislike.png" title="dislike"> <h2 class="count"> <?php echo( htmlspecialchars($donnees['NbrDislikes']) ) ?> </h2> </div> </div> <div class="row"> <div class="col-lg-12"> <button type="button">comment(s)</button> </div> </div> <div class="row"> <div class="col-lg-12"> <a> <img src="media/details/cross.png" title="delete this picture ?" class="button"> </a> </div> </div> </div> </div> <?php } $reponse->closeCursor(); ?> </div> </div> </div> </div> </div> </div> <?php } ?> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>
Collector.php
<?php //Démarrage des sessions (pour qu'elles contienuent à vivre entre chaque page;..) session_start(); //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //connexion à la bdd require_once "cnxBdd.php"; //récupération Propre des variables AVANT de les utiliser... $file = !empty($_FILES['fileUpload']) ? $_FILES['fileUpload'] : NULL; $fileTitle = !empty($_POST['title']) ? $_POST['title'] : NULL; $instruction = !empty($_POST['instruction']) ? $_POST['instruction'] : NULL; if (isset($_POST['submit']) && $file) { $fileTmpName = $file['tmp_name']; $fileSize = $file['size']; $fileError = $file['error']; $fileType = $file['type']; $allowed = array('jpg', 'png', 'jpeg', 'pdf'); $fileName = $file['name']; $fileExt = explode('.', $fileName); $fileActualExt = mb_strtolower(end($fileExt)); if (in_array($fileActualExt, $allowed)) { if ($fileError === 0) { if ($fileSize > 100000) { $fileNameNew = uniqid('', true). "." . $fileActualExt; $filePath = 'uploads/'. $fileNameNew; $fileDestination = '../uploads/'. $fileNameNew; if(move_uploaded_file($fileTmpName, $fileDestination)){ $sql = "INSERT INTO OC (PicturePath, PictureName, titre, instruction) VALUES (:filePath, :fileName, :fileTitle, :instruction)"; $datas = array(':filePath'=>$filePath, ':fileName'=>$fileName, ':fileTitle'=>$fileTitle, ':instruction'=>$instruction); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $res = $requete->execute($datas) ; if($res){ header("Refresh: 0;url=../admin.php"); exit();//toujours mettre un exit apres un redirection } }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } }else{ echo " Erreur lors du déplacement du fichier !"; } }else { echo "Your file is too big !! -> " . $fileSize . " > 100000"; } }else { echo "There is an error uploading your file !!"; } }else { echo "you canot upload files of [ " . $fileExt . " ] type !!"; } } ?>
Bonjour Jordane,
grand merci pour ta réponse plus que complète, ça me fait gagner beaucoup de temps.
Et désole du temps de réponse.
j'ai trouvé quelque erreurs d’inattention dedans que j'ai corrigé.
tel que :
manque de point-virgule dans (admin.php line 21)
fautes de frappe <isLogued> a la place de <isLogged> (admin.php line 15, 21, 33)
autrement le code fonctionne, plus de redirection sur l'authentification après avoir upload une image.
cependant un nouveau problème est apparue ...
ma page admin.php propose un formulaire d'upload et affiche les images déjà upload.
quand j'upload une nouvelle image, je suis correctement redirigé sur cette mème page (comme prévue sans de nouveau m'authentifier) mais plus aucune images ne s'affiche.
a la place j'ai cette erreur :
Uncaught Error: Call to a member function fetch() on null in /opt/lampp/htdocs/projet/admin.php:89 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/projet/admin.php on line 89
ce qui correspond a cette ligne (admin.php line89):
je vais chercher comment la résoudre, mais je reste a l’écoute si vous pensez savoir pourquoi .
grand merci pour ta réponse plus que complète, ça me fait gagner beaucoup de temps.
Et désole du temps de réponse.
j'ai trouvé quelque erreurs d’inattention dedans que j'ai corrigé.
tel que :
manque de point-virgule dans (admin.php line 21)
$_SESSION['isLogued'] = $isLogued
fautes de frappe <isLogued> a la place de <isLogged> (admin.php line 15, 21, 33)
$isLoged = !empty($_SESSION['isLogued']) ? $_SESSION['isLogued'] : NULL;
autrement le code fonctionne, plus de redirection sur l'authentification après avoir upload une image.
cependant un nouveau problème est apparue ...
ma page admin.php propose un formulaire d'upload et affiche les images déjà upload.
quand j'upload une nouvelle image, je suis correctement redirigé sur cette mème page (comme prévue sans de nouveau m'authentifier) mais plus aucune images ne s'affiche.
a la place j'ai cette erreur :
Uncaught Error: Call to a member function fetch() on null in /opt/lampp/htdocs/projet/admin.php:89 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/projet/admin.php on line 89
ce qui correspond a cette ligne (admin.php line89):
while ($donnees = $reponse->fetch())
je vais chercher comment la résoudre, mais je reste a l’écoute si vous pensez savoir pourquoi .
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
20 sept. 2019 à 13:44
20 sept. 2019 à 13:44
cependant un nouveau problème est apparue ..
Donc
1 - Marquer la discussion actuelle en RESOLUE
2 - Ouvrir une nouvelle discussion propre à ce nouveau souci.
Merci
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
>
Utilisateur anonyme
20 sept. 2019 à 21:23
20 sept. 2019 à 21:23
Fichier Admin.php
<?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); //connexion à la bdd require_once "cnxBdd.php"; //récupération PROPRE des variables AVANT de les utiliser ! $isLoged = !empty($_SESSION['isLogued']) ? $_SESSION['isLogued'] : NULL; $mdp = !empty($_POST['mdp']) ? $_POST['mdp'] : NULL; //on vérifie la connexion if(!$isLoged && $mdp){ $isLoged = $mdp == "666-999" ? true : false; $_SESSION['isLogued'] = $isLogued; }else{ unset($_SESSION['isLogued']); } if($isLoged){ //exécution de la requête $sql = 'SELECT PicturePath, titre, NbrLikes, NbrDislikes FROM OC ORDER BY ID DESC LIMIT 0, 50'; //Execution de la requete try{ $requete = $bdd->prepare($sql) ; $requete->execute(); $response = $requete->fetchAll(); // on stocke le resultat dans un array. }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>OC | Admin panel</title> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link rel="stylesheet" href="css/master.css"> <title>website | Admin</title> </head> <body> <div class="nav-bar"> <h1>titre</h1> <a href="index.php">BACK</a> </div> <?php if (!$isLoged){ ?> <div class="Authentification master"> <form class="slave" action="admin.php" method="post"> <p> <label for="mdp">Admin Password</label><br> <input type="password" name="mdp" /> <input type="submit" value="Valider" /> </p> </form> </div> <?php } else { ?> <div class="container-fluid Administration"> <div class="row"> <div class="col-lg-6 split master"> <div class="slave"> <form class="slave" action="back/collector.php" method="post" enctype="multipart/form-data"> <input type="file" name="fileUpload" required><br> <input type="text" name="title" placeholder="give a title" required><br> <input type="text" name="instruction" placeholder="give some instructions" required><br> <button type="submit" name="submit">UPLOAD</button> </form> </div> </div> <div class="col-lg-6 split"> <div class="row"> <div class="col-lg-12 pictureCol"> <div class="row"> <?php if(!empty($response)){ foreach($response as $donnees){ ?> <div class="slave picture" style="background-image: url( <?php echo( htmlspecialchars($donnees['PicturePath']) ) ?> )"> <div class="stats"> <div class="row"> <div class="col-lg-12 master"> <h2 class="slave"> <?php echo( htmlspecialchars($donnees['titre'])) ?> </h2> </div> </div> <div class="row"> <div class="col-md-6"> <img src="media/details/like.png" title="like"> <h2 class="count"> <?php echo( htmlspecialchars($donnees['NbrLikes']) ) ?> </h2> </div> <div class="col-md-6"> <img src="media/details/dislike.png" title="dislike"> <h2 class="count"> <?php echo( htmlspecialchars($donnees['NbrDislikes']) ) ?> </h2> </div> </div> <div class="row"> <div class="col-lg-12"> <button type="button">comment(s)</button> </div> </div> <div class="row"> <div class="col-lg-12"> <a> <img src="media/details/cross.png" title="delete this picture ?" class="button"> </a> </div> </div> </div> </div> <?php } } ?> </div> </div> </div> </div> </div> </div> <?php } ?> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>
bonjour Jordane45,
Pour une raison que j'ignore, ta dernière réponses n'a pas déclenché de notifications de mon coté.
j'ai donc suivie ton conseil en créant un nouveau post pour mon nouveau problème sans savoir que tu me proposais une solution ici ... donc désolé du "doublon".
Ceci dit la solution que tu me propose me fait régresser a mon premier problème...
je suis en train de tester des modifications pour corriger ça, car il est vrais que le code fournie ici semble plus optimisé et lisible que la solution que j'ai récupéré de mon dernier post doublon.
Malheureusement sans de nouveau éradiquer mon premier problème je ne peut pas m'assurer que le second soit corrigé.
je vous tiens au courant ici si je trouve une solution.
bonne journée.
EDIT : je viens de comprendre tes modifications, en effet les 2 problèmes sont résolu en ce qui concerne l'upload d'image sans modification de ton code. j'ai fait mes test en refresh la page sans upload (c'est pour ca que je pensais de nouveau avoir le premier soucis). C’était également quelque choses que je désiré mais qui ne s’avère finalement pas essentiel.
Pour une raison que j'ignore, ta dernière réponses n'a pas déclenché de notifications de mon coté.
j'ai donc suivie ton conseil en créant un nouveau post pour mon nouveau problème sans savoir que tu me proposais une solution ici ... donc désolé du "doublon".
Ceci dit la solution que tu me propose me fait régresser a mon premier problème...
je suis en train de tester des modifications pour corriger ça, car il est vrais que le code fournie ici semble plus optimisé et lisible que la solution que j'ai récupéré de mon dernier post doublon.
Malheureusement sans de nouveau éradiquer mon premier problème je ne peut pas m'assurer que le second soit corrigé.
je vous tiens au courant ici si je trouve une solution.
bonne journée.
EDIT : je viens de comprendre tes modifications, en effet les 2 problèmes sont résolu en ce qui concerne l'upload d'image sans modification de ton code. j'ai fait mes test en refresh la page sans upload (c'est pour ca que je pensais de nouveau avoir le premier soucis). C’était également quelque choses que je désiré mais qui ne s’avère finalement pas essentiel.
13 sept. 2019 à 19:01
en effet il ne s'agit pas d'un bug ... mon code fonctionne très bien.
Mais mème après de nombreuse recherches sur internet et forums dédié je ne parvient pas a trouver chaussure a mon pied.
(Je t'assure que l’étape "poser ma question sur CCM" arrive seulement après "debugs" puis "recherche internet" puis "demande a un ami", je débute en php depuis 3 jours mais j'ai 5 ans de code derrière moi.)
13 sept. 2019 à 19:04
Il n'y est pas que question de debug... mais aussi de récupération propre des variables... d'activation des erreurs php... du decoupage du code...
Mais visiblement tu ne l'as pas lu...
Essaye encore...tu verras que ça aide pas mal..
Ensuite montre nous ton cofe complet et modifié...
13 sept. 2019 à 19:32
afficher les variables c'est du debug a mes yeux si ce n'est pas destiné a rester.
et j'ai déjà activé l'affichage des erreurs php tout comme sql d'ailleurs .
j'estime que mon code est assez lisible, mais si c'est pas le cas je suis ouvert aux conseils ou reproches.
Mais peut être désire tu que je laisse mes debugs quand je poste sur le forum ??
j’enlève tout généralement par peur d’alourdir le code et de vous noyer dans ce qui n'est pas essentiel.