gegevens laden met komma

Status
Niet open voor verdere reacties.

mysql

Gebruiker
Lid geworden
28 jan 2012
Berichten
108
Hallo allemaal,

ik wil een admin-paneel maken voor meerdere gebruikers.
In 'system_users' wordt de macht opgegeven:

1000.png


In het tweede plaatje moet met het met komma worden geschijden.

Alvast bedankt

MySql
 

Bijlagen

  • admin.png
    admin.png
    1,4 KB · Weergaven: 14
Laatst bewerkt:
hmm, wat is de code die je gebruikt om te injecteren naar de database?
daar hebben we dan wat meer aan.
 
Voor de database kan je ongeveer het volgende doen, je moet nog wel het een en ander aanpassen.

PHP:
$count = 1;
  
  while ($count <= 18) {
      
      if($_POST['naampost'.$count] == 1){
          $add = '1,';
      } else {
          $add = '0,';
      }
      
      $right .= $add;
      $count++;
  }




Wat je daarna op de pagina kan doen is het volgende:

PHP:
$page = 3;

// De onderstaande code staat in een include
$access = substr($row['right'], $page, 1);

if ($access == 0) {
echo 'Je hebt geen recht om deze pagina te bekijken';
exit;
}
// de code gaat door
 
Laatst bewerkt:
je kan dus bij id 99 het volgende zetten bij right:

1,1,1,1,1,1,1,0,1,1,0,1,1

Wat je daarna op de pagina kan doen is het volgende:

PHP:
$page = 3;

// De onderstaande code staat in een include
$access = substr($row['right'], $page, 1);

if ($access == 0) {
echo 'Je hebt geen recht om deze pagina te bekijken';
exit;
}
// de code gaat door

Hey niet dat het mijn probleem is maar zou je dit stukje willen uitleggen?
PHP:
$access = substr($row['right'], $page ,1);
 
ja hoor:

ik ga ervanuit dat hij een query maakt waarin hij de rechten ophaald dit is dus $row['right];

$page staat voor de pagina/nummer in de database $page is dus altijd een oneven getal omdat je begint met tellen bij 0 van de rights. en ik wil maar 1 getal uit die hele reek halen.

dus het is zo:
PHP:
substr(waarde, begin, lengte);
Zie anders ook :
http://php.net/manual/en/function.substr.php
 
Hmm ik ken de function substr,
maar ik snap niet hoe je hier zijn probleem mee wil oplossen,
ik zou zeggen dat je dit doet:

PHP:
$allowedright = 3;
$row = mysql_fetch_array(mysql_query("SELECT * FROM `admins` WHERE `id` = '$id'"));
$right = explode("," $row['right']);

foreach ($right as $rightnumber) {
   if ($rightnumber == $allowedright) {
     echo 'nu gebeurd er iets';
   }
}
 
Laatst bewerkt door een moderator:
ik doe het zelfde als jij maar op een kortere manier :)

het gaat om steed om 1 pagina dus waarom een hele foreach gebruiken, als je weet waar de waarde moet staan?
 
je weet niet waar de in dit geval 3 staat in het rijtje,
hij heeft bijvoorbeeld recht 1, 3, 4, 5
dan kun je niet zeggen dat als het 3e nummer 3 is want het kan dus ook het 2e zijn of hij is er niet,
PHP:
$page = 3
en dat vraag je dus met substr($row['right'], $page(3) , 1);

toch?
nu krijg je het 3e nummer,
maar dit kan dus ook 4 zijn, of 6 of 105 etc..
 
Laatst bewerkt door een moderator:
zijn idee is dit volgens mij:

id 99 = 1,1,1,1,1,1,0,1,1,0,1,1,1,1

Op dat moment werkt mijn substr wel degelijk. Je weet namelijk dat de eerste 1 bijvoorbeeld voor de startpagina is en de tweede 1 voor een formulier pagina. En dus weet je zeker waar de 1 staat.
 
hmm w8 ik begin je te snappen, als het 1 is heb je dat recht, als het 0 is heb je geen recht.
maar het nadeel hiervan is dat je als je een nieuwe plugin maakt, je dat er weer bij moet voegen in de code, terwijl je dat op mijn manier wat simpeler kan voorkomen.
maar ik snap je nu en dat is in zijn geval wel een goede idd.
 
Laatst bewerkt door een moderator:
Klopt 1 is je mag doorgaan 0 is geen rechten dus exit;


Opzich is mijn code niet moeilijk als er een nieuwe plugin wordt gemaakt namelijk:
De code om te checken of je de pagina mag zien of niet staat een een include i.v.m code duplicatie te ver komen. De $pagina staat boven de include.

Daarnaast als je een nieuwe plugin toevoegd dan zet je dus de 1 of 0 aan het einde van de reeks. Ik denk dat het dus wel mee valt. Maar zoals jij laat zien een foreach kan ook hij kan nu zelf kiezen wat die wilt :)
 
Thx, ik Gebr. Liever mijn manier omdat je dan niet een hele reeks krijgt maar alleen de rechten die je wel hebt.
 
Laatst bewerkt door een moderator:
@martjojo1: Wanneer je reageert op een reactie direct "boven" jou dan is het niet nodig (en wenselijk) om het bericht te quote. :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan