Forums d'entraide informatique - Les forums de PCW

Version complète : rapporter une erreur dans une divs
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Pages : 1 2 3
Bonjour as tous.

Un petit problème se pose a moi.

Dans mon site, j'ai mit une divs avec le style suivants: (display: noneWink Pour ne pas quelle s'affiche.
Quand je clique sur inscription, la divs se rouvre avec le formulaire. (ou ses marquer pseudo, email, ect).
L'utilisateur remplie tous les champs: mais admettons qu'il oublie de remplir un champ et qu'il clique sur valider. Il va être redirigé vers la page inscription et au haut de la page sa va être marquer (vous n'avez pas remplis tout les champs).

Moi je voudrait que le message s'affiche sur la divs et non sur la page inscription.

Pour mieux comprendre se que je dit vous pouvez vous rendre sur mon site http://bedj.citronet.orget cliquer sur inscripiton (sur la banniere vert en haut) et ne remplisser pas tous les champs et faite valider. Vous allez comprendre se que je dit.

Voici la divs et le formulaire (je vous mais pas le css. Mais si vous le voulez faite moi le savoir)


<div id="myInsc" style="display: none">
<span>
<form action="user_create.php" method="post" class="formulaire" id="inscription" name="inscription">
<input type="hidden" name="action" value="add">
<h5>
Inscription
</h5>
<div>
<span><a href="connection.php" rel="modal-myLogin">Déjà membre ? Identifiez-vous</a></span>
</div>
<table cellpadding="5" cellspacing="5">
<tbody>
<tr>
<th><label for="pseudo">Pseudo</label> : </th>
<td> <input type="text" name="pseudo" id="pseudo"></td>
</tr>
<tr>
<th><label for="password">Password</label> : </th>
<td> <input type="password" name="password" id="password"></td>
</tr>
<tr>
<th><label for="password1">Confirmer</label> : </th>
<td> <input type="password" name="password1" id="password1"></td>
</tr>
<tr>
<th><label for="email">E-mail</label> : </th>
<td> <input type="text" name="email" id="email"></td>
</tr>
<tr>
<td colspan="2" class="dotted">
<span class="valider">
<p><input type="image" src="../images/bt_valider.gif" /></p>
</span>
</td>
</tr>
</tbody>
</table>
</form>
</span>
</div>





Voici la page inscription et ou les erreurs sont inscrite (les erreurs sont ou ses marquer "report")


<?php 
session_start();

include('user_verif.php');


//-------------------------
// Redirection si connecté
//-------------------------

if( !empty( $id ) )
{
header("Location: $url_login");

exit;
}


$action['get'] = isset( $_GET['action'] ) ? 'new' : '';

$action['post'] = isset( $_POST['action'] ) ? 'post' : '';


//---------------------------------------
// Affichage du formulaire d'inscription
//---------------------------------------

if( $action['get'] == 'new' or ( empty( $action['get'] ) and empty( $action['post'] ) ) )
{
//Affichage du formulaire d'inscription
//Pour les utilisateurs avertis, Vous pouvez modifier les lignes
//ci-dessous (comprises entre les commentaires)
?>

<!-- Début du Formulaire -->

<html>

<head>
</head>

<body>
<br clear="all">
<br clear="all">
<h1>Page d'inscription</h1>
<br clear="all">
<br clear="all">
<p style="text-align: center; font-face: Verdana; font-size: 10pt; color: #FFFFFF">

<font size="2" face="Verdana">

<?php report_disp(); ?>

<center><form action="user_create.php" method="post">

<input type="hidden" name="action" value="add">

<label>Pseudo:<br><input type="text" name="pseudo"></label>
<br><br>
<label>Password:<br><input type="password" name="password"></label>
<br>
<label>Confirmer:<br><input type="password" name="password1"></label>
<br><br>
<label>E-mail:<br><input type="text" name="email"></label>
<br><br>
<input type="reset" name="reset" value="Reset">
<input type="submit" name="send" value="S'inscrire">
<br><br><a href="index.php">Revenir</a>
</form></center>

<center><?php echo ( $conf_crypt == '1' ) ? '<br/><font style="color: '. $avert_crypt_color .'">'. $avert_crypt .'</font>' : ''; ?>
</center>
</font></p>

</body>

</html>

<!-- Fin du Formulaire -->

<?php

exit;
}


//-------------------------------
//Création du membre dans la BDD
//-------------------------------

if( $action['post'] == 'post' )
{

/* ETAPE 1: Formatage des variables */

//Déclaration et Vérification de la conformité des variables

$pseudo = strip_tags ( $_POST['pseudo'] );

$password = strip_tags ( $_POST['password'] );

$password1 = strip_tags ( $_POST['password1'] );

$email = strtolower ( $_POST['email'] );


if( empty ( $pseudo ) or empty ( $password ) or empty ( $email ) )
{
report($erreurs['vide']);

exit( header("Location: $url_create") );
}


if( $password != $password1 )
{
report($erreurs['passconf']);

exit( header("Location: $url_create") );
}


/* ETAPE 2: Traitement sur BDD */

//Connexion à la base de donnée

$sql->open();

//On vérifie que le pseudo n'existe pas déja

$res = $sql->query("SELECT * FROM $sql_table WHERE pseudo='$pseudo'");

if ( mysql_num_rows($res) == 1 )
{
report("Ce pseudo existe déja !");

exit( header("Location: $url_create") );
}


//Création d'un id aléatoire

$char = 'abcdefghijklmnopqrstuvwxyz0123456789';

srand(time()); $id = '';

for( $i=0; $i<20; $i++ )
{
$id .= substr($char,(rand()%(strlen($char))),1);
}


//Cryptage du mot de passe (selon cfg)

$password = ( $conf_crypt == '1' ) ? md5( $password ) : $password;


//Définition de l'activation du compte (selon cfg)

$activ = ( $conf_activ == '1' ) ? 'non' : 'oui';


//Récupération de la date

$register_date = date("d/m/Y H:i");


//Insertion du nouveau membre et de son profil dans la BDD

$sql->query("INSERT INTO $sql_table (pseudo,password,email,rang,id,register_date,activ) VALUES('$pseudo','$password','$email','1','$id','$register_date','$activ')");


//Fermeture de la connexion à la BDD

$sql->close();


/* ETAPE 3: Confirmation */

//Envoi du mail de confirmation si la fonction est activée

$conf_email_msg = "Merci de vous être inscrit sur , voici vos identifiants:\n\n";
$conf_email_msg .= "Pseudo: $pseudo\n";
$conf_email_msg .= "Password: $password1\n";
$conf_email_msg .= "Email: $email\n\n";
$conf_email_msg .= "Cordialement,\n";
$conf_email_msg .= "Le Webmaster.";

$confirm_mail = $mail_confirm['protomail'] . '<br/><br/>';


if ( $conf_mail == '2' )
{
include("config/protomail/lib.protomail.php");

protomail( $email, $conf_email_subject, $conf_email_msg );
}

elseif ( $conf_mail == '1' )
{
mail( $email, $conf_email_subject, $conf_email_msg );

$confirm_mail = $mail_confirm['mail'] . '<br/><br/>';
}


//------------------------------
// Affichage de la confirmation
//------------------------------
?>

<html>

<head>
<META HTTP-EQUIV="refresh" CONTENT="10; URL=<?php echo $url_redir; ?>">
</head>

<body>

<p align="center" style="font-family: Verdana; font-size: 10pt">

<?php echo $create_confirm; ?>
<br/>
Redirection automatique vers la page de connexion dans quelques secondes...
<br/>
<br/>

<?php echo $confirm_mail; ?>

<a href="<?php echo $url_login; ?>">S'identifier</a>

</p>

</html></body>


<?php

session_destroy();

exit;
}

else
{
header("Location: $url_create");

exit;
}
?>




Merci de m'aider

Salut,

Bon bah il y a du JS/Ajax dans l'air je te répond ce soir si je peux mais c'est vraiment des scripts piochés que je vais te proposer je ne suis pas doué en Js
Merci de ta réponse Zanergun. Mais j'ai deja le script qui fait tout sa. Mon seul problème se sont les erreurs qui ne sont pas afficher dans la divs. Il aurait pas moyen de crée une variable php pour appelle mon erreur dans ma divs. Merci
Avant de chercher une erreur des que possible, ton script je suppose qu'il ne se passe rien du tout la ? !
Parce dans ton formulaire (numero1) il n'y a aucun appel de fonction javascript !

Deuxième question :

- Tu veux une vérification en temps réel ?
- Tu veux une vérification via un page php ?
Je croit que tu ne comprend pas très bien mon probleme. Je n'est pas une erreur dans mon scripts. C'est juste quand l'utilisateur vient pour se crée un account et qu'il oublie de remplir un champs sa marque (vous avez pas remplie tout les champs) mais ce message s'affiche pas dans la divs mais biens sur une nouvelles page. Se que moi je ne veut pas.

Et la vérification se fait avec une page php.

Va sur mon site essayer se que je veut dire. clique devenir membre dans la bannière vert et remplie pas tout les champs et fait valider. tu va voir une autre page va se charger et l'erreur va etre marquer en rouge en haut de la page. Moi je voudrait que le message rouge soit marquer dans la divs.
Le site que tu as donné en exemple utilise une technique toute simple : la page de traitement est la même que la page d'envoie.

Du coup on change pas de page, et il a juste à réafficher la même chose avec, s'il manque des champs, une ligne rouge en plus. [ et les case préremplies avec les valeurs envoyées, je suppose ].

Tu as trois possibilités :

- Vérifier intégralement en JavaScript et afficher le message sur la page grâce au javascript.
=> Dangereux car si l'utilisateur désactive JS, il n'y aura plus de vérification.

- Faire comme le site que tu as donné en exemple :
Au lieu de mettre un div caché, tu envoies soit sur une nouvelle page soit tu fais une pop-up, comme ça tu peux envoyer sur une page qui fait envoie/traitement.


- Dernière possibilité : la méthode AJAX. Tu vas envoyer en ajax (asynchronous javascript and xml) à ta page de traitement, et tu vas afficher le message d'erreur dans la page grâce à JavaScript quand la page en php qui traite renvoie une erreur.

Mais là ajax, c'est pas très compliqué mais tu vas peut-être être un peu perdu Tongue



Voilà

A plus

Troll
Oui ajax compliqué, mais le mieux ca reste ajax et quand même les verifs sur la page de traitement (sécurité)

M'enfin c'est peut être pas le top mais il y a des tutos sur la vérification de formulaire en ajax !
Zarnergun a écrit :Oui ajax compliqué, mais le mieux ca reste ajax et quand même les verifs sur la page de traitement (sécurité)

M'enfin c'est peut être pas le top mais il y a des tutos sur la vérification de formulaire en ajax !

Un tuto ? Pourquoi faire ?

Tu envoie ta requête, tu affiche le résultat.

Après s'il manque quelque-chose, c'est ta pâge php qui renvoit une erreur. Ou qui renvoit le fait que la requete s'est bien effectuée...
moi j'mettrai tous simplement le méme style div que la page que tu souhaite a la page qui s'affiche, au lieu de rediriger cet page sur la page principale.
Ok merci pour vos reponse.
Moi j'ai deja ma page de traitement et tout. Je veut juste que les erreur s'affiche dans la divs et non sur une nouvelle page

Est que ajax peut le faire?
Si vous ne comprener pas je vais vous faire un montage photo pour vous expliquer.
Merci

en passant le site que je vous est donnee est le mien
Pages : 1 2 3
URLs de référence