Seite 1 von 1

MySQL Abfragen mit $praefix???

Verfasst: 26.07.2007 18:26
von BennyProdo
Hallo,

nach meiner langen Auszeit hier komm ich nunmal wieder mit einer Frage, php hab ich mir zwar schon gut angewöhnt und weiß auch schon viel, bloß das hier nicht.

Ich hab mir mal was schönes gebastelt, unzwar ne Wunschbox, schön und gut funktioniert auch alles, jetzt will ichs aber ganz anders machen unzwar so:

config.php

Code: Alles auswählen

<?php
$dbhost = "localhost";
$dbpw = "passwort";
$dbuser = "username";
$db = "datenbank";
$praefix = "preafix_";
?>
Ok, das hab ich, nun zu den Abfragen in den Dateien:

abfrage.php

Code: Alles auswählen

<?php
session_set_cookie_params(10800);
start_session();
?>
<?php
if(!isset ($_SESSION['username']))
    { 
    echo "<title>Not Logged in</title><link rel='stylesheet' href='style.css' type='text/css'>Bitte erst <a href='index.php'>Einloggen</a>";
    exit; 
    } 
?>
<?php
include_once "config.php";
$username = $_SESSION['username'];
$mysql = "SELECT * FROM tabellenname" .$praefix. "users WHERE name = '$username'";
$query = mysql_query($mysql);
while($n = mysql_fetch_object($query))
{
$id = "$n->id";
}
echo "Ihre ID: $id";
?>
ist die Abfrage so richtig? Sorry hab noch nie mit nem praefix in Dateien gearbeitet, sonst funzt ja alles. :oops:

Best Regards,

Benny

Verfasst: 26.07.2007 18:52
von Stefane
ahoi,

zunächst sieht es so aus, als ob du noch nicht einmal mit deiner DB-Server verbunden bist. Ich sehen keinen Befehl wie

Code: Alles auswählen

mysql_connect(...);
Ohne Verbindung funktioniert das ganze schon mal gar nicht...
Dann musste du weiterhin die Datenbank auswählen. Befehl dazu:

Code: Alles auswählen

mysql_select_db(...);
Dann hierzu:

Code: Alles auswählen

$mysql = "SELECT * FROM tabellenname" .$praefix. "users WHERE name = '$username'"; 
Der würde jetzt bezwecken, dass du aus einer Datenbank-Tabelle mit dem Namen "tabellennameusers" alles für den bestimmten User ausliest.

Ich hab keine Ahnung, wie du deine Tabellen benannt hast, aber wenn du das so ähnlich wie bei phpBB gemacht hast, dann muss das folgendermaßen aussenen:
Zunächst solltest du global, vlt auch in der Configdatei das prefix festlegen, dass du verwendest:

Code: Alles auswählen

$prefix = 'meinpref';
Dann können die SQL-Abfragen zukünftig so aussehen, am obigen Beispiel festgemacht:

Code: Alles auswählen

$mysql = "SELECT * FROM " . $prefix . "users WHERE name = '$username'";
Das sollte zunächst mal alles von mir sein.

Versuch dich mal...

Verfasst: 26.07.2007 18:58
von BennyProdo
Hi,

upss da hab ich wohl vergessen im Code oben die Verbindung reinzumachen, ist natürlich drinne in der wirklichen Datei keine Sorge ;)

upss 2 ich hab die Leerzeichen vergessen zwischen den Punkten.

Dann ist das was ich oben gepostet habe ja (fast) richtig gewesen.

Globaler $praefix ist gegeben in der config.php.

Best Regards,

Benny

Verfasst: 26.07.2007 20:38
von larsneo
...und nicht vergessen, sich mit sicherheitsaspekten zu beschäftigen - sei es z.b. session fixation oder auch sql-injektion ;-)

Verfasst: 26.07.2007 20:45
von BennyProdo
Hi,
larsneo hat geschrieben:...und nicht vergessen, sich mit sicherheitsaspekten zu beschäftigen - sei es z.b. session fixation oder auch sql-injektion ;-)
ist auch drinne, nur nicht oben im oberen Democode. ;)

Best Regards,

Benny