• Willkommen, Gast!
  • Freitag, 30. Oktober 2020, 02:08:36
Position: Home » Allgemeines » Allgemeines Board » MySQL Klasse...
Antworten
Thema: MySQL Klasse... [Seite 1 ]

Kein neuer Beitrag KingGO , 16.01.2012, 17:11
Beitrag #1   

IP: n/a
Rang: * * * * * * *
Registrierung: 17.05.2007, 20:49
Homepage: http://www.donotart.de
Wohnort: Magdeburg
 

Forum-Gott mit 404 Punkte, 316 Beiträge
Hallo,

habe ein Problem mit einer MySQL-Klasse und ich denke einige von euch können mir da am schnellsten
weiterhelfen. Ich finde diese Klasse schön und habe sie nach meinen Bedürfnissen angepasst.

Mein Problem ist es eine erneute Abfrage innerhalb einer Schleife auszuführen. :confused:

Klasse:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
  class db{
    private $errno = '';
    private $error = '';
    private $query_count = 0;
    private $connection = NULL;
    private $result = NULL;
    private $counter = NULL;
    
    public function __construct($host=NULL, $database=NULL, $user=NULL, $pass=NULL){
      $this->connection = @mysql_connect($host,$user,$pass,TRUE);
      if(!$this->connection){
        $this->error("Connection not established to ".$host);
      }else{
        if(!@mysql_select_db($database, $this->connection)){
          $this->error("Connection not established to ".$host." / ".$database);        
        }
        mysql_query("SET NAMES 'utf8'", $this->connection);
        mysql_query("SET CHARACTER SET 'utf8'", $this->connection);
      }
    }
    
    public function disconnect(){
      if(!mysql_close($this->connection)){
        $this->error();
      }
    }
    
    public function escape($string){
      if(get_magic_quotes_runtime()) $string = stripslashes($string);
      return @mysql_real_escape_string($string,$this->connection);
    }
    
    public function query($query){
      $this->result = @mysql_query($query,$this->connection);
      $this->counter = NULL;
      if(!$this->result){
        $this->error(mysql_error()."<br /> <i> ".$query."</i>"); return 0;
        $this->query_count++;
      }else{
        return $this->result; $this->counter=NULL;
      }
    }
    
    public function query_insert($table, $data){
      $q="INSERT INTO `".$table."` "; $v=''; $n='';
      foreach($data as $key=>$val){
        $n.="`". $key ."`, ";
        if(strtolower($val)=='null') $v.="NULL, ";
        elseif(strtolower($val)=='now()') $v.="NOW(), ";
        else $v.= "'".$this->escape($val)."', ";      
      }
      $q .= "(". rtrim($n, ', ') .") VALUES (". rtrim($v, ', ') .");";
      if($this->query($q)){
        return mysql_insert_id($this->connection);
      }else return false;
    }
    
    public function query_update($table, $data, $where='1'){
      $q="UPDATE `".$table."` SET ";
      foreach($data as $key=>$val){
        if(strtolower($val)=='null') $q.= "`". $key ."` = NULL, ";
        elseif(strtolower($val)=='now()') $q.= "`". $key. "` = NOW(), ";
        elseif(preg_match("/^increment\((\-?\d+)\)$/i",$val,$m)) $q.= "`$key` = `$key` + $m[1], ";
        else $q.= "`". $key ."`='".$this->escape($val)."', ";
      }
      $q = rtrim($q, ', ') . ' WHERE '. $where .';';
      return $this->query($q);
    }
    
    public function fetch_array($sql){
      $query_id = $this->query($sql);
      $out = array();
      while ($row = $this->fetch($query_id)){
        $out[] = $row;
      }
      $this->mysql_free_result($query_id);
      return $out;
    }
    
    public function fetchRow(){
      return @mysql_fetch_assoc($this->result);
    }
    
    public function count(){
      if($this->counter==NULL && is_resource($this->result)){
        $this->counter=mysql_num_rows($this->result);
      }
      return $this->counter;
    }
    
    function error($sql){
      $headers  = "From: $cmsmail (CMS)\r\n";
      $headers .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
      $headers .= "X-Mailer: PHP ". phpversion(); 
      $dbgTrace = debug_backtrace();
      $dbgMsg = '<strong>Zeitpunkt:</strong><br />'.date("d.m.Y, H:i:s").'<br /><br />';
      if(!isset($_SERVER["HTTP_X_FORWARDED_FOR"])) $client_ip = $_SERVER["REMOTE_ADDR"]; else $client_ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
      if(!isset($_SERVER["HTTP_REFERER"])) $referer = 'Direkt Zugriff!'; else $referer = $_SERVER["HTTP_REFERER"]; 
      if(!isset($_SERVER["HTTP_USER_AGENT"])) $useragent = 'Browser konnte nicht idendifiziert werden'; else $useragent = $_SERVER["HTTP_USER_AGENT"];
      $dbgMsg .= '<strong>IP-Adresse:</strong><br />'.$client_ip.'<br /><br />';
      $dbgMsg .= '<strong>Referrer:</strong><br />'.$referer.'<br /><br />';
      $dbgMsg .= '<strong>Browser:</strong><br />'.$useragent.'<br /><br />';
      $dbgMsg .= '<strong>Meldung:</strong><br />'.$sql.'<br /><br />';
      $dbgMsg .= '<strong>Trace:</strong><br />';
      foreach($dbgTrace as $dbgIndex => $dbgInfo){
        $dbgMsg .= $dbgInfo["file"].' #'.$dbgInfo["line"].'<br />';
      }
      die($dbgMsg);
      @mail($cms_mail, 'NET.CMS - MySQL-Fehler', $dbgMsg, $headers);
      exit();
    }
  }


Abfrage Geht nicht:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
    $menu_result = $db->query("SELECT * FROM `navigation` ORDER BY `id` ASC");
    $menu_count = $db->count($menu_result);
    $temp_count = 1;
    while ($line = $db->fetchRow()){
      $db->query("UPDATE `navigation` SET `nav_order` = '.$temp_count.' WHERE `id` = ".$line["id"]);
      echo 'UPDATE `navigation` SET `nav_order` = `nav_order` = '.$temp_count.' WHERE `id` = '.$line["id"]."<br />";
      $temp_count++;
    }
    header("Location: index.php?page=admin&modul=menu");
?>


Abfrage geht:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
    $menu_result = $db->query("SELECT * FROM `navigation` ORDER BY `id` ASC");
    $menu_count = $db->count($menu_result);
    $temp_count = 1;
    while ($line = $db->fetchRow()){
      mysql_query("UPDATE `navigation` SET `nav_order` = '.$temp_count.' WHERE `id` = ".$line["id"]);
      echo 'UPDATE `navigation` SET `nav_order` = `nav_order` = '.$temp_count.' WHERE `id` = '.$line["id"]."<br />";
      $temp_count++;
    }
    header("Location: index.php?page=admin&modul=menu");
?>


Hoffe Ihr könnt mir helfen, ich weiß zwar woran es liegt habe aber keine Lösungsansätze gefunden
außer die Klasse zu umgehen und ein mysql_query manuell auszuführen. Ist aber nicht des Rätsels
Lösung.
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 16.01.2012, 17:14 von KingGO.

 
Kein neuer Beitrag Nils , 16.01.2012, 19:51
Beitrag #2   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Hallo,

ich habe zwar keine Erklärung dafür warum es angeblich mit dem unteren Code funktioniert, aber
folgendes ist sicher nicht gewollt oder?
PHP:
1
mysql_query("UPDATE `navigation` SET `nav_order` = '.$temp_count.' WHERE `id` = ".$line["id"]);

Sprich, dass dort '.$temp_count.' drin steht und nicht ".$temp_count.".

mfg Nils

 
Kein neuer Beitrag Mars , 16.01.2012, 19:54
Beitrag #3   

IP: n/a
Rang: * * * * * * *
Registrierung: 04.09.2007, 15:49
Homepage: http://www.mliebgott.de
Wohnort: Dresden
 

Forum-Gott mit 1025 Punkte, 697 Beiträge
Sollte daran liegen, das jedesmal, wenn du eine neue Abfrage machst, noch die alten "Werte" drinne
stehen. Ergo nach der Abfrage $result auf löschen bzw. vor jeder Abfrage.

mfg Marcel

 
Kein neuer Beitrag KingGO , 16.01.2012, 20:24
Beitrag #4   

IP: n/a
Rang: * * * * * * *
Registrierung: 17.05.2007, 20:49
Homepage: http://www.donotart.de
Wohnort: Magdeburg
 

Forum-Gott mit 404 Punkte, 316 Beiträge
@Nils ja da hast du recht...
@Mars...

Hmm ja schon nur wenn ich das $result zurücksetze geht meine While auch nicht mehr durch.

Ich möchte ja in meiner while { Querys ausführen um z.B. einen Namen zu einer ID oder so auszulesen }

Wie sollte euer Meinung nach dann eine Abfrage aussehen?

 
Kein neuer Beitrag Nils , 16.01.2012, 20:37
Beitrag #5   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Ja, die Klasse ist etwas ungünstig designed, weil es einen internen Zustand gibt, der von einigen
Methoden benutzt und von anderen überschrieben wird. Daher kannst du nicht einfach fetchRow()
benutzen und währenddessen einen neuen Query ausführen. Sinnvoller wäre daher den Zustand bzw. das
Ergebnis einer Abfrage nicht in dieser Klasse zu halten, sondern eine separate Klasse dafür zu
haben, mit der man dann arbeitet. D.h. es gibt z.B. eine Klasse Result, die das jetzige db::$result
hält, und dafür Methoden anbietet (count, fetchRow, ...). Davon erstellst du in query() ein Objekt
und gibst es zurück. Der Aufrufer arbeitet dann also mit Result und kommt daher nicht mit anderen
Queries in die quere, denn die würden ja ein neues, anderes Result-Objekt kriegen.
Eine schnelle Lösung wäre natürlich auch einfach fetch_array() statt query() am Anfang zu benutzen..

mfg Nils
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 16.01.2012, 20:39 von Nils.

 
Kein neuer Beitrag Rafioso , 16.01.2012, 21:36
Beitrag #6   

IP: n/a
Rang: * * * * * * *
Registrierung: 30.08.2006, 22:31
Homepage: http://HomepageStarter.de
Wohnort: O-BW
 

Forum-Gott mit 1723 Punkte, 1537 Beiträge
Hi,

entweder so, wie es Nils geschrieben hat, oder du erstellst für jede SQL-Abfrage eine eigene
Funktion / Methode, dann sollte es auch funktionieren... wenn du nicht die komplette Klasse neu
designen möchtest.

//Edit
Btw. eine korrekte Weiterleitung machst du so:
PHP:
1
2
3
4
  header("Connection: close"); 
  header("HTTP/1.1 303 REDIRECT");  
  header("Location: ".$url); //$url = Komplette URL inkl. Protokoll
  exit;


MfG
Rafioso

Aktuellste Boardsolution-Version: v1.46
Kommende Boardsolution-Version: TBA
-----------------------------------------------------
Ich erstelle nur noch Modifikationen
für aktuelle Versionen!
-----------------------------------------------------
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 16.01.2012, 21:59 von Rafioso.

 
Kein neuer Beitrag KingGO , 25.01.2012, 08:30
Beitrag #7   

IP: n/a
Rang: * * * * * * *
Registrierung: 17.05.2007, 20:49
Homepage: http://www.donotart.de
Wohnort: Magdeburg
 

Forum-Gott mit 404 Punkte, 316 Beiträge
Mir ist aufgefallen das ich öfter mal eine E-Mail bekomme das da jemand versucht "SQL INJECTS"
auszuführen... Eine Idee was ich an meiner Klasse noch ändern könnte? Habe ja eigentlich drine das
sie "escapt" werden "gequotet" werden sie ja auch.

Hier noch mal die komplette Klasse. :-)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<?php

  class db{
    public  $query_count = 0;
    private $connection  = NULL;
    private $result      = NULL;
    
    #Connect $db = new db(HOST, DATABASE, USER, PASS);
    public function __construct($host=NULL, $database=NULL, $user=NULL, $pass=NULL){
      $this->connection = @mysql_connect($host,$user,$pass,TRUE);
      if(!$this->connection){
        $this->error("Connection not established to ".$host);
      }else{
        if(!@mysql_select_db($database, $this->connection)){
          $this->error("Connection not established to ".$host." / ".$database);        
        }
        mysql_query("SET NAMES 'utf8'", $this->connection);
        mysql_query("SET CHARACTER SET 'utf8'", $this->connection);
      }
    }
    
    #$db->disconnect();
    public function disconnect(){
      if(!mysql_close($this->connection)){
        $this->error();
      }
    }
    
    #Escape String ' " to \' \"
    public function escape($string){
      if(get_magic_quotes_runtime()) $string = stripslashes($string);
      return @mysql_real_escape_string($string,$this->connection);
    }

    #$db->query("MYSQL STATEMENT");
    public function query($query){
      $this->result = @mysql_query($query,$this->connection);
      if(!$this->result){
        $this->error(mysql_error()."<br /><i> ".$query."</i>"); return 0;
      }
      else
      {
        $this->query_count++;
        return $this->result;
      }
    }

    public function query_insert($table, $data){
      $q="INSERT INTO `".$table."` "; $v=''; $n='';
      foreach($data as $key=>$val){
        $n.="`". $key ."`, ";
        if(strtolower($val)=='null') $v.="NULL, ";
        elseif(strtolower($val)=='now()') $v.="NOW(), ";
        else $v.= "'".$this->escape($val)."', ";      
      }
      $q .= "(". rtrim($n, ', ') .") VALUES (". rtrim($v, ', ') .");";
      if($this->query($q)){
        return mysql_insert_id($this->connection);
      }else return false;
    }
    
    public function query_update($table, $data, $where='1'){
      $q="UPDATE `".$table."` SET ";
      foreach($data as $key=>$val){
        if(strtolower($val)=='null') $q.= "`". $key ."` = NULL, ";
        elseif(strtolower($val)=='now()') $q.= "`". $key. "` = NOW(), ";
        elseif(preg_match("/^increment\((\-?\d+)\)$/i",$val,$m)) $q.= "`$key` = `$key` + $m[1], ";
        else $q.= "`". $key ."`='".$this->escape($val)."', ";
      }
      $q = rtrim($q, ', ') . ' WHERE '. $where .';';
      return $this->query($q);
    }
    
    #while($line = $db->fetchRow($db->query("MYSQL STATEMENT"))){ ... }
    public function fetchRow($res){
      if(!$res){
        return 0;
      } else return @mysql_fetch_assoc($res);
    }
    
    #$db->count($db->query("MYSQL STATEMENT"));
    public function count($count){
      if(!$count){
        return 0;
      } else return @mysql_num_rows($count);
    }
    
    public function backup($tables = '*'){
      if($tables == '*'){
        $tables = array();
        $result = mysql_query('SHOW TABLES');
        while($row = mysql_fetch_row($result)){
          $tables[] = $row[0];
        }
      }else{
        $tables = is_array($tables) ? $tables : explode(',',$tables);
      }
      $return='';
      foreach($tables as $table){
        $result = $this->query('SELECT * FROM '.$table);
        $num_fields = mysql_num_fields($result);
        
        $return.= 'DROP TABLE IF EXISTS '.$table.';';
        $row2 = mysql_fetch_row($this->query('SHOW CREATE TABLE '.$table));
        $return.= "\n\n".$row2[1].";\n\n";
        
        for ($i = 0; $i < $num_fields; $i++) 
        {
          while($row = mysql_fetch_row($result))
          {
            $return.= 'INSERT INTO '.$table.' VALUES(';
            for($j=0; $j<$num_fields; $j++) 
            {
              $row[$j] = addslashes($row[$j]);
              #$row[$j] = ereg_replace("\n","\\n",$row[$j]);
              if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
              if ($j<($num_fields-1)) { $return.= ','; }
            }
            $return.= ");\n";
          }
        }
        $return.="\n\n\n";       
      }
      $filename = 'cms/dbbackups/dump-'.md5($return).'.sql';
      $handle = @fopen($filename,'w+');
      fwrite($handle,$return);
      fclose($handle);      
    }
    
    public function restore($filename){
      $templine = '';
      // Read in entire file
      $lines = file($filename);
      // Loop through each line
      foreach ($lines as $line)
      {
          // Skip it if it's a comment
          if (substr($line, 0, 2) == '--' || $line == '')
              continue;
       
          // Add this line to the current segment
          $templine .= $line;
          // If it has a semicolon at the end, it's the end of the query
          if (substr(trim($line), -1, 1) == ';')
          {
              // Perform the query
              $this->query($templine) or print('Error performing query \'<strong>' . $templine . '\': ' . mysql_error() . '<br /><br />');
              // Reset temp variable to empty
              $templine = '';
          }
      }    
    }
    
    function error($sql){
      $headers  = "From: CMS_MAIL (DNA.CMS)\r\n";
      $headers .= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
      $headers .= "X-Mailer: PHP ". phpversion();
      $dbgTrace = debug_backtrace();
      $dbgMsg = '<strong>Zeitpunkt:</strong><br />'.date("d.m.Y, H:i:s").'<br /><br />';
      if(!isset($_SERVER["HTTP_REFERER"])) $referer = 'Direkt Zugriff!'; else $referer = $_SERVER["HTTP_REFERER"]; 
      if(!isset($_SERVER["HTTP_USER_AGENT"])) $useragent = 'Browser konnte nicht idendifiziert werden'; else $useragent = $_SERVER["HTTP_USER_AGENT"];
      $dbgMsg .= '<strong>IP-Adresse:</strong><br />'.getip().'<br /><br />';
      $dbgMsg .= '<strong>Referrer:</strong><br />'.$referer.'<br /><br />';
      $dbgMsg .= '<strong>Browser:</strong><br />'.$useragent.'<br /><br />';
      $dbgMsg .= '<strong>Meldung:</strong><br />'.$sql.'<br /><br />';
      $dbgMsg .= '<strong>Trace:</strong><br />';
      foreach($dbgTrace as $dbgIndex => $dbgInfo){
        $dbgMsg .= $dbgInfo["file"].' #'.$dbgInfo["line"].'<br />';
      }
      @mail(CMS_MAIL, 'DNA.CMS - Error', $dbgMsg, $headers);
      die($dbgMsg);   
    }
  }
?>


Error-Meldung:
Code:
1
2
3
4
5
6
Browser:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

Meldung:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xss')' AND `password` = 'MD5HASH'' at line 1
SELECT `username`, `password`, `rights` FROM `users` WHERE `username` = '' AND `password` = 'MD5HASH';


Danke für eure Hilfe, wie findet Ihr die Funktion mit dem speichern der MySQL-Datenbank und
wiederherstellen...?

LG :-)

 
Kein neuer Beitrag Nils , 25.01.2012, 10:29
Beitrag #8   

IP: n/a
Rang: * * * * * * *
Registrierung: 01.07.2003, 18:55
Homepage: http://www.script-solution.de
Wohnort: Marburg
 

Forum-Gott mit 7812 Punkte, 7566 Beiträge
Hallo,

naja, das Escapen findet ja nur bei Inserts und Updates statt. Sofern man etwas anderes macht, muss
man ja query() benutzen und muss selbst dafür sorgen, dass alles korrekt ist. Besser wäre ein
Konzept wie Prepared Statements zu verwenden. Das könntest du bei allen Query-Arten benutzen.
Sprich, erstell z.B. eine eine Klasse PreparedStatement. Der übergibt man im Konstruktur den
SQL-Query und kann dann mit der Methode bind Werte an den Query binden. Z.B. indem man sagt
bind(':id:',$id) und im SQL-Query :id: drin stehen hat. Dann übergibst du das Objekt von
PreparedStatement an deine query-Methode in der MySQL-Klasse, die dann darauf z.B. get_query()
aufruft, welche die ganzen binds "auflöst" und somit den fertigen Query liefert.
Auf diese Weise muss sich der Verwender nie um Escapes und Quotes kümmern, sondern arbeitet mit
Variablen im Query, die an Werte gebunden werden und die Klasse PreparedStatement sorgt dafür, dass
abhängig vom Wert entsprechend escaped wird oder nicht.

mfg Nils

Abonnieren Druckansicht
Antworten

n/a n/a 1     (Anzeige: 1 – 8; insgesamt: 8) n/a n/a
User in diesem Thema: 0 Registrierte, 0 Versteckte, 1 Gast, 0 Bots
Keine
Legende: Administratoren, User, Moderatoren
Themenaktionen:
Beiträge verschieben

Toggle Ähnliche Themen zu „MySQL Klasse...“
  Antworten Aufrufe Themeneröffnung Letzter Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Seitenzahlen in PHP (MySQL) auflistung einbri ... 6 64176 08.07.2015, 21:39
Von: RommY
13.07.2015, 12:43
Von: RommY Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  MySQL Version / Boardpfad Fehler bei Installa ... 3 21141 19.04.2013, 09:55
Von: ckragt
20.04.2013, 23:51
Von: Nils Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
Thema [FIX] Installation in einer aktuellen XAMPP-U ... 8 15456 03.01.2013, 00:46
Von: Rafioso
07.01.2013, 19:48
Von: Rafioso Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  MySQL Abfragen Problem. 9 25921 13.06.2012, 21:54
Von: KingGO
17.06.2012, 16:40
Von: KingGO Zum letzten Beitrag
Keine neuen Beiträge, nicht wichtig Keine neuen Beiträge, „heißes Thema“
Keine neuen Beiträge, offen Keine neuen Beiträge, nicht verschoben
  Fehler bei der Installation (MySQL-Query fail ... 2 5774 13.06.2012, 20:28
Von: Ngar
13.06.2012, 23:16
Von: Rafioso Zum letzten Beitrag
  • 0.028914 Sek., 11 DB-Zugriffe, 1.003 MiB
  • Powered by Boardsolution v1.46