Garder les donner d'une form PHP

Résolu
TXC5000 Messages postés 56 Statut Membre -  
TXC5000 Messages postés 56 Statut Membre -
Bonjour, j'aimerai que lorsque l'utilisateur clique sur submit, les donner de certain text box sont conserver.

Je m'explique, j'ai une form, lorsque l'utilisateur fait submit le script php regarde si l'utilisateur a oublier des information, si oui il redirect la page sur lui meme mais pour afficher un message d'erreur. Le problème ses que les information des text box ne sont pas conserver.

Une petit script en php serait tres bien.

Voicie une de mais essay que jai lus sur internet mais sans success:
<?php
if (isset($_POST['submit'])) {
$username = $_POST['username'];
}
echo("
<input type=\"text\" value=\"{$username}\" id=\"username\" name=\"username\" maxlength=\"320\" class=\"text\" tabindex=\"1\" />
");


3 réponses

M@dien Messages postés 451 Statut Membre 74
 
Bonjour,

ce petit script pourrait convenir:
echo '<input type="text" value="'. (isset($_POST["username"])?$_POST["username"]:'') .'" id="username" name="username" maxlength="320" class="text" tabindex="1" />'; 


1
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Salut.

Si le traitement se fait sur la même page que le formulaire, inutile de faire une redirection. Tu pourras ainsi afficher les variables POST.

Voici comment je procède :
<?php
if(!empty($_POST)) {
    /* Variables pour gérer les erreurs */
    $nbErreurs = 0;
    $msgErreurs = '';

    /* On applique un trim() sur les variables pour ne pas se faire pigonner par des espaces */
    $nom = trim($_POST['nom']);
    $prenom = trim($_POST['prenom']);
    $mail = $_POST['mail'];
    $message = trim($_POST['message']);


    /* Vérifications */
    if(empty($nom)) {
        $nbErreurs++;
        $msgErreurs .= 'Le champ "Nom" est vide.<br/>';
    }

    if(empty($prenom)) {
        $nbErreurs++;
        $msgErreurs .= 'Le champ "Prénom" est vide.<br/>';
    }

    if(!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i',$mail)) {
        $nbErreurs++;
        $msgErreurs .= 'L\'adresse email est invalide.<br/>';
    }

    if(empty($message)) {
        $nbErreurs++;
        $msgErreurs .= 'Le champ "Message" est vide.<br/>';
    }

    /* Affichage des erreurs s'il y en a */
    if($nbErreurs > 0) {
        afficherErreurs();
        afficherFormulaire();
    } else {
        afficherSucces();
    }
} else {
    afficherFormulaire();
}
?>


Dans le formulaire, voici comment faire pour réafficher les valeurs :
<input type="text" name="nom" id="nom" value="<?php echo isset($_POST['prenom']) ? $_POST['prenom'] : ''; ?>" />
1
TXC5000 Messages postés 56 Statut Membre 7
 
Merci pour ces scripts, j'ai bien appliquer ton script et il marche a merveille. Mais pour afficher les erreur de ma form, je doit procéder autrement et éviter les redirection.
0