[RESOLU] pb d'enregistrement

Eléphant du PHP | 166 Messages

06 juil. 2018, 17:45

Bonjour
Ci-dessous mon code pour enregistrer via un formulaire :

Code : Tout sélectionner

<?php // Si le formulaire est soumis if(isset($_POST['valide'])) { //si les champs ne sont pas vide if (!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['qualif']) && !empty($_FILES['photo']) && !empty($_POST['titre'])) { //Création des variables $inNom = $_POST['nom']; $inPrenom = $_POST['prenom']; $inQualif = $_POST['qualif']; $inPhoto = $_FILES['photo']; $inTitre = $_POST['titre']; // test si le fichier a bien été envoyé et s'il n'y a pas d'erreur if (isset($inPhoto) && $inPhoto['error'] == 0) { // test la taille du fichier if ($inPhoto['size'] <= 2000000 ) { // test si l'extension est autorisée $infosfichier = pathinfo($inPhoto['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'png'); if (in_array($extension_upload, $extensions_autorisees)) { // On peut valider le fichier et le stocker $uploads_dir = 'C:\UwAmp\www\essai\photo'; move_uploaded_file ($inPhoto['tmp_name'], "$uploads_dir/$inTitre.jpg"); echo "L'envoi a bien été effectué !<br \><br \>"; // On se connecte à la Bdd include('../page/connection.php'); // Enregistrement des valeurs dans la Bdd $req = $bdd->prepare('INSERT INTO entree_personnel(nom, prenom, qualif, titre) VALUES(:nom, :prenom, :qualif, :titre)'); $req->execute(array('nom' => $inNom,'prenom' => $inPrenom,'qualif' => $inQualif,'titre' => $inTitre)); echo "Bienvenue :<b> ".$inPrenom." </b>,dans la Bdd..." ; // Je me deconnecte $req = null; } } } else { if ($inPhoto['error'] == 1) { echo "<br \><b><h2>Photo supérieur à : 2Mo, recommencez l'enregistrement</h2></b>"; } } } else { echo "Veuillez remplir tous les champs"; } } ?>
et voici mon autre code, placé tout au début de ma page, qui évite le renvoi répétitif d'un formulaire,lors d'un rafraîchissement du navigateur :

Code : Tout sélectionner

<?php //**************************** Éviter le renvoi répétitif d'un formulaire,lors d'un rafraîchissement du naviguateur *************************// // { Début - Première partie if(!empty($_POST) OR !empty($_FILES)) { $_SESSION['sauvegarde'] = $_POST ; $_SESSION['sauvegardeFILES'] = $_FILES ; $fichierActuel = $_SERVER['PHP_SELF'] ; if(!empty($_SERVER['QUERY_STRING'])) { $fichierActuel .= '?' . $_SERVER['QUERY_STRING'] ; } header('Location: ' . $fichierActuel); exit; } // } Fin - Première partie // { Début - Seconde partie if(isset($_SESSION['sauvegarde'])) { $_POST = $_SESSION['sauvegarde'] ; $_FILES = $_SESSION['sauvegardeFILES'] ; unset($_SESSION['sauvegarde'], $_SESSION['sauvegardeFILES']); } // } Fin - Seconde partie ?>
Donc avant de placer mon 2ème code dans ma page, la ligne suivante :

Code : Tout sélectionner

// On peut valider le fichier et le stocker $uploads_dir = 'C:\UwAmp\www\essai\photo'; move_uploaded_file ($inPhoto['tmp_name'], "$uploads_dir/$inTitre.jpg");
me permettait d'enregistrer dans le dossier cité, une photo.

Ensuite, après avoir placé mon 2ème code, cela ne fct plus ? par contre cela enregistre bien dans la Bdd.