SQL-Injection

@Dennis
Bin genau deiner Meinung daher versteh ich nicht warum sich manche so dagen wehren neues zu verwenden. Warscheinlich der Lehrnaufwand. Den beim alten weiß man ja schon wie es verwendet wird beim neuen muß man es erst wieder dazu lehrnen.

Hi Sasser

Ich hab dir Schnell mal ein kleines Beispiel geschrieben

PHP:
<?php 
# Zugangsdaten Definieren Statische Variable
define("dbname", "");                    #Datenbank Name
define("dbServ", "localhost");      #Datenbank Server
define("dbuid", "");                         #Benutzename  
define("dbPw", "");                         #Password
define("prefix", "my_");                 # Tabellen voranstellen 

# Klasse für die Verbindungs Daten
class connect_db {
	
	private $dbhost=dbuid; 	#Benutzename
	private $pw=dbPw;		#Password
	private $serv=dbServ;		#Datenbank Server
	private $dbname=dbname;	#Datenbank Name
	
	private $db_obj = null;  			#Datenbank Objekt PDO
	public $error;						#Fehler Varibale
	
	public function __construct() {

		$db="mysql:dbname=".$this->dbname.";host=".$this->serv;  #mysql:dbname=Datenbankname;host=localhost
		
		try{
			 $this->db_obj = new PDO($db, $this->uid, $this->pw);     #Hier wird die Verbindung aufgebaut
		}
		catch (PDOException $e)
        {
            $this->error='Fehler beim Öffnen der Datenbank: ' . $e->getMessage();
            echo $this->error; #Fehler ausgabe
        } 
			
	 }// Ende construct
	
	public function get_db()
    {
         return $this->db_obj;
    }  
	
	
	
}

# Anwendungs Beispiel

$obj = new connect_db;
$db= $obj->get_db();

$sql="SELECT name FROM user WHERE sessionID=:sessionID LIMIT 1"; # Sql Befehl vorbereiten
$stmt = $db->prepare($sql); # Sql befehl in den Speicher laden
$stmt->bindParam( ':sessionID', $sessionID); #Werte an den Sql Befehl übergeben
$stmt->execute(); # Befehl an die Datenbank senden

#Daten ausgeben
$data = $stmt->fetch(PDO::FETCH_OBJ); #Objekt der Datenabfrage $data zuweisen
if (is_object($data)){ echo $data->name; } #Ergebnis der Abfrage am Bildschirm ausgeben

?>

Weitere Diskusionen zu dem Thema findest unter:
http://www.easy-coding.de/mysql-injection-wie-am-besten-schuetzen-t4102.html
Oder ein Tutorials wo die Handhabung erklärt wird unter:
http://www.easy-coding.de/wiki/php/einfuehrung-in-pdo.html

Mfg Splasch
 
Zuletzt bearbeitet:
Zurück