IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fatal error: Call to undefined function hydrus_utils_alert()


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 78
    Points : 31
    Points
    31
    Par défaut Fatal error: Call to undefined function hydrus_utils_alert()
    Bonjour,

    j'ai un petit soucis auquel je n'arrive pas à trouver la solution.

    je ne suis pas sur d'être sur le bon forum, je m'en excuses d'avance si c'est pas le bon. j'ai hésité avant de le poster ici


    donc voilà, j'ai un formulaire où les gens doivent remplir un code postal. je souhaite que si leur code postal n'a qu'un, 2, 3 ou 4 chiffres, une alerte arrive pour leur dire de rentrer 5 chiffres. ça c'était pour l'explication générale

    voilà comment mon code se présente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    if(isset($_POST['cp']) == true)
    {
     
     
    			$error = 0;
     
    			if(strlen($_POST['cp']) == 1)
    			{
    				hydrus_utils_alert("Please enter 5 number for the Zip Code");
    				$error = 1;
    			}
    elseif(strlen($_POST['cp']) == 2)
    			{
    				hydrus_utils_alert("Please enter 5 number for the Zip Code");
    				$error = 1;
    			}
    			elseif(strlen($_POST['cp']) == 3)
    			{
    				hydrus_utils_alert("Please enter 5 number for the Zip Code");
    				$error = 1;
    			}
    			elseif(strlen($_POST['cp']) == 4)
    			{
    				hydrus_utils_alert("Please enter 5 number for the Zip Code");
    				$error = 1;
    			}
    			elseif(strlen($_POST['cp']) == 5)
    			{
    				$error = 0;
    			}
    }
    la fonction hydrus_utils_alert étant prédéfinis dans un autre fichier, sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Affichage d'une dialog box pour les informations importantes
    function hydrus_utils_alert($message)
    {
    	print("<script language='javascript' type='text/javascript'>alert(\"".$message."\");</script>");
    }
    je sais que la fonction hydrus alert fonctionne très bien car elle est utilisé dans beaucoup d'autre page du site web.

    donc je sais que c'est la façon dont je l'utilise qui n'est pas bonne, mais je n'arrive pas à trouver qu'elle est la mauvaise façon que j'utilise.

    merci d'avance pour votre aide


    ah oui, et je transmets à la page suivante par ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <? if($search == 1 && $error == 0) {  
    print("onload=\"window.open('test_bis.php5?pays=".$_POST['pays']."&departement=".$_POST['dep']."&cp=".$_POST['cp']."&distance=".$_POST['dist']."')\""); 
     }   
     
    ?>

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    Bonjour,

    Je pense que tu es face à un probleme PHP : c'est la fonction PHP qui n'est pas reconnué. Le message d'erreur que tu cites est généré par le serveur non ?

    Je ne suis pas expert PHP, mais je dirai que la fonction n'est pas trouvée parce que le fichier qui la contient n'est pas inclus.

    Pour plus de détail, il vaut mieux demander dans le forum PHP
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    La question que tu devrais aussi te poser c'est pourquoi vérifier côté server la validité d'un code postal. Je ne crois pas que cela soit une donnée sensible à un point tel qu'il mérite un traitement si sécurisé... Tu devrais effectuer cette vérification côté client, avec un code javascript (expression régulière par exemple), cela limiterait en plus des allers-retours inutiles avec le server.

    http://www.developpez.net/forums/d51...-postal-cette/ te donnera une bonne regexp pour cela.


    ERE
    Quand une tête pense seule, elle devient folle.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par emmanuel.remy Voir le message
    La question que tu devrais aussi te poser c'est pourquoi vérifier côté server la validité d'un code postal.
    Non ERE, ce choix est judicieux :
    tous les contrôles doivent être fait sur le serveur, même si, pour des raisons de confort, ont peut les avoir fait au préalable en JavaScript (mais celui-ci peut avoir été désactivé).
    Quant à la "sensibilité" du code postale, tout dépend du contexte : si c'est pour que la commande que tu es en train de passer arrive bien chez toi, ça peut avoir son importance

    Par contre, il est certainement possible, en PHP, de tester "longueur != 5" en une seule fois
    (un regexp étant bien sûr plus efficace)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    si c'est pour que la commande que tu es en train de passer arrive bien chez toi, ça peut avoir son importance
    En quoi vérifier que ton code postal contient 5 chiffres peut t'assurer que ta commande arrivera chez toi ???
    D'autant qui si la valeur testée contient plus de 5 chiffres, ça passe ton test

    Par contre, il est certainement possible, en PHP, de tester "longueur != 5" en une seule fois
    (un regexp étant bien sûr plus efficace)
    Pour le moins
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_POST['cp']) && preg_match('#^\d{5}$#', $_POST['cp'])){
        $error=0;
    }
    else{
        $error=1;
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Bovino Voir le message
    En quoi vérifier que ton code postal contient 5 chiffres peut t'assurer que ta commande arrivera chez toi ???
    En rien !
    Car je ne parlais pas du test, mais de la "sensibilité" d'un code postal

    Ceci dit, avec le tien non plus : tu ne vérifies pas que le code postal existe réellement

    Mais là, faut des outils complémentaires ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    @E.Bzz: je te suis sur l'aspect théorique de la vérification obligatoire côté server. Mais pour le côté pratique j'ai un avis beaucoup moins tranché; typiquement dans le cas présent c'est du PHP, et la vérification proposée ne sert qu'à afficher un message d'alerte...côté client. En aucun cas c'est une vérification qui s'effectue au niveau d'une couche métier, donc je suis plus que favorable à mettre ce code côté client. Mais je te rejoins sur le fait que cela n'empêche pas quand même d'avoir une vérification au niveau service ou autre (un CHECK CONSTRAINTS sur une colonne de la table est tout aussi valable). Et évidemment si Javascript est désactivé alors là le problème ne se pose pas, mais là encore c'est un cas relativement particulier et pas courant (heureusement pour ce forum, sinon ce serait sa mort ).

    ERE
    Quand une tête pense seule, elle devient folle.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Je vois qu'on est d'accord, mais je continue sur des détails
    Citation Envoyé par emmanuel.remy Voir le message
    Mais pour le côté pratique j'ai un avis beaucoup moins tranché; typiquement dans le cas présent c'est du PHP, et la vérification proposée ne sert qu'à afficher un message d'alerte...côté client. En aucun cas c'est une vérification qui s'effectue au niveau d'une couche métier, donc je suis plus que favorable à mettre ce code côté client.
    Ce que je disais moi est qu'il faut les 2. Car si (même exceptionnellement, mais ce n'est pas aussi sûr que ça ) le JS est désactivé, c'est quand même bien ce qui devra se passer : détection sur le serveur pour affichage côté client.
    Citation Envoyé par emmanuel.remy Voir le message
    Mais je te rejoins sur le fait que cela n'empêche pas quand même d'avoir une vérification au niveau service ou autre
    Heu ... ben justement, pour moi, c'est pas que "ça n'empêche pas", mais plutôt que "c'est le plus important" (garantie de l'intégrité des données)
    Citation Envoyé par emmanuel.remy Voir le message
    (un CHECK CONSTRAINTS sur une colonne de la table est tout aussi valable).
    Oui, sous réserve que les données soient stockées dans un système qui le permette, par exemple qu'il s'agisse bien de tables ...

    PS : je sais bien que la séparation des couches que tu évoques est une préconisation souhaitable, mais dans certains cas (le mien, par ex.) ce n'est pas toujours possible (pour plein de raisons variables), ce qui fait que je ne suis pas un jusqu'au-boutiste sur ces principes (à tord sûrement, mais la réalité quotidienne prenant généralement le pas sur le souhaitable ..... )

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    @rastacouaire : Au fait : désolé pour ces digressions

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  10. #10
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Heu ... ben justement, pour moi, c'est pas que "ça n'empêche pas", mais plutôt que "c'est le plus important" (garantie de l'intégrité des données)
    Pan sur le bec, cela m'apprendra à écrire des âneries imprécises !



    ERE
    Quand une tête pense seule, elle devient folle.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 78
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    @rastacouaire : Au fait : désolé pour ces digressions

    A+
    pas de soucis, journée très prise hier, je n'ai pas eu le temps de vous répondre.

    en tout cas merci à tous, et j'apprends des choses en même temps


    donc pour vous expliquer pourquoi je souhaites faire une vérification du code postale.

    je suis sur un projet de géolocalisation.

    les personnes recherchent des magasin où sont vendu nos produits et le résultat affiche à 20-50 ou 100 miles de distance.

    ce qui est demandé, c'est que si le code postale est vide, la liste complète de l'état s'affiche, s'il y a un code postale, on calcule par rapport à la distance.

    pour plus de simplicité et de logique, j'ai retiré la fonction de recherche par 1,2,3 ou 4 chiffre du zip code. mais dans le coup, on souhaite "forcer" les utilisateurs à rentrer les 5 chiffres d'un code postale, pour afficher ensuite tous les magasins autours de la ville demandé.

    étant donné qu'ils ont la possibilité de n'entrer aucun code postale, je souhaitais afficher un message d'alerte pour leur prévenir de rentrer 5 chiffres s'ils n'en rentre que 2 ou 3...

    et c'est pour ça que je n'avais pas fait seulement différent de 5.

    j'avais pensez sinon ne mettre que directement le code window.alert("le message") mais même cette fonctionnalité ne marche pas. donc je me doute vraiment que le soucis est dans la façon dont j'utilise le code. mais j'arrive pas à voir mon erreur =(

    sinon j'ai trouvé une alternative, mais j'aimerais comprendre où est mon erreur

  12. #12
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Re,

    Si c'est test_bis.php5 qui est appeleé par ta fontion "window.open alors les paramètres sont passés en GET et non en POST, donc tu devrais plutôt avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['cp']) == true) ... reste du code avec des $_GET
    ERE
    Quand une tête pense seule, elle devient folle.

  13. #13
    Nouveau membre du Club
    Inscrit en
    Décembre 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Décembre 2008
    Messages : 78
    Points : 31
    Points
    31
    Par défaut
    non test_bis.php5 est la page vers laquelle les données sont envoyés.

    les valeurs de cp sont sur la page courante. c'est pour ça que j'avais mis POST. car les gens rentrent la valeur et donc je la récupère par POST

Discussions similaires

  1. Fatal error: Call to undefined function: () in
    Par Shyboy dans le forum Langage
    Réponses: 10
    Dernier message: 10/07/2006, 20h43
  2. [XML] [XSLT] Fatal error: Call to undefined function xslt_create()
    Par fadex dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 05/07/2006, 12h34
  3. Réponses: 3
    Dernier message: 13/05/2006, 15h48
  4. Réponses: 3
    Dernier message: 21/03/2006, 14h21
  5. Réponses: 11
    Dernier message: 08/12/2005, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo