bisschen komplizierteres loginsystem

kase

Erfahrenes Mitglied
ich möchte ein loginsystem schreiben. Bei dem ein Login mehrere Konten besitzt.

Ich dachte ich mache es in folgender Form:

Code:
| id | kactive | inhaber | kname |  ktyp  | kheimat  |
+----+---------+---------+-------+--------+----------+
|  3 |   yes   | 1       | TOM   | Privat | Freiland |
+----+---------+---------+-------+--------+----------+
|  4 |   no    | 8:1:17  | IBM   | kommez | Freiland |
+----+---------+---------+-------+--------+----------+

Ich habe jetzt eine Abfrage geschrieben die die Account auflistet wenn in der tabelle inhaber die ID steht.
PHP:
<?	
  
  $array = array($id);
  
    $query = '
        SELECT
                *
          FROM
                `konten`
          WHERE
                `inhaber` = '.$userid.'
        ';
		
    $result = mysql_query($query)
        or die(mysql_error());
		
    while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {
			
				
				echo "
	<input name='login' type='submit' value='$row[kname]'><br>";
	
 
}

?>

Jetzt möchte ich es aber machen das mehrere Leute auf ein Konto zugreifen können. Deshalb gibt es mehrere IDs in der Tabelle (z.B: "8:1:17").

Wie gehts das?

Vielen Dank,
kase
 
Zuletzt bearbeitet:
Entferne die Spalte „inhaber“ aus der Tabelle „konten“.

Lege eine neue Tabelle (z.B. „konteninhaber“) zur Abbildung der n:m-Relation zwischen Konten und Inhaber an. Sie könnte bspw. die Felder „konto_id“ und „inhaber_id“ enthalten.

Entsprechend der von dir im OP eingestellten Daten würde diese neue Tabelle folgenden Inhalt haben:
Code:
| konto_id | inhaber_id |
+----------+------------+
|     3    |      1     |
+----------+------------+
|     4    |      1     |
+----------+------------+
|     4    |      8     |
+----------+------------+
|     4    |     17     |
+----------+------------+

Eine Abfrage aller Konten mit einem bestimmten Inhaber würde dann so aussehen:
SQL:
SELECT
	`konten`.*
FROM
	`konten`
INNER JOIN
	`konteninhaber` ON (`konten`.`id` = `konteninhaber`.`konto_id`)
WHERE
	`konteninhaber`.`inhaber_id` = $userid
 
mhh, und wie kontrolle ich jetzt im weiteren system ob die person auf das konto zugriff hat, ich denke es muss etwa so aussehen:

PHP:
$selectkonto = $_POST["selectkonto"];

$query = mysql_query("SELECT * FROM konten_access WHERE inhaber_id = '$userid'");

$row = mysql_fetch_array($query);

if ($row[konto_id] == $selectkonto) {
  echo "OK";
} else {
  echo "error";
}

also es funktioniert, ich weiss aber nicht ob das so sicher ist
 
Zuletzt bearbeitet:
Zurück