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 :

le retour à la ligne qui change tout


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut le retour à la ligne qui change tout
    bonjour,

    j'ai eu, dans un script de chat, une erreur qui faisait que le message le plus récent était incorrectement supprimé, j'ai identifié cette erreur et l'ai corrigée.

    depuis, les messages les plus anciens ne sont plus supprimés.

    mon script qui contenait l'erreur:

    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
    <?php
    if($msg!=""){
    Function lapagemagique2($contenu){
    $fp = fopen("dial","w");
    $r = fwrite($fp,"$contenu"); 
    fclose($fp); 
    }
    Function lapagemagique3(){
    $max="15";
    $fcontents = file("dial");
    $lines=count($fcontents);
    if ($lines<$max){$startline=0;}else{$startline=$lines-$max;}
    for ($i = 0; $i <= $max; $i++) {$contenu.= $fcontents[$i+$startline];}
    return $contenu; 
    }
    lapagemagique2(lapagemagique3()."<font class=lapagemagique1>".date("H:i")." : <font class=lapagemagique2>".$name." // l'erreur se trouvait ici.
    <font size=2 color=$color> : ".controle(stripslashes($msg))."<br>");
    }
    ?>
    le script rectifié:

    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
    <?php
    if($msg!=""){
    Function lapagemagique2($contenu){
    $fp = fopen("dial","w");
    $r = fwrite($fp,"$contenu"); 
    fclose($fp); 
    }
    Function lapagemagique3(){
    $max="15";
    $fcontents = file("dial");
    $lines=count($fcontents);
    if ($lines<$max){$startline=0;}else{$startline=$lines-$max;}
    for ($i = 0; $i <= $max; $i++) {$contenu.= $fcontents[$i+$startline];}
    return $contenu; 
    }
    lapagemagique2(lapagemagique3()."<font class=lapagemagique1>".date("H:i")." : <font class=lapagemagique2>".$name."<font size=2 color=$color> : ".controle(stripslashes($msg))."<br>"); // l'erreur est corrigée.
    }
    ?>

    pouvez-vous me dire ce qui cause cela, svp?

    je n'y comprends plus rien!!!

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    les chaines de caractères en " ou ' ne s'étendent pas au delà de la fin d'une ligne, l'erreur bête mais qui arrive souvent

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    merci de m'avoir répondu, mais je ne comprends pas ce que tu veux dire...

    pourrais-tu être plus explicite, stp?

  4. #4
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    php interprète les lignes une par une donc si tu ouvre un " et que tu le ferme pas dans la même ligne ça va poser des problèmes.

    un petit tour sur la doc pour comprendre: http://php.net/string

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    mais... ils sont tous fermés, dans mon script, non?

  6. #6
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 292
    Points
    292
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lapagemagique2(lapagemagique3()."<font class=lapagemagique1>".date("H:i")." : <font class=lapagemagique2>".$name." // l'erreur se trouvait ici.
    <font size=2 color=$color> : ".controle(stripslashes($msg))."<br>");
    Là tu a un saut de ligne après le commentaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lapagemagique2(lapagemagique3()."<font class=lapagemagique1>".date("H:i")." : <font class=lapagemagique2>".$name."<font size=2 color=$color> : ".controle(stripslashes($msg))."<br>"); // l'erreur est corrigée.
    Alors que là tu n'a plus de saut de ligne après $name." , c'est ce qui change tout, si tu veut mettre ta chaine sur plusieurs ligne tu aurais pu ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    lapagemagique2(lapagemagique3().
    "<font class=lapagemagique1>".date("H:i")
    ." : <font class=lapagemagique2>".$name
    ."<font size=2 color=$color> : ".controle(stripslashes($msg))."<br>"); // l'erreur est corrigée.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    en fait, justement, c'est en une seule ligne que je dois l'avoir...

    mais, bizarrement, en deux lignes mal fermées, le plus ancien message était en partie effacé alors que depuis que je l'ai en une seule ligne, plus rien ne s'efface.

    c'est là qu'est mon problème...

Discussions similaires

  1. Variable de session qui change toute seule
    Par mijean dans le forum Langage
    Réponses: 5
    Dernier message: 21/05/2007, 14h42
  2. Ip qui change toute seul , je veux stoper..?
    Par loobstyle dans le forum Windows XP
    Réponses: 2
    Dernier message: 19/06/2006, 08h25
  3. Retour à la ligne qui compte pour 2 caractères!
    Par Pragmateek dans le forum C++
    Réponses: 5
    Dernier message: 04/04/2006, 16h59
  4. Un retour à la ligne qui fait tout foirer !!!!
    Par sami_c dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 27/02/2006, 10h20
  5. Réponses: 4
    Dernier message: 01/10/2005, 13h52

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