Inscription

Fermé
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015 - Modifié par natasha82 le 9/04/2015 à 22:38
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015 - 10 avril 2015 à 14:17
Bonsoir
j'ai une page jsp pour le formulaire et une servlet sachant que cette inscription est sécurisé seulement les étudiant ayant inscris je veux ceux qui figure sur la base de donnée (ajouté par l'administateur qui peuvent s'inscrire pour avoir un compte)
mais j'ai une erreur je sais pas comment la corriger : voici la servlet:




et aussi la page jsp:



<%--
Document : inscri
Created on : 7 mars 2015, 22:05:04
Author : CBS-COMPUTER
--%>

<%@page import="Servlet.EtudiantBeans"%>
<%@page import="java.util.Iterator"%>
<%@page import="metier.Etudiant"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="css/forme.css" type="text/css" charset="utf-8" />

<title>JSP Page</title>
<script language="javascript">
<!--
function verif()
{mes="";
if(document.ins.nom.value==''){mes=mes+"\n-Il Veuillez entrez votre Numero Etudaint";}
else {var expnom = new RegExp("^[a-zA-Z]{1,}");
if(!expnom.test(document.ins.nom.value)) {mes=mes+"\n - Numero Etudaint saisie n'est pas conforme";} }

if(document.ins.prenom.value==''){mes=mes+"\n-Il Veuillez entrez votre Spécialité";}
else {var exprenom = new RegExp("^[a-zA-Z]{1,}");
if(!exprenom.test(document.ins.prenom.value)) {mes=mes+"\n - La Spécialité saisie n'est pas conforme";} }


if(document.ins.mail.value==''){mes=mes+"\n-Il Veuillez entrez votre adresse de messagerie ";}
else {var regexp = new RegExp("^[a-zA-Z0-9_\\-\\.]{2,}@[a-zA-Z0-9\\-_]{2,}\\.[a-zA-Z]{2,4}$", "g");
if(!regexp.test(document.ins.mail.value)) {mes=mes+"\n - L'adresse e-mail n'est pas valide!";} }

if(document.ins.tel.value==''){mes=mes+"\n-Il Veuillez entrez la Spécialité ";}
else {var reg = new RegExp("^[a-zA-Z]{1,}");
if(!reg.test(document.ins.tel.value)) {mes=mes+"\n - Le numero de telephone n'est pas valide!";} }


if(document.ins.psw.value==''){mes=mes+"\n-Il Veuillez entrez un mot de passe ";}
if(document.ins.cpsw.value==''){mes=mes+"\n-Il Vous devez confirmer votre mot de passe ";}

if(document.ins.psw.value!=document.ins.cpsw.value){mes=mes+"\n-Il Veuillez saisir le meme mot de passe";}

if(mes!=''){alert("ERROR :"+mes);return false;}else{return true;}
}

</script>


</head>
<body>






<div id="general">

<div id="general">

<div id="entete">
<div id="logo">
<br/>
<marquee>
<h2> Bienvenue dans L'espace Numérique De Travail de l'UMMTO </h2>

</marquee>
</div>
<div id="menu-haut">

<span id="acc"> <a href="index.jsp"title=" Rotour a la page d'accueil"> Accueil </a></span>
<span id="ident"><a href="inscri.jsp" title="Inscrir si vous etez pas deja inscrire"> Inscription </a></span>
<span id="ins"><a href="authen.jsp"title=" Acceder a votre espace"> Cours </a></span>
<span id="cont"><a href="a propos.jsp" title=" plus d'information"> A propos </a></span>
<span id="acce"> <a href="cours.jsp" title=" cours à télécharger"> Aide</a></span>

</div>
</div>

<div id="principal">


<div id="ins-zone">


<form name="ins" id="ins" action="Inscri" method="POST" onSubmit="return verif()">
<label id="obli">Tous les champs sont obligatoire </label>
<fieldset class="zone1"><legend>Formulaire d'inscription</legend>

<p class="present">
<label for="nom">Nom </label>
</p>
<p class="present">
<label for="pre">Prenom</label>
</p>
<p class="present">
<label for="adress">Adress </label>
</p>
<p class="present">
<label for="lieu de naissance">lieu naissance </label>
</p>
<p class="present">
<label for="email">email</label>
</p>
<p class="present">
<label for="login">login</label>
</p>
<p class="present">
<label for="mot de passe">mot de passe</label>
</p>


</fieldset>
<fieldset class="zone2">
<p>
<input name="nom" type="text" name="nom_etu" size="30" />
</p>
<p>
<input type="text" name="prenom_etu" size="30" />
</p>
<p>
<input type="text" name="adres_etu" size="15" />
</p>
<p>
<input type="text" name="lieu_naiss_etu" size="30" />
</p>
<p>
<input type="text" name="email" size="15" />
</p>
<p>
<input type="text" name="login_etu" size="30" />
</p>
<p>
<input type="text" name="psw_etu" size="30" />
</p>



</fieldset>
<p class="submit">
<button type="submit" value="Valider">Créer mon compte</button>

</p>

</form>
<table border="0" />
<tr>




</tr>


</table>



<p class="submit">
<form name="ins" id="ins" action="compteEtu" method="POST"/>
<input type="hidden" name="action" value="créer mon compte"/>

<button type="reset">Annuler</button>
</form>
</p>

</div>
</div>
</div>
</body>
</html>


et voici l'erreru qui s'affiche:

GRAVE: null
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''null"' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1031)
at Servlet.InscrEtudiantServlet.nomEtuExist(InscrEtudiantServlet.java:99)
at Servlet.InscrEtudiantServlet.doPost(InscrEtudiantServlet.java:60)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)

pouvez vous m'aider merci.
A voir également:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
9 avril 2015 à 23:03
Bonjour,

Tu t'es trompé dans l'alternance des guillemets et apostrophes.
executeQuery("SELECT * FROM etudiant WHERE NOM_ETU='"+NOM_ETU+'"');

La fin devrait être
+"'");
. Ainsi dans le cas où tu as
null
(ce qui est le cas lors de ton exécution) cela ferait donc
WHERE NOM_ETU='null'
alors que pour l'instant tu as
WHERE NOM_ETU='null"
ce qui ne va pas.

Remarque : le message était explicite à ce sujet
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''null"' at line 1
at Servlet.InscrEtudiantServlet.nomEtuExist(InscrEtudiantServlet.java:99)
0
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
10 avril 2015 à 11:37
Bonjour,
j'ai modifier la condition comme ça :
ResultSet rs = cn.createStatement().executeQuery("SELECT * FROM etudiant WHERE NOM_ETU ='"+NOM_ETU+"'")
mais j'ai toujour une erreur qui s'affiche : la voila
INFOS: The start() method was called on component [StandardEngine[Catalina].StandardHost[localhost].StandardContext/EspaceNumeri] after start() had already been called. The second call will be ignored.
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'pswrd_etu' cannot be null
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1016)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:957)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3376)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3308)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1837)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2543)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1737)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:998)
at Servlet.InscrEtudiantServlet.addEtud(InscrEtudiantServlet.java:105)
at Servlet.InscrEtudiantServlet.doPost(InscrEtudiantServlet.java:65)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

merci de me répondre
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
10 avril 2015 à 14:04
C'est encore un problème de SQL au final :
ConstraintViolationException: Column 'pswrd_etu' cannot be null 

Il faut que tu fasses des tests en amont pour détecter lorsque tu as des valeurs null, ce qui est souvent le cas avec des getParameter lorsque le paramètre n'est pas renseigné.
0
natasha82 Messages postés 55 Date d'inscription vendredi 20 mars 2015 Statut Membre Dernière intervention 9 juin 2015
10 avril 2015 à 14:17
Bonsoir, je l'ai régler mais la ou j'ai fait le test pour verifier si le nom existe alor l'inscription sera validé si non il lui renvoi un message d'erreur mais elle fonctionne pas car si je donne autre nom il l'accepte et l'inscription sera validé cette insciption est reservé juste pour ceux qui sont inscris sur la bdd par l'administrateur
voici: le test



try {
if (!nomEtuExist(NOM_ETU))
{

Compte c= new Compte(1,LOGIN_ETU,PASWRD_ETU);
addEtud(c);
request.getRequestDispatcher("espace_Etudiant.jsp").forward(request, response);
}
else{

request.getRequestDispatcher("index.jsp").forward(request, response);


} } catch (ClassNotFoundException ex) {
Logger.getLogger(InscrEtudiantServlet.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(InscrEtudiantServlet.class.getName()).log(Level.SEVERE, null, ex);
}

}




merci
0