• Willkommen, Gast!
  • Montag, 06. Juli 2020, 22:38:41
Position: Home » Allgemeines » Allgemeines Board » Checkboxen in einen Array laden und wieder ausgeben von Datenbank.
Antworten
Thema: Checkboxen in einen Array laden und wieder ausgeben von Datenbank. [Seite 1 ]

Kein neuer Beitrag KingGO , 25.01.2012, 09:04
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
Checkboxen in einen Array laden und wieder ausgeben von Datenbank.

Habe zwar was gelesen mit Radio Buttons hier im Forum aber das ist nicht das was ich brauche, daher
ein neues Thema... ;)

Ich habe mal eine Frage wie würdet Ihr das am sinnvollsten lösen.

Zu meinen Problem, ich habe ein Feld in meiner MySQL Tabelle was heißt `rights` in diesem Feld
möchte ich meine Rechte zu den einzelnen Bereichen speichern...

In Form von "user_can access_blaaaa, user_can access_bla2, user_can access_bla3..."

Das ganze in die Datenbank bekommen ist nicht das Große Problem, mein Problem beginnt beim
auslesen, vielleicht habe ich ja auch einen Denkfehler.

Ich habe es so gemacht mit einigen Test's

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
# IF SUBMIT

   # Gibt das Array rights[] von dem Formular aus
   echo'<code><pre>'print_r($_POST['rights']); echo'</pre></code>';

   #Array zu Zeichenkette machen...
   $rights = '';
   foreach ($_POST['rights'as $k => $v) {
      $rights .= "$v, ";
   }

   # $rights hat jetzt die richtige Syntax für das Feld MySQL `rights`


# DB AUSLESEN

    $array_db = array();
    $array_db = explode(", "$rights);

    #print_r($array_db) = (Hat aber alle Werte... Was stört ist die [0])
?>


Code:
1
2
3
4
5
6
7
8
9
10
11
Array
(
    [0] => menu_can_create
menu_can_edit
menu_can_delete
pages_can_view
pages_can_create
pages_can_edit
pages_can_delete

)


So, wie hole ich das jetzt wieder heile aus der Datenbank raus und wie mache ich das mit meinen
Checkboxen? Habe sehr viele Checkboxen und bekomme keine wirklich dynamische Lösung hin.

Erste geht nicht, Zweite geht...
HTML:
1
2
        <?php $value='menu_can_view'; ?><input name="rights[<?php echo $value; ?>]" type="checkbox" <?php if(in_array($value, $array_db)){ echo'checked=checked '; } ?>value="<?php echo $value; ?>" style="vertical-align:text-top" /> <span style="vertical-align:text-top"> :: hat Zugriff</span><br />
        <input name="rights[menu_can_create]" type="checkbox" <?php if(preg_match('/menu_can_create/i', $rights)) echo 'checked=checked'; ?> value="menu_can_create" style="vertical-align:text-top" /> <span style="vertical-align:text-top"> :: darf erstellen</span><br />


Hoffe Ihr konntet mir folgen
LG :-)
Dieser Beitrag wurde insgesamt 3 mal editiert. Das letzte Mal 25.01.2012, 09:22 von KingGO.

 
Kein neuer Beitrag Nils , 25.01.2012, 10:20
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,

es wäre besser die Rechte nicht Komma-getrennt in einem Feld zu speichern, sondern eine Tabelle
dafür zu erstellen. Also eine Tabelle mit:
right: die Berechtigung (also z.B. "menu_can_edit";)
user_id: die user-id, die diese hat

Falls es noch weitere Eigenschaften zu einer Berechtigung gibt, solltest du auch dafür eine eigene
Tabelle erstellen und in der eben genannten nur die id davon speichern.
Wenn du nun die Rechte eines Users wissen willst holst du also einfach alle Zeilen für diesen User
aus der Tabelle. Wenn du sie bearbeitest, ist es vermutlich am einfachsten alle für einen Benutzer
zu löschen und neu anzulegen.

Wenn du das so machst, hat sich dein Problem auch erledigt (nicht, dass es nicht lösbar wäre). Denn
dann brauchst du ja nur alle Zeilen eines Users zu holen und für jede ne Checkbox erstellen. Nach
dem Submit löscht du alle Zeilen für den User und gehst über $_POST['rights'] (wenn du es so machst
wie jetzt) und erstellst für jeden Eintrag eine Zeile in der DB.

mfg Nils

 
Kein neuer Beitrag KingGO , 25.01.2012, 11:01
Beitrag #3   

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
Danke für die schnelle Antwort.

Ich wollte aber nicht nocht eine extra Tabelle erzeugen für diese Rechte Sache.

Ich speichere die Rechte in der SESSION, wenn die Session in der DB gelöscht wurde = wird der User
automatisch abgemeldet und Probleme damit zu vermeiden.

Dann prüfe ich nur auf die jeweilige Aktion ob in der Session z.b. 'menu_can_create' drine steht...
Wüsstest du trotzdem einen Weg um mein Vorhaben vereinfacht in die Tat umzusetzen Nils?

Ich würde sonst dieses hier umwandeln...
Code:
1
if(isset($_POST['rights']['pages_can_view'])) echo 'checked=checked';


In:
Code:
1
if(in_array('pages_can_view', $array_from_db))


Probiere das nachher mal ist ne ganz schöne Schreibarbeit...bin erst mal einkaufen ;)

Danke derweil :-)

EDIT: Ja so geht es... würde es auch so lassen :-)
Dieser Beitrag wurde insgesamt 1 mal editiert. Das letzte Mal 25.01.2012, 11:43 von KingGO.

 
Kein neuer Beitrag faarizamar , 10.01.2015, 10:44
Beitrag #4   

IP: n/a
Rang: * * * * * * *
Registrierung: 10.01.2015, 10:20
 

Forum-Gott mit 1 Punkte, 1 Beiträge
Wenn ich jetzt Module neu hinzugefügt habe, werden da auch die locations in wer ist wo angezigt?

We provide fast success in brain dumps dumps exam by using our high quality a plus prep resources.
We offer up-to-dated security+ dumps with definite guarantee of network+ training success.

 
Kein neuer Beitrag Nils , 10.01.2015, 19:31
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
Hallo,

Bezug zum Thema?

Ich nehme mal an es geht um BS 1.4x: Nicht ganz. Es wird zwar gespeichert, aber du musst in der
language/<sprache>/index.ini unter [LOCATIONS] einen Eintrag loc_<deinModul> einfügen.

mfg Nils

Abonnieren Druckansicht
Antworten

n/a n/a 1     (Anzeige: 1 – 5; insgesamt: 5) 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 „Checkboxen in einen Array laden und wieder ausgeben von Datenbank.“
  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
  keine doppelarrays 4 8979 03.04.2011, 19:51
Von: Mars
03.04.2011, 21:23
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
  kategorien in anderem Template ausgeben 1 18114 19.02.2011, 16:20
Von: 4Webmaster
20.02.2011, 10:32
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
  Kleine Verbesserung bei "Bild hochladen" im A ... 5 47335 27.11.2009, 16:44
Von: Rafioso
09.02.2011, 20:08
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
  1.36 auf 1.42 Änderrungen an der Datenbank? 4 10578 15.11.2010, 09:26
Von: Anonymous
17.11.2010, 20:06
Von: Anonymous 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
  Versionsvergleich -> Alle Änderungen runterla ... 9 10220 18.10.2010, 17:32
Von: Kompi
19.10.2010, 15:11
Von: Nils Zum letzten Beitrag
  • 0.111575 Sek., 10 DB-Zugriffe, 1.535 MiB
  • Powered by Boardsolution v1.46