devian: Textarea mit AJAX in Form einer Variable an PHP Script übergeben

Hallo alle zusammen ich bin mitlerweile am verzweifeln, weil ich echt nicht mehr weiter weiß. Ich habe schon nun mehr als 3 Stunden zu dem Problem google befragt aber leider ohne possitives Ergebniss. Ich bin leider, was JAVA und AJAX angeht ein totaller Anfänger und würde euch um etwas ausführlichere Hilfestellung bitten.

Zu meinem Problem:
Ich habe eine Textarea:

  
<form>  
<textarea id='notizen' rows="9" cols="66" name="text"> </textarea>  
<div id='Wellcome_box_ajax_notizen'> </div>  
<input onclick='Wellcome_box_notizen_function()' value='Speichern'/>  
  
</form>  

Beim Klick auf den INPUT Button wird eine AJAX funktion ausgelöst - denn mit AJAY wollte ich die Eingabe des Users in die Textarea an ein PHP-Script übergeben. Das versuche ich hier:

  
function ajaxFunction_notizen(){  
 var ajaxRequest;  
  
 try{  
  ajaxRequest = new XMLHttpRequest();  
 } catch (e){  
  try{  
   ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");  
  } catch (e) {  
   try{  
    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");  
   } catch (e){  
    alert("Your browser broke!");  
    return false;  
   }  
  }  
 }  
 ajaxRequest.onreadystatechange = function(){  
  
  
  if(ajaxRequest.readyState == 4){  
   var ajaxDisplay = document.getElementById('Wellcome_box_ajax_notizen');  
   ajaxDisplay.innerHTML = ajaxRequest.responseText;  
  }  
 }  
  
 var notizen = document.getElementById('notizen').value  ;  
 var queryString = "?notizen=" + notizen;  
 var jetzt = new Date();  
 var v = jetzt.getTime();  
 ajaxRequest.open("POST", "Wellcome_box_ajax_notizen.php" + queryString, true);  
 ajaxRequest.send(null);  
  
  
}  

Und in dem php-script will ich die Variable, also den Inhalt des Textfeldes, mit $notizen=$_GET['notizen']; verwenden können. Anschließend führe ich mit der Variable $notizen eine Datenbankeingabe durch. Wenn ich nun aber in dem Textfeld folgendes schreibe:
Zeile 1
Zeile 2
Zeile 3
So wird die Variable $notizen ohne die Ansätze/Zeilenumbrüche übergeben. Somit steht in der Datenbank:
Zeile 1Zeile 2Zeile 3

Es geht zwar, jeddoch werden Absätze nicht mitübergeben. Es wird also kein Zeichen, wie /n oder sonstiges, in die Datenbank mitübergeben!
Ich denke, dass es damit zusammenhängt, dass der Inhalt des Textfeldes an die URL angehängt wird.

Ich bin euch für jede Art der Hilfe sehr sehr dankbar.
mfg devian

  1. Hi,

    Es geht zwar, jeddoch werden Absätze nicht mitübergeben. Es wird also kein Zeichen, wie /n oder sonstiges, in die Datenbank mitübergeben!

    Und wie *genau* hast du das ueberprueft?

    Ich denke, dass es damit zusammenhängt, dass der Inhalt des Textfeldes an die URL angehängt wird.

    Ein URL-gerechte Kodierung solltest du dort selbstverstaendlich noch vornehmen.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Es geht zwar, jeddoch werden Absätze nicht mitübergeben. Es wird also kein Zeichen, wie /n oder sonstiges, in die Datenbank mitübergeben!

      Und wie *genau* hast du das ueberprueft?

      Ich habe einfach mit phpmyadmin in die Datenbank geschaut

      Ich denke, dass es damit zusammenhängt, dass der Inhalt des Textfeldes an die URL angehängt wird.

      Ein URL-gerechte Kodierung solltest du dort selbstverstaendlich noch vornehmen.

      und genau hier kann ich mir leider nicht alleine helfen )=
      Wie genau mache ich das denn?

      1. Lieber devian,

        Ich habe einfach mit phpmyadmin in die Datenbank geschaut

        und hast Du auch einmal probiert, ob Du mit gefälschten GET-Anfragen unerlaubte DB-Anfragen provozieren kannst, um so beispielsweise die DB hacken zu lassen?

        Nur mit phpMyAdmin wirst Du nicht weiter kommen. Benutze Datei-Funktionen, in die Du die Request-Daten direkt hineinschreibst, um dann später die Dateiinhalte zu analysieren. Soetwas nennt man Debugging.

        Ein URL-gerechte Kodierung solltest du dort selbstverstaendlich noch vornehmen.

        und genau hier kann ich mir leider nicht alleine helfen )=
        Wie genau mache ich das denn?

        Was hat denn die Suchmaschine Deines Vertrauens zu den Dir gegebenen Stichworten (wir erinnern uns: "URL-gerechtes Kodieren") gefunden? Ich frag jetzt einfach mal bei Google nach: "URL-gerechtes Kodieren" bei Google

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Ich habe einfach mit phpmyadmin in die Datenbank geschaut

          und hast Du auch einmal probiert, ob Du mit gefälschten GET-Anfragen unerlaubte DB-Anfragen provozieren kannst, um so beispielsweise die DB hacken zu lassen?

          Danke für deine Hilfe sie hat mir sehr geholfen. Allerdings verstehe ich nicht, was du mir mit der Aussage daoben sagen willst. Ist mein Vorhaben ein Risiko, weil es eine Angrifsfläche für Hacker bietet?

          1. Lieber devian,

            Danke für deine Hilfe sie hat mir sehr geholfen.

            freut mich. Hoffentlich hast Du auch verstanden, dass die Hinweise hier im Forum nicht immer die Lösungen selbst sind, sondern dass man hier Stichworte erhält, mit denen man dann weiter forscht, um dann eine Lösung zu finden.

            Allerdings verstehe ich nicht, was du mir mit der Aussage daoben sagen willst. Ist mein Vorhaben ein Risiko, weil es eine Angrifsfläche für Hacker bietet?

            Ich bezog mich auf folgende Aussage:

            Und in dem php-script will ich die Variable, also den Inhalt des Textfeldes, mit $notizen=$_GET['notizen']; verwenden können.

            Wenn Du so einfach den Inhalt von $_GET in die DB schreibst, dann ist das Problematisch. Dazu braucht es auch eine kontext-gerechte Kodierung (Achtung! wieder so ein Stichwort). In einer DB-Anfrage oder -Abfrage gibt es auch bestimmte Steuerzeichen, die natürlich entsprechend interpretiert würden, wenn Du die Eingaben unmaskiert in der DB abgelegt hast.

            Man spricht bei solchen Sachen davon, dass Daten in einen anderen Kontext übergehen, was eine entsprechende "Behandlung" (sprich Umkodierung) der Daten erfordert. Stelle Dir nur einmal vor, ein User tippt in ein Gästebuch folgende "Nachricht":

            <script type="text/javascript">window.open('http://www.example.org/gefährliche/inhalte.html');</script>

            Und jetzt stelle Dir vor, dieses Beispiel von mir hier würde von Deinem Browser nicht dargestellt, sondern interpretiert werden... wie gut, dass die hiesige Forensoftware das obige Code-Beispiel im Kontext "HTML" entsprechend kodiert, sodass aus "<script..." eben "&lt;script..." wird. Im übertragenen Sinne gilt dasselbe für Deine DB-Einträge.

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)