Ctrl longueur champs javascript

Résolu/Fermé
Laëtitia - 14 déc. 2009 à 15:08
Michael_Ange Messages postés 223 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 29 mai 2015 - 15 déc. 2009 à 10:22
Bonjour,
ce matin j'ai trouvé un code pour vérifier la longueur des champs et ça marchait, cette aprm, ça ne fonctionne plus !!!
Voici mon code :
<?php
session_start();
//si la session n'existe pas, redirection vers index.php
if (!isset($_SESSION['nom']))
{
Header('Location: index.php');
}
//on affiche la page voulue
else
{

echo'<HTML>';
echo'<HEAD>';
echo"<TITLE>Ajout d'accès</TITLE>";
echo'<link rel="stylesheet" href="include/style.css">';

echo'<script> ';
echo"function valider(monchamps){
var mini = 1
var maxi = 4
if ( mini != 0 ) {
// Si la longueur de la saisie est inférieure au minimum demandé
if ( monchamps.value.length < mini ) {
// Envoi d'une alerte
alert('Vous devez saisir au moins ' + mini + ' caracteres.');
return false
}
}
// Si la longueur de la saisie est supérieure au maximum demandé
if ( maxi != 0 ) {
if ( monchamps.value.length > maxi ) {
alert('Vous ne devez pas saisir plus de ' + maxi + ' caracteres.');
return false
}
}
}
</script> ";



echo'</HEAD>';
echo'<BODY>';


echo'<form action="acces_ajoutbis.php" method="post">';
echo'<div id="ecriture2">';
echo"Ajout d'accès <br/><br/>";
echo'</div>';

echo'<div id="ecriture1">';


include ("/var/www/function.php");
require_once ("/var/www/include/auth.inc");
$mysqlLink = connexion(HOST,USER,PWD,BDD);
$requete="SELECT tAcces FROM acces;";
$result = mysql_query($requete) or die("Requete non comprise");
echo "<table>";
echo'Les accès existants : <br/>';
while ($tableau = mysql_fetch_array($result))
{
echo'• ';
echo $tableau['tAcces'] ;
echo '<br/>';
}
echo'<br/><br/>';



echo ' Nom accès : <input type="text" onChange="javascript:this.value=this.value.toUpperCase();" name="nom" size=22 value="Tapez ici le nom accès" onblur="valider(this)" onfocus="if (this.value==\'Tapez ici le nom accès\') {this.value=\'\'}"/><br/><br/>';


echo'<input type="submit" value="Valider"/>';
echo'<input type="reset" value="Annuler"/><br/><br/><br/>';

echo'</div>';

echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';

echo'</form>';

}
?>
</BODY>
</HTML>


et voici le code de la page qui est appelée :
<?php
session_start();
//si la session n'existe pas, redirection vers index.php
if (!isset($_SESSION['nom']))
{
Header('Location: index.php');
}
//on affiche la page voulue
else
{
?>

<HTML>
<HEAD>
<TITLE>Ajout accès</TITLE>
<link rel="stylesheet" href="include/style.css">
</HEAD>
<BODY>


<?php

include ("/var/www/function.php");
require_once ("/var/www/include/auth.inc");

$mysqlLink = connexion(HOST,USER,PWD,BDD);

$nom=$_POST['nom'];

echo '<div id="ecriture1">';

if ($nom<1 or $nom>4)
{
echo'Ajout impossible !<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
$sql="INSERT INTO acces VALUES ('','".$nom."');";
$jeu=@mysql_query($sql,$mysqlLink);

if ($jeu==true)
{
echo 'Ajout pris en compte<br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}
else
{
echo 'Ajout impossible <br/><br/>';
echo'<div id="ecriture3"';
echo "<a href='acces.php'>• Retour au menu d'accès •</a>";
echo'</div>';
}

echo '</div>';
}
}
?>
</BODY>
</HTML>



J'ai du mal à comprendre pk ça ne fonctionne plus...Merci de votre aide !

13 réponses

UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
14 déc. 2009 à 16:46
si on avait l'adresse du site ça serait plus simple...
1
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
14 déc. 2009 à 16:58
il manque plein de point-virgules (;) dans le javascript... mais si tu me donnes l'adresse de la page où ça ne marche pas, c'est mieux.
1
je ne peux pas te donner l'adresse de la page pcq c'est pas un site web que je fais, c'est une application interne pour une entreprise
0
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
15 déc. 2009 à 10:17
à la ligne 122:
if (strlen($nom) < 1 or strlen($nom) > 4)


et tu devrais faire correspondre les longueurs mini et maxi avec celles du script javascript.
1
toto1983 Messages postés 205 Date d'inscription samedi 16 mai 2009 Statut Membre Dernière intervention 25 mars 2010 13
14 déc. 2009 à 17:00
Moralité de l'histoire : toujours réfléchir au code c + efficace après ça n'engage que moi comme on dit qui m'aime me suive ;)
0
j'ai réfléchi au code sauf que je n'ai pas appris le javascript ! et la je suis obligé d'en utiliser! merci pour ta remarque ça m'aide énormément...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
14 déc. 2009 à 17:46
Qui bosse pour qui?
Je n'ai rien contre toi, Laëtitia, mais je ne me vois pas aider "une entreprise", qui demande à ses employés de faire des choses pour lesquelles ils ne sont ni formés ni soutenus, apparemment.
0
je ne suis pas employé dans cette entreprise je suis juste stagiaire! et je sais que si je demande aux employés comment je dois faire ils sauront pas pcq ce n'est pas leur métier...
0
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
15 déc. 2009 à 09:31
OK stagiaire... reprenons.

as-tu mis un point-virgule (;) à la fin de chaque ligne de code (php et js), sauf celles finissant par { et celles commençant par //
0
non pcq je n'y connais rien en javascript =s je vais essayer
Merci de ton aide en tt cas
0
Michael_Ange Messages postés 223 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 29 mai 2015 19
15 déc. 2009 à 09:46
Essaie déjà avec ces lignes :

var mini = 1 ;
var maxi = 4 ;

Il y a un excellent outil pour firefox qui est téléchargeable ici : https://addons.mozilla.org/fr/firefox/addon/1843. Il t'aidera à répérer facilement tes lignes à problèmes
0
voila j'ai mis des point virgules et ça ne marche toujours pas!
0
je pense que mon problème vient du code de ma deuxième page mais je ne comprends pas pk ça marchait au début !
0
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
15 déc. 2009 à 09:55
c'est difficile de tester/comprendre pour moi, car le php ne fonctionne pas chez moi. Donc je ne sais pas où commencer.
0
tant pis, j'essaierai autre chose
merci quand mm
0
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
15 déc. 2009 à 09:58
ce code fonctionne très bien chez moi:
<html>
  <head>
  <script>
  function valider(monchamps){
        var mini = 3;
        var maxi = 20;
        if ( mini != 0 ) {
          // Si la longueur de la saisie est inférieure au minimum demandé
          if ( monchamps.value.length < mini ) {
                // Envoi d'une alerte
                alert('Vous devez saisir au moins ' + mini + ' caracteres.');
                return false;
          }
        }
          // Si la longueur de la saisie est supérieure au maximum demandé
        if ( maxi != 0 ) {
          if ( monchamps.value.length > maxi ) {
                alert('Vous ne devez pas saisir plus de ' + maxi + ' caracteres.');
                return false;
          }
        }
  }
  </script>
  </head>
  <body>
<form name="form1" method="post" action="moteur.html">
                <input type="text" name="motsclef"  id="search" onblur="valider(this)">
                <input type="submit" value="Rechercher">
</form> 
</body>
</html>
0
ce code fonctionne chez moi aussi, mon problème c'est que je veux interdire l'ajout dans ma table quand le mot est trop grand... et c'est la que ça bloque ! =s
La première fois que j'ai testé ça fonctionnait et depuis ça me met ajout impossible à chaque fois !
0
UgglyBoy Messages postés 422 Date d'inscription mercredi 24 septembre 2008 Statut Membre Dernière intervention 30 mai 2015 64
15 déc. 2009 à 10:07
pour ce faire tu dois vérifier au niveau de php la longueur de chaîne de carac. avant l'INSERT dans la DB. ET ceci ce fait avec un
strlen();
0
Michael_Ange Messages postés 223 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 29 mai 2015 19
15 déc. 2009 à 10:10
Tu t'y connais en php ?
0
en php un peu en javascript pas du tt
j'ai essayé strlen() mais j'ai vite abandonné pcq j'y comprenais rien !
0
toto1983 Messages postés 205 Date d'inscription samedi 16 mai 2009 Statut Membre Dernière intervention 25 mars 2010 13
15 déc. 2009 à 10:14
En posant bien entendu la condition qui te renverra true ou false en fonction de la longueur strlen(ta_superbe_variable)

if (strlen(ta_superbe_variable) > longueur_ imposée)
//requête SQL qui dit de ne rien stocker dans la base : dsl c pas encore frais pour moi le SQL :D
0
Michael_Ange Messages postés 223 Date d'inscription jeudi 27 novembre 2003 Statut Membre Dernière intervention 29 mai 2015 19
15 déc. 2009 à 10:22
strlen($variable) te ramène un entier qui correspond à la taille de la chaine contenu dans la variable que tu lui aura passa en paramètre

exemple :

$variable = '';
if(isset($_POST['variable']))
$variable = $_POST['variable'];

//jusque là je pense que tu dois te retrouver
//maintenant essayons de voir si la taille de la chaine contenu dans $variable ,n'est pas tsupérieur à 10

if(strlen($variable)>10)
{
header('location:mapage.php'); /*si la taille de ma chaine est supérieur à 10 caractères, alors on retourne la page qui m'a conduit ici, sans chercher à exécuter la suite*/
}else
{
$requete = .....
........
}


J'espère que tu comprendras mieux l'utilisation de strlen() avec ça.
0