Henrike: Link in Tabelle speichern

Hallo,

folgende Situation: Ich moechte mit ASP den Inhalt einer Email in einer Tabelle speichern, in einem Feld vom Typ Text.

Der Query sieht so aus:

  
query = "INSERT INTO tblEmail (Email_To, Email_From, Email_Subject, Email_Content, Email_Date, Email_Visibility) "  
query = query & "VALUES ('" & to & "', '" & from & "', '" & subject & "', '" & content & "', '" & Now & "', '3')"  
Conn.Execute query  

Der Content muss sich also in einfachen Hochkommata befinden ('). Als Inhalt moechte ich unter anderem einen Link verschicken. Der Link sieht so aus:

  
<a Class = 'normal' href = 'Javascript:popup(400, 600, "bookDetail.asp?id=x");'> see request details </a>  

Jedes einfache Hochkomma in diesem String erscheint aber als Ende des Contents im Query. Die Hochkomma von Class = 'normal' kann ich in ASP mit doppelten Anfuehrungszeichen austauschen, auch die von href = '...', leider funktioniert das Javascript-Popup nur, wenn die URL auch in Anfuehrungszeichen steht. Dann erscheint der Javascript-Befehl allerdings als beendet.

  
content = "<a Class = ""normal"" href = ""Javascript:popup(400,600,""bookDetail.asp?id=" & id & """);""> see request details </a>"  

Gibt es noch ein anderes Zeichen, mit dem man den Link vom Javascript-Befehl unterscheiden kann?

  1. echo $begrüßung;

    Jedes einfache Hochkomma in diesem String erscheint aber als Ende des Contents im Query. Die Hochkomma von Class = 'normal' kann ich in ASP mit doppelten Anfuehrungszeichen austauschen, auch die von href = '...', leider funktioniert das Javascript-Popup nur, wenn die URL auch in Anfuehrungszeichen steht. Dann erscheint der Javascript-Befehl allerdings als beendet.
    Gibt es noch ein anderes Zeichen, mit dem man den Link vom Javascript-Befehl unterscheiden kann?

    Das ist nur der Versuch einer Umgehung des Problems. Der bringt dir nicht viel, weil du bei nächster Gelegenheit wieder darüber stolpern wirst. Informiere dich stattdessen in der Dokumentation deines Datanbanksystems über die Notation von Strings und dort besonders über die Notation von Sonderzeichen wie ' und " in Strings. Diese Zeichen so zu notieren, dass sie ungefährlich werden, nennt man Maskieren oder Escapen.

    echo "$verabschiedung $name";

    1. da ist mir grad noch was ganz cleveres eingefallen:
      &quot; ist ja auch ein Anfuehrungszeichen, dass von SQL nicht fehlinterpretiert wird... So gehts.

        
      content = "<a Class = ""normal"" href = ""Javascript:popup(400, 600, &quot;bookDetail.asp?id=" & id & "&quot;);""> see request details </a>"  
      
      
      1. Hallo!

        da ist mir grad noch was ganz cleveres eingefallen:
        &quot; ist ja auch ein Anfuehrungszeichen, dass von SQL nicht fehlinterpretiert wird... So gehts.

        Du arbeitest komplett am Problem vorbei. Beschäftige dich lieber mit dem richtigem Escapen bei deinem DBMS.

        mfg
          frafu