mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 11.10.2008 09:12 Benutzername: Passwort: Auto-Login

Thema: [php] mehrere user, mehrere bereiche vom 03.01.2008

Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [php] mehrere user, mehrere bereiche
Seite: Zurück  1, 2, 3  Weiter
Autor Nachricht
loveandhate
Threadersteller

Dabei seit: 24.12.2007
Ort: Seligenstadt
Alter: 18
Geschlecht: Männlich
Verfasst Do 03.01.2008 16:57
Titel

Antworten mit Zitat Zum Seitenanfang

ich hab ma was zusammen geschreiben....sollte doch eigendlich richtig sein...


weil der code so lange is, hab ich ihn ma geuppt....is ne txt datei.....

wenn einer zeit hat kann er sich des vlltt ma angucken

thx

http://rapidshare.com/files/80951288/mysql_tabelle.txt
  View user's profile Private Nachricht senden
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 03.01.2008 17:52
Titel

Antworten mit Zitat Zum Seitenanfang

Du kannst für die Rechte auch ne Bitmaske benutzen, das ist so der elegante Weg.
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: KF
Alter: -
Geschlecht: Weiblich
Verfasst Do 03.01.2008 18:05
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:
Du kannst für die Rechte auch ne Bitmaske benutzen, das ist so der elegante Weg.


Öhm... und wie funktioniert das in PHP / mySQL? Wär ja cool zu wissen, den Wikieintrag fand ich hier n bisschen zu allgemein, bzw hab ich nich geblickt... *zwinker*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 03.01.2008 19:12
Titel

Antworten mit Zitat Zum Seitenanfang

In dem Thread gibts noch ein paar Infos zur Rechteverwaltung mit Bitmasken:

http://boardunity.de/ideales-rechte-system-t862-s2.html
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: KF
Alter: -
Geschlecht: Weiblich
Verfasst Do 03.01.2008 21:36
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:
In dem Thread gibts noch ein paar Infos zur Rechteverwaltung mit Bitmasken:

http://boardunity.de/ideales-rechte-system-t862-s2.html


Danke dir!
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
loveandhate
Threadersteller

Dabei seit: 24.12.2007
Ort: Seligenstadt
Alter: 18
Geschlecht: Männlich
Verfasst Fr 04.01.2008 22:09
Titel

Antworten mit Zitat Zum Seitenanfang

hat einer des script ma angeguckt?.....

bin leider noch net dazu gekommen, es zu testen, da ich gerade auf nen anderen hoster umsteig....
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: KF
Alter: -
Geschlecht: Weiblich
Verfasst Sa 05.01.2008 02:00
Titel

Antworten mit Zitat Zum Seitenanfang

loveandhate hat geschrieben:
hat einer des script ma angeguckt?.....

bin leider noch net dazu gekommen, es zu testen, da ich gerade auf nen anderen hoster umsteig....


rapidshare stinkt! also ne, ich nich...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
achwasweisich

Dabei seit: 27.09.2007
Ort: Stuttgarter Raum
Alter: -
Geschlecht: Männlich
Verfasst So 06.01.2008 11:22
Titel

Antworten mit Zitat Zum Seitenanfang

Also was mir sofort ins Auge springt:
Code:
SELECT User FROM $TableLogin WHERE User='".stripslashes($_REQUEST['User'])."' AND Passwort='".stripslashes($_REQUEST['Passwort'])."'"


Du solltest Dich mal mit dem Thema SQL-Injection auseinandersetzen.
Nimm doch einfach mal an, ich schreibe in das Text-Feld "Password" folgendes:
Code:
NULL';drop table user;SELECT '1

Zusammengesetzt würde das ergeben:
Code:
SELECT User FROM $TableLogin WHERE User='Bla' AND Passwort='NULL';drop table user;SELECT '1'

Nur mal so als ganz schnelles Beispiel.


Okay, weiter...
Code:

if(mysql_num_rows(mysql_query("SELECT User FROM $TableLogin WHERE User='".stripslashes($_REQUEST['User'])."' AND Passwort='".stripslashes($_REQUEST['Passwort'])."'", $DatabasePointer))==1)
   {
       if(mysql_num_rows(mysql_query("SELECT Rechte From $TableLogin WHERE Rechte='".stripslashes($_REQUEST['Rechte']."'==['admin'])))
      {
// ...
   }else{
      mysql_select_db($Database, $DatabasePointer);}
      
      if(mysql_num_rows(mysql_query("SELECT Rechte From $TableLogin WHERE Rechte='".stripslashes($_REQUEST['Rechte']."'==['member1'])))
      {
// ...
                 }


Warum so kompliziert und verschachtelt und vor allem mit immer neuen Verbindungen zur Datenbank?

Es geht doch auch einfacher:
Code:


 $current_user_right = '';

 // minimum an Sicherheit
 // da magic_quotes_gpc eingeschlatet sein könnte, wendet man eben erst mal pauschal
 // stripslashes an, um doppelte maskierung zu vermeiden.

 $req_user    = mysql_real_escape_string(stripslashes($_REQUEST['User']));
 $req_passwd  = mysql_real_escape_string(stripslashes($_REQUEST['Passwort']));

 $db_result = mysql_query("SELECT Rechte FROM $TableLogin
                           WHERE User='$req_user' AND Passwort='$req_passwd'",
                          $DatabasePointer);
 if ($db_result) {
   $array_dbrow = mysql_fetch_row($db_result);
   $current_user_right = $array_dbrow[0];
 }


Nach diesem Code (der SQL-Injection wenigstens im Gröbsten verhindert) hast Du eine Variable $current_user_right,
die den Inhalt der Spalte "Rechte" des Users enthält.
Ist die Variable leer, waren Benutzername und/oder Passwort falsch.

Ansonsten kannst Du ja leicht mittels
Code:
if ($current_user_right == 'admin') { } elseif ($current_user_right == 'deppvomdienst') {} // ... usw.

an jeder beliebigen Stelle später im Code auf die Rechte wieder zugreifen, ohne jedesmal eine neue Query an die Datenbank schicken zu müssen.


So jezt nur eins noch:
Statt
Code:

echo " bla
    blubber \"jojo\"
    foobar \"hallo\"
    ";

würde ich zukünftig mal
Code:

echo <<<EOT
       bla
       blubber "jojo"
       foobar "hallo"
EOT;

Oder aber, wenn ich sowieso nur HTML-Code schreibe, dann doch einfach
Code:

<?PHP
  // PHP-code-stuff
?>

  <!-- man kann HTML direkt in eine PHP-Datei schreiben!!  -->
  <html-tag name="beispiel">
  <h2>Blubber!</h2>

<?PHP
  //more PHP-code
?>


so weit mal von mir
  View user's profile Private Nachricht senden
 
Ähnliche Themen [PHP] Online-User Anzeige
Email PHP-Skript - mehrere User pop3
2 div-bereiche nebeneinander...
[Suche] Gute Admin-Bereiche
Bereiche in Flash durch Kennwort schützen
User Stylesheet..
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.