Sehr mysteriöses Problem (Zauberstring)!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Sehr mysteriöses Problem (Zauberstring)!

    Ich habe hier einen Zauberstring mit Namen $evilstring.


    PHP Code:
    $evilstring 'X';
    var_dump($evilstring); //ergibt string(1) "X"
    $string 'Hallo';
    echo 
    $string// ergibt "Hallo"
    echo $string$evilstring// ergibt Zeilenumbruch + "HalloX" 
    Habe mich im Hexeditor versichert, dass am Anfang ein Zeilenumbruch steht (0D0A).
    Das Problem ist völlig unerwartet in einem schon lange funktionierenden generierten Javascript aufgetreten. Dort definiere ich einige Strings dynamisch, also steht da z. B.:


    PHP Code:
    alert("<?php echo getString('ROFL'); ?>");
    Wie man hier sieht, gebe ich den String (mein $evilstring) mit einer Funktion zurück, aber wie gesagt, zeigt var_dump davon, dass er eben nicht mit einem Zeilenumbruch anfängt.

    Trotzdem steht in dem JS dann immer ein Zeilenumbruch. Hängt man den $evilstring an einen anderen String, beginnt das Ergebnis auch immer mit einem Zeilenumbruch. Das versteh ich einfach nicht.

    Habt ihr Ideen?
    Last edited by CadEx; 06-07-2006, 14:12.
    PHP Code:
    function verrecke_elend()
    {
        die(
    'Aaargh!');


  • #2
    zeig einfach deine function getString.
    vermutlich liegt der problem in doppeltem echo
    Slava
    bituniverse.com

    Comment


    • #3
      Das kann ich ausschließen.
      Da es sich um Code in meiner Firma handelt, darf ich die Funktion nicht veröffentlichen.
      Aber sie liefert eigentlich nur den Wert eines Arrays bei dem übergebenen assoziativen Schlüssel zurück oder "//UNDEFINED//, wenn er nicht gefunden wurde.

      Das Problem ist wie gesagt plötzlich aufgetreten und an der Funktion wurde auch nix gemacht. Kein doppeltes echo, sondern nur ein return $arr[$index];
      PHP Code:
      function verrecke_elend()
      {
          die(
      'Aaargh!');

      Comment


      • #4
        Original geschrieben von CadEx
        Da es sich um Code in meiner Firma handelt, darf ich die Funktion nicht veröffentlichen.
        Dann kann man dir kaum helfen.
        Kein doppeltes echo, sondern nur ein return $arr[$index];
        Schleife es nochmal durch trim() und erzähl den Leuten in deiner Firma, es habe sich immernoch nichts geändert, Fehler kommen, Fehler gehen.

        Comment


        • #5
          dann zeig mir weinigsten ein Beispiel wo es wirklich nicht funktioniert!!!
          Slava
          bituniverse.com

          Comment


          • #6
            Original geschrieben von CadEx
            Da es sich um Code in meiner Firma handelt, darf ich die Funktion nicht veröffentlichen.
            Dann könnt ihr das Problem ja auch gerne innerhalb eurer Firma lösen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Comment


            • #7
              Re: Sehr mysteriöses Problem (Zauberstring)!

              Original geschrieben von CadEx
              Habt ihr Ideen?
              Wird wohl der dynamische Javagenerator sowas machen, oder ein prettyprinter, oder ein templatesystem. Dass es vom php kommt, glaube ich nicht. Es ist möglich, dass Du nicht vollen Zugang zum firmeninternen Code hast oder so und deswegen nicht vorwärts kommst.

              CRLF sind grundsätzlich im HTML irrelevant bzw. whitespace. Ein CRLF (nicht \n\r) im alert-Argument von Javascript machte bei mir dass der Alert-Aufruf nicht funktionierte.

              Comment


              • #8
                Re: Re: Sehr mysteriöses Problem (Zauberstring)!

                Original geschrieben von tcpip
                Ein CRLF (nicht \n\r) im alert-Argument von Javascript machte bei mir dass der Alert-Aufruf nicht funktionierte.
                Natürlich - weil Javascript zeilengrenzenüberschreitende Literale nicht akzeptiert.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Comment


                • #9
                  @topicstarter
                  Ergibt das true oder false ?
                  PHP Code:
                  if(strlen($string) == strlen(trim($string))){
                      echo 
                  'True';
                  }else{
                      echo 
                  'False';

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Comment

                  Working...
                  X