mysql_error + JavaScript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mysql_error + JavaScript

    Hallo Zusammen ,

    neuer Tag, neuer Ansatz, neues Problem:

    Ich möchte dem Anwender Datenbank-Fehlermeldungen per JavaScript-Befehl "Alert" ausgeben.
    Funktioniert bei den meisten Fehlern auch einwandfrei, ABER wenn er den von mir angegebenen Datenbanknamen nicht findet, dann kollidiert PHP und JavaScript.
    Da "mysql_error" den Datenbank-Namen in einfache Anführungszeichen setzt und so in die JavaScript-Alert-Meldung schreibt. Dadurch läuft JavaScript auf Fehler!

    Noch einmal in hochdeutsch:
    PHP-Code:
    //PHP-Script

    $dbname "otto";   // Name der Datenbank


    //Ausgabe Fehlermeldung über JavaScript-Befehl "Alert"
    if (mysql_errno())
        {
        echo 
    "<script language='javascript' type='text/javascript'>
                  <!--
                  alert('" 
    mysql_errno() . ":" mysql_error() . "!');
                  //-->
                  </script>\n"
    ;
        exit();
        } 
    Wenn ich jetzt den Datenbanknamen ändere (z.B. in berta) und das PHP-Script läuft auf einen Fehler (mysql_errno), bekomme ich im Browser folgende JavaScript-Fehlermeldung:
    Fehler: ')' erwartet
    Der Quelltext dazu sieht wie folgt aus:
    PHP-Code:
    <!-- HTML-Quelltext -->
    <
    script language='javascript' type='text/javascript'>
    <!--
    alert('1049:Unknown database 'berta'!');
    //-->
    </script
    Die Fehlermeldung läuft auf wegen den beiden Anführungszeichen, die der PHP-Befehl mysql_error() selber setzt:
    alert('1049:Unknown database [COLOR=red]'[/COLOR]berta[COLOR=red]'[/COLOR]!');

    Weiß jemand wie man das umgehen kann?
    Für Eure Hilfe im voraus vielen Dank!

    Gruß
    Jofris

  • #2
    hi

    ersetze doch die Anfuehrungsstriche durch etwas anderes oder durch \'

    so sollte es gehen:

    PHP-Code:
    $error_string=str_replace ("'""\\\\\\'""mysql_error() ");
    alert('" . $error_string . ":" . $error_string . "!'); 
    gruss von pau

    Kommentar


    • #3
      upps

      achtung ich hatte in den text backslashes eingebaut, die werden aber wohl geloescht!

      also :
      PHP-Code:
      str_replace("'","backslashbackslash'",... 
      gruss von pau

      Kommentar


      • #4
        so jetzt richtig ?? du mußt nur genug einbauen

        Kommentar


        • #5
          jo jetzt ist richtig

          wieviele brauche ich denn ??

          test: \\\\

          gruss von pau und danke fuers verbessern
          Zuletzt geändert von pauino; 21.11.2002, 15:07.

          Kommentar


          • #6
            Vielen, vielen Dank Pauino und MoRtAlAn,

            dank Eurer Hilfe habe ich es hinbekommen

            Mußte nur vorher noch mysql_error in eine Variable lesen und diese dann anstelle im str_replace-Befehl verwenden.

            Seit dem ich in diesem Forum bin, verlangsamt sich der Zuwachs meiner grauen Haare

            Vielen, vielen Dank noch mal !!!!!
            Gruß
            Jofris

            Kommentar

            Lädt...
            X