pb de rafraîchissement formulaire
Posté : 09 juil. 2018, 20:44
bonjour
voici mon code qui traite un formulaire :
après avoir fait un refresh avec le navigateur, cela provoqué un renvoi répétitif. J'ai donc creer le code suivant :
que j'ai reduit à cela :
J'ai mis ce dernier à la suite du premier code, cela fonctionne, sauf que , quand je choisi une photo > 2Mo ou que des champs sont vides, et bien les conditions 'else' n'apparaisse plus ???
voici mon code qui traite 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'];
$inNom = strtoupper($inNom);
$inPrenom = $_POST['prenom'];
$inPrenom = strtoupper($inPrenom);
$inQualif = $_POST['qualif'];
$inQualif = strtoupper($inQualif);
$inPhoto = $_FILES['photo'];
$inTitre = $_POST['titre'];
$inTitre = strtoupper($inTitre);
// 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('../inc_/connexion_inc.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";
}
}
?>
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))
{
//Ici on sauvegarde le 'formulaire' et les éventuels 'fichiers' envoyés dans des variables de session
$_SESSION['sauvegarde'] = $_POST ;
$_SESSION['sauvegardeFILES'] = $_FILES ;
$fichierActuel = $_SERVER['PHP_SELF'] ;//renvoie le "fichier courant" utilisé, principal.php//
if(!empty($_SERVER['QUERY_STRING']))//renvoie toutes les informations qui sont dans l'URL, autre que le nom du fichier//
{
$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
?>Code : Tout sélectionner
<?php include('../inc_/rafraichissement_inc.php');?>