Brombeermilchtrinker: NEUE FRAGEN

Beitrag lesen

Hallo dedlfix!

Danke für die rasche Beantwortung! Leider bin ich jetzt als wirklicher PHP- und MySql-Newby etwas überfordert.

Die Reihenfolge wäre zu ändern. Zuerst sollten die eventuallen Auswirkungen von Magic Quotes entfernt werden, da dies als letztes hinzugefügr wurde, bevor PHP die Daten an den Script übergeben hat. Ich würde das mit der im Handbuch angeführten Funktion generell und für alle Eingabedaten einmalig am Scriptanfang durchführen. Das kann man dann leichter entfernen, wenn man später auf PHP6 umsteigt.

Das ist mir leider zu hoch, um es zu verstehen. :-( Mein bisheriges Wissen stammt unter anderem von der entsprechenden mysql_real_escape_string-Seite im php-Handbuch.

Also wenn ich den vorigen von mir geschriebenen Code bezüglich Deiner Hinweise ändere, würde er jetzt mal so aussehen:

  
if(get_magic_quotes_gpc())  
 {$beispielwert=stripslashes($_POST['beispielwert']);}  
else  
 {$beispielwert=$_POST['beispielwert'];}  
if(!is_numeric($beispielwert))  
 {$vorname="'".mysql_real_escape_string($beispielwert)."'";}  

...und anschließend das Speichern in die DB.

Das Anlegen einer extra-Variable ist immer noch ein unnötiger Zwischenschritt.

Das hab ich aber jetzt in der else-Anweisung wieder drin. :-( Für den Fall, daß die if-Bedingung _nicht_ erfüllt ist, _muß_ ich die Anweisung doch schreiben, oder?

ist eine [link:/archiv/2006/4/t128030/#m826560@title="grobe Wildsau"]. Es ist nicht unbedingt nötig, diese Funktion anzuwenden.

Also die entsprechenden von Dir gelinkten Postings hab ich jetzt gelesen und verstehe, warum [code lang=php]strip_tags()

  

> Der Datenbank sind die Tags egal. Bei der Ausgabe solltest sowieso dem Ausgabemedium entsprechend kodieren, so dass die Tags keinen Schaden anrichten können. Für HTML gibt es da htmlspecialchars().  
  

> SQL ist eine Text-Schnittstelle. Auch Zahlenwerte werden als String übertragen und müssen geparst werden. Es ist dabei unerheblich, ob sie in '' oder "" oder ohne dastehen. Du kannst sie also generell auch wie die anderen benutzereingegebenen Stringwerte behandeln.  
  
Also was den 2. Absatz betrifft, verstehe ich nicht, was Du damit sagen willst. Ich hab die Anweisung genau so geschrieben wie in der oben von mir verklinkten php-Handbuch Seite.  
  

> Meine Empfehlung zusammengefasst lautet:  
> - Magic Quotes-Behandlung am Scriptanfang  
> - wenn nötig Plausibilitätsprüfung der eingegebenen Daten  
> - SQL-Statements in der Form:  
  
Hmmmm .... also \_falls\_ Du die Zeit und Energie hast, bitte ich Dich, mir einen konkreten Beispielcode zu geben. ich glaub, wenn ich den php\_Code vor mir habe und mich dann von Zeile zu Zeile mit den Funktionen auseinandersetze, lerne ich es am Besten.  
  
Bleiben wir dabei, daß über ein Formular per POST-Anweisung die Variable " $beispielvariable " übergeben wird. Was ist der kürzeste, simpelste und einfachste php\_Code, um zu erreichen, daß  
  
1\.) KEINE html-Tags gespeichert und somit ausgegeben werden, aber zB eine Eingabe wie " 3>4 " oder " Beispiel -> " gespeichert und ausgegeben werden?  
  
2\.) KEINE html-Tags gespeichert werden, aber alles, wass mit www oder http:// anfängt, bei der Ausgabe als anklickbarer Link ausgegeben wird?  
  
3\.) zusätzlich <b>, <i> und <u> erlaubt sind?  
  
In allen 3 Fällen soll die Speicherung der Daten halt gesichert sein gegen SQL-Injection und andere mögliche Bösartigkeiten.  
  
Mit freundlichen Grüßen  
  
Der Brombeermilchtrinker  
  
PS : Wie gesagt, ich bin da \_echt\_ ein Newby!!