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

Langage PHP Discussion :

Fonction echo


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 163
    Points : 45
    Points
    45
    Par défaut Fonction echo
    Bonjour,
    Surement un problème de débutant mais je n'y voit rien ...

    J'envoi un formulaire à un script PHP avec ajax. Le script répond OK si son travaille s'est bien passé.
    La page html est codé en iso-8859-15 (meta).

    Le script fait echo "ok";
    A la réception, je fais if (reponse=="ok") ...
    ET C'EST TOUJOURS FALSE !

    Avec Firebug, je constate que reponse vaut "\r\nok"
    DONC (?) le test donnera toujours FALSE

    Pourquoi \r\n devant la string ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    a priori, je verrais bien quelque chose comme un saut de ligne dans ton fichier PHP... quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [debut du fichier]
    {saut de ligne}
    <?php
     
    // traitement du formulaire
     
    echo 'ok';
     
    ?>[fin de fichier]

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 163
    Points : 45
    Points
    45
    Par défaut
    Ben non. Le premier caractère est "<". Par contre il y a des lignes vides dans le code. Je ne comprends pas le fonctionnement de "echo" dans ton explication.

    J'ai essayé echo "ok", echo 'ok', echo ("ok"), echo('ok')

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    qu'est ce que tu ne comprend pas dans le fonctionnement de mon "echo" ??

    j'ai essayé vite fait, et je n'arrive pas à reproduire le comportement de ton script (le script php qui retourne "\r\nok") ; je pense donc qu'avant le echo, il y a une autre fonction qui retourne le "\r\n".

    pourrais tu éventuellement mettre le code de ton script ?

    j'viens de pensé à un autre truc, est ce que tu n'aurais pas la directive auto_prepend_file dans ton php.ini ??

  5. #5
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Ca serait quand même plus simple si tu copiais/collais ton code, pcq d'apres ce que tu écris, il pourrait au moins y avoir 3 erreurs (ou pas, ça dépend des parties qui sont en PHP et celles qui sont en JS)

    PS 1 : utilises les balises [ code] [/code ] (sans les espaces) et glisses ton code entre elles
    PS 2 : pour le \r\n une méthode simple est d'écrire
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    trim($maChaineDeCaracteres);

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 163
    Points : 45
    Points
    45
    Par défaut
    1) ce que je ne comprends pas dans echo c'est l'influence de l'environnement. A priori on s'attend à ce qui est entre guillemets soit renvoyé. Non ?
    2) il n'y aurait pas un problème de charset ?
    - page d'envoi en iso-8859-15
    - envoi ajax en utf-8 (forcé je crois)
    - réception en ?
    - renvoi ajax
    J'ai mis un header("content-type=text/plain") au début mais pas d'influence.
    3) le code est énorme. Je ne peux pas le mettre ici
    4) j'ai vérifié avec un hexa editeur les modules dès fois qu'il y aient des mauvais caractères au début ...
    5) dans php.ini auto_prepend_file =
    rien défini
    6) la fonction qui envoi:
    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
     
    function authentification()
        {
            $('#formulaire').ajaxSubmit(
            {
                type:'POST',
                url:'login.php',
     
                success: function(reponse,status)
                {                
                    if (reponse=="\r\nok") window.location.href="accueil.php"; 
                    else
                    {   
                        alert(reponse);       //pour l'instant
                        $("#formulaire").clearForm();
                    }
                },
                error: function(requete,iderror)
                {
                    alert("erreur: " + iderror + " " + requete);
                }
            });
            return false;
         }

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    ce que je ne comprends pas dans echo c'est l'influence de l'environnement. A priori on s'attend à ce qui est entre guillemets soit renvoyé. Non ?
    si par exemple on a quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    // traitements...
    ?>
    hello 
    <?php
    echo 'world';
    ?>
    il n'y a certe qu'un seul "echo" mais le script affichera : hello world

    ce que je voulais donc dire c'est que peut être il y aurait pu avoir un saut de ligne (en dehors des balises php, ou retourné par une fonction) avant le "echo"

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 163
    Points : 45
    Points
    45
    Par défaut
    eh bien tu avais raison ...
    mon code php commence comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    require_once("toto.php");
    ...
    et toto.php alors ? eh bien il se terminait comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ?>
    ligne vide
    ligne vide
    Comment éviter ce genre de fautes ?
    Comment les détecter plus rapidemment ... ?
    Pourquoi est-ce aussi sensible ?
    Questions naïves je supposent ...
    En tout cas merci à toi

  9. #9
    Nouveau membre du Club
    Inscrit en
    Septembre 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 28
    Points : 34
    Points
    34
    Par défaut
    pour ce qui est des lignes en fin de fichiers, tu peux ne pas mettre de balise "de fin de script" (celle ci "?>")

    quand l'interpréteur PHP rencontrera la fin du fichier il "fermera" le script tout seul...

    et pour ce qui est du début de fichier... je connais pas "d'astuce", mais c'est moins compliqué de vérifier que le <?php est bien au tout début du fichier.

    et puis je ne dirais pas que c'est sensible, c'est comme ça, faut le savoir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Fonction echo'' ne s'affiche pas.
    Par Velkan.nexus dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/10/2007, 16h17
  2. Fonction echo ne marchant pas
    Par aygouin dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2007, 21h38
  3. Problème avec la fonction echo
    Par pas30 dans le forum Langage
    Réponses: 1
    Dernier message: 26/12/2006, 04h19
  4. fonction echo et concaténation
    Par Athorus dans le forum Langage
    Réponses: 7
    Dernier message: 18/07/2006, 15h07
  5. Signification \t dans fonction echo ou print
    Par webrider dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2006, 13h44

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