cs_magicgus
Messages postés206Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention14 septembre 2011
-
6 janv. 2009 à 13:14
cs_magicgus
Messages postés206Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention14 septembre 2011
-
6 janv. 2009 à 23:42
Bonjour
Je suis perdu, j'ai une page php dans laquelle se trouve du JS pour verifié ce que l'utilisateur tape dans le formulaire, ça marche très bien sous FF, par contre ça plante sous IE7
Dans le code JavaScript
<hr size="2" width="100%" />
var pseudo =
document
.getElementById('pseudo'); // Pointe vers une balise DIV
var NullMessage = "Ce champ ne peut rester vide";
//dans une fonction de vérif
pseudo.innerHTML = NullMessage; // l'erreur IE pointe sur cette ligne !
<hr size="2" width="100%" />
Dans le BODY
<hr size="2" width="100%" />
pseudo">
<?php
global
$_RESULT; echo $_RESULT['pseudo'];
?>
<hr size="2" width="100%" />
Comme dit ça marche sans problème sur FF mais IE me renvoie l'erreur suivante :
"Erreur d'execution inconnue" code "0"
Bien sûr le script est alors interrompue !
Pratique, alors avec l'ami Google j'ai trouver plein d'info comme quoi innerHTML ne serais pas reconnu officielement par le W3C, comme quoi il y'aurais des problème avec IE sous certainne application de ce procédé, bla bla bla
Et sur le site Microsoft il relate cette erreur, mais chez eux c'est quand on essaye cette methode sur une table, or moi c'est un pauvre div...
Bref j'ai vue beaucoup d'info, assez flouts qui ne resolvé pas mon problème, d'où l'interet de ce post...
A j'ai aussi du coup essayer dans un HTML vide en simplifiant et etrangement ça marche...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 6 janv. 2009 à 13:43
zut souci d'envoi !
>> et etrangement ça marche...
donc...
c'est qu'il y a une erreur dans l'autre script !
ce n'est pas étrange !
tant qu'aux bugs des navigateurs : ce ne sont
que des conneries ! il n'y a aucun bug dans
aucun navigateur ! c'est toujours celui qui
code qui se plante !
>>pseudo.innerHTML = NullMessage;
t'es sur ? IE commene à numéroter à 0
ce n'est pas la ligne suivante ?
en attendant :
•————————•——————————————————————————————————————————————————————————•
|Chrome | controler la page actuelle |
| | Options pour les développeurs |
| | Console Javascript |
•————————•——————————————————————————————————————————————————————————•
|FireFox |regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
| | et mieux, : télécharger FireBug |
•————————•——————————————————————————————————————————————————————————•
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | o Afficher une notification de chaque erreur de script |
| | o Désactiver le débogage de Scripts (Internet Explorer) |
| | et mieux, : télécharger le Debogger IE |
| | voir aussi : DebugBar et Companion JS |
•————————•——————————————————————————————————————————————————————————•
|K-Meleon|regarder la "console d'erreurs" |
| | Outils / Console d'erreurs |
•————————•——————————————————————————————————————————————————————————•
|Opera |regarder la "console d'erreurs" |
| | Outils / Avancé / Console d'erreurs |
•————————•——————————————————————————————————————————————————————————•
|Safari |regarder Debug / Show JavaScript Console |
| | ° modifier Fichier com.apple.Safari.plist situé dans le |
| | répertoire : Support:\Documents and Settings\utilisateur\|
| | Application Data\Apple Computer\Safari\Preferences\|
| | y ajouter <key>IncludeDebugMenu</key> |
| | <true/> |
•————————•——————————————————————————————————————————————————————————•
pour IE8, le debooggage est différent, mais comme
ce n'est pas encore une version officielle...
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201515 6 janv. 2009 à 13:51
je voulais dire ;o)
Navigateurs |Quelques Expplications |----
Chrome
, contrôler page actuelle / Options pour développeurs
/ Console Javascript, ----
FireFox
, Outils / Console d'erreurs
et mieux : télécharger FireBug, ----
Internet
Explorer
, activer le deboggage : Outils/options Internet/Avancés
dans la liste, sous "Navigation" : décocher
o Afficher une notification de chaque erreur de script
o Désactiver le débogage de Scripts (Internet Explorer)
et mieux : télécharger le Debogger IE
voir aussi : DebugBar et Companion JS, ----
K-Meleon
, Outils / Console d'erreurs, ----
Opera
, utils / Asole d'erreurs, ----
Safari
, Debug / Show JavaScript Console
° modifier Fichier com.apple.Safari.plist situé dans le
répertoire : Support:\Documents and Settings\utilisateur
\Application Data\Apple Computer\Safari\Preferences\
y ajouter <key>IncludeDebugMenu</key>
cs_magicgus
Messages postés206Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention14 septembre 2011 6 janv. 2009 à 14:19
Merci
Seulement Le deboggeur MS me renvoie la page sur Microsoft Script Editor de office qui lui ne contient pas de deboggeur
et DebugBar + Conpanion JS me renvoie la meme erreur qu'IE
Donc je suis toujours un peu paumé, je vais te faire parvenir le script complet de la page
function NotNullString(mode)
{
// Declarations des variables Javascript globales
var ErrorCount=0;
var NullMessage = "Ce champ ne peut rester vide";
// Variables pour les SPAM de résultat JavaScript
var pseudo = document.getElementById('pseudo');
var mot_de_passe = document.getElementById('mot_de_passe');
var retape_mot_de_passe = document.getElementById('retape_mot_de_passe');
var code_postal = document.getElementById('code_postal');
var email = document.getElementById('email');
//Vérification que les champ contiennent une valeur
if (mode==0 || mode==1)
{
if (document.form1.pseudo.value == '')
{
pseudo.innerHTML = NullMessage;
ErrorCount++;
}
else
{
if (document.form1.pseudo.value.length < 6)
{
pseudo.innerHTML = "Le pseudo saisie doit comporté au moins 6 caractères";
ErrorCount++;
}
else
{
pseudo.innerHTML = '';}
}
}
if (mode==0);
{
if (document.form1.CGU.checked == true)
{
// Reserve
}
else
{
ErrorCount++;
}
}
// Retour positive ou non pour la suite de la vérification par PHP avant validation totale
if (ErrorCount > 0){return false;}else{return true;}
}
function VerifMail(adress)
{
var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
if(reg.test(adress))
{
document.form1.StatutForPHP.value = "on";
return(true);
}
else
{
return(false);
}
}
-->
</script>
<?php // Chargement des includes de formatage et de sécurité
include('../scripts/php/string/format.php');
include('../scripts/php/sql_commands/data_management.php');
?>
<?php // Récupération des données puis traitement avant enregistrement
// Declaration de variable(s) globales
$_RESULT = array('pseudo'=>'','mot_de_passe'=>'','sexe'=>'','date_naissance'=>'','code_postal','email'=>'','retape_mot_de_passe'=>'','code_postal'=>'','CGU'=>'');
// Verification si la page est chargé ou rechargé
//if (isset($_POST['form_valide'])){
$ErrorCount=0;
// Vérification des format string saisies, détéction des balises html
if (isset($_POST['pseudo'])){
if ($pseudo FormatStringNoHTML($_POST['pseudo']) false){$ErrorCount++;
global $_RESULT; $_RESULT['pseudo'] = 'Le Pseudo que vous avez entré n\'est pas valide';}
else{$_RESULT['pseudo'] = '';}}
if (isset($_POST['mot_de_passe'])){
if ($pseudo FormatStringNoHTML($_POST['mot_de_passe']) false){$ErrorCount++;
global $_RESULT; $_RESULT['mot_de_passe'] = 'Le mot de passe que vous avez entré n\'est pas valide';}
else{$_RESULT['mot_de_passe'] = '';}}
if (isset($_POST['code_postal'])){
if ($pseudo FormatStringNoHTML($_POST['code_postal']) false){$ErrorCount++;
global $_RESULT; $_RESULT['code_postal'] = 'Le code potal que vous avez entré n\'est pas valide';}
else{$_RESULT['code_postal'] = '';}}
if (isset($_POST['email'])){
if ($pseudo FormatStringNoHTML($_POST['email']) false){$ErrorCount++;
global $_RESULT; $_RESULT['email'] = 'L\'adresse email que vous avez entré n\'est pas valide';}
else{$_RESULT['email'] = '';}}
if (isset($_POST['CGU'])){
global $_RESULT; $_RESULT['CGU'] = ' checked="checked" ';}
// PHP peut-il démarrer l'enregistrement ???
if (isset($_POST['StatutForPHP']))
{
if ($_POST['StatutForPHP'] == "on")
{
// Lancement de la fonction d'enregistrement SQL
if ($ErrorCount==0)
{
if (CheckDispoPseudo($_POST['pseudo'])==true)
{
SubscriteUser($_POST['pseudo'],$_POST['mot_de_passe'],$_POST['sexe'],$_POST['jour_naissance'],
$_POST['mois_naissance'],$_POST['annee_naissance'],$_POST['code_postal'],$_POST['email']);
// ########### Placer ici le code pour aller a la page suivante !
}
else
{
global $_RESULT; $_RESULT['pseudo'] = 'Désolé, mais ce pseuo existe déjà, choisissez en un autre';
}
}
else
{
// s'il y'a une ou plusieurs erreurs
}
}
}
// Ajoute un utilisateur avec les données d'inscription
function SubscriteUser($pseudo,$mot_de_passe,$sexe,$jour_naissance,$mois_naissance,$annee_naissance,$code_postal,$email){
// Connexion à la base
$link = mysql_connect("localhost", "root", "");
mysql_select_db("stras_rencontres", $link);
$mysql_query = "INSERT INTO users (pseudo,mot_de_passe,sexe,jour_naissance,mois_naissance,annee_naissance,code_postal,email)
VALUES ('".$pseudo."','".$mot_de_passe."','".$sexe."','".$jour_naissance."','".$mois_naissance."','".$annee_naissance."','".$code_postal."','".$email."')";
mysql_query($mysql_query);
mysql_close($link);
}
// Fonction de vérification de l'existance du pseudo
function CheckDispoPseudo($pseudo)
{
// Connexion à la base
$link = mysql_connect("localhost", "root", "");
mysql_select_db("stras_rencontres", $link);
// Verifier que le pseudo existe
$mysql_query = "SELECT pseudo FROM users WHERE pseudo='".$pseudo."'";
//SELECT pseudo FROM users WHERE pseudo='paul'
$return = mysql_query($mysql_query);
$return = mysql_fetch_array($return);
if ($return[0]=='')
{
return true;
}
else
{
return false;
}
mysql_close($link);
}
?>