Not logged in. · Lost password · Register
Forum: PHP & Datenbanken Codeschnipsel RSS
Codeschnipsel: mysql_real_escape_string enhanced :)
Shin #1
Member since Aug 2006 · 9 posts
Group memberships: Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
Subject: Codeschnipsel: mysql_real_escape_string enhanced :)
Hey!
Ich hab mich mal eine Stunde hingesetzt und einen Codeschnipsel geschrieben. Er basiert auf der Funktion mysql_real_escape_string.

$var - der String/Array der ,,gesichtert´´ werden soll
$quote_string - [optional] wird vor und nach $var eingefügt. Empfehlung: " oder '
$link - [optional] Link-Identifier der mysql-connection
$stripslashes - [optional] Bestimmt ob die stripslashes-Funktion angewendet werden soll. Falls $stripslashes nicht gesetzt wird, wird get_magic_quotes_gpc überprüft und falls 'magic_quotes' aktiviert sind wird automatisch stripslashes ausgeführt.

  1. /* mysql_smart_escape - enhances mysql_real_escape_string
  2. * Written by Max 'damaxxed' Vogler
  3. * Written exclusively for www.php4you.de
  4. */
  5. function mysql_smart_escape($var, $quote_string = "",$link = null, $stripslashes = null)
  6. {
  7.     if($stripslashes == null)
  8.         $stripslashes  = get_magic_quotes_gpc();
  9.        
  10.     if(is_array($var))
  11.     {
  12.         $ret = Array();
  13.         foreach($var as $k => $v)
  14.         {
  15.             $ret[$k] = mysql_smart_escape($v, $quote_string, $link);
  16.         }
  17.     } else
  18.     {
  19.         if ($stripslashes)
  20.             $ret = stripslashes($var);
  21.        
  22.         if(!is_numeric($var))
  23.         {
  24.             if($link == null)
  25.                 $ret = $quote_string . mysql_real_escape_string($var) . $quote_string;
  26.             else
  27.                 $ret = $quote_string . mysql_real_escape_string($var, $link) . $quote_string;
  28.         }
  29.         else
  30.             $ret = (int) $var;
  31.     }
  32.     return $ret;
  33. }

Anwendung:

  1. $safe_var = mysql_smart_escape($unsafe_var);
  2. $safe_get_vars = mysql_smart_escape($_GET); # unterstütz Arrays ...
  3. $safe_arr = mysql_smart_escape(Array($_GET, $_POST)); # ... mit mehreren Dimensionen
  4. ...

Zusätzliche Funktionen:
Als Zusatz noch zwei kleine Funktionen die die Arbeit mit mysql_smart_escape erleichtern:

1) mysql_se() - Keine richtige Funktion einfach nur die Kurzform für die schreibfaulen ;)
function mysql_se($var, $quote_string = null,$link = null, $stripslashes = null)
{
    return mysql_smart_escape($var, $quote_string, $link, $stripslashes);
}

2) mysql_reference_escape() - Durch den Verknüpfungs-Operator ( k.a. wie man den &-Operator nennt :D also bitte berichtigen!!) wird zusätzliche schreibarbeit erspart:
function mysql_reference_escape(&$var, $quote_string = null,$link = null, $stripslashes = null)
{
$var = mysql_smart_escape($var, $quote_string, $link, $stripslashes);
}

Also falls ihr irgendwelche Fehler findet oder konstruktive Kritik habt - bitte antwortet!!

~ Max

PS: falls es euch verwirrt,ich habe 48943186486 Nicknamen - meine Aktivsten sind aber: damaxxed, shin und tracer

PSS: Dieser Code wurde nur sehr 'dünn' getestet. Ein kleiner Test der Mods wäre sicher sinnvoll :)
Avatar
Janek (Administrator) #2
User title: Admin
Member since Aug 2006 · 125 posts · Location: Potsdam
Group memberships: Administratoren, Cehmes-Entwickler, Mitglieder
Show profile · Link to this post
DANKE!

Zu finden ist der Codeschnipsel nun unter http://www.php4you.de/codeschnipsel,view.html?snippet=26

mfG,
foxx
>> PHP4You
>> Against ICQ
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please note the verification code from the picture into the text field next to it.
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
This board is powered by the Unclassified NewsBoard software, 20090606-dev, © 2003-8 by Yves Goergen
Current time: 2012-02-05, 19:52:47 (UTC +01:00)