Hallo allemaal,

Ik heb een editscript gemaakt/getweaked waarmee je data in de de database kan aanpassen nu wil ik hier echter een login script bij zetten zodat je alleen met wachtwoord en gebruikersnaam kan editten. Ook is het de bedoeling dat er 2 users komen de ene user kan bv. alleen id 2 en 4 aanpassen de andere kan alles aanpassen. Hoe kan ik dit het beste aanpakken hier volgt het script dat ik tog nu toe heb.

<?php

include("config.php");

if(!isset($_GET['mode']))
{

$result = mysql_query("SELECT * FROM pagina_content order by id ASC");


while($r=mysql_fetch_assoc($result))
{

echo '
<table width="400" border="0" cellspacing="4" bgcolor="#FFFC00">
<tr>
<td width="52" valign="top" >ID</td>
<td width="332"><div class="edit_tekst">'.$r['id'].'</div></td>
</tr>
<tr>
<td valign="top">Page</td>
<td><div class="edit_tekst">'.$r['pagina'].'</div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><a href="editcontent.php?mode=edit&id='.$r['id'].'">Edit</a></td>
</tr>
</table><br/>';
}
}
?>





<?php

if( isset( $_GET['mode'] ) && $_GET['mode'] == 'edit' || isset( $_POST['mode'] ) && $_POST['mode'] == 'edit' )
{
if (!isset($_POST["submit"]))
{
$id = $_GET["id"];
$sql = "SELECT * FROM pagina_content WHERE id=".$_GET['id'];
$result = mysql_query($sql) or die(mysql_error());
$pagina_content = mysql_fetch_array($result);
?>

<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<span class="titel">Edit content</span><br>
<br>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="117" class="naam">Pagina:</td>
<td width="577">
<input type=hidden name="id" value="<?php echo $menu["id"] ?>">
<INPUT NAME="pagina" TYPE="TEXT" id="pagina" VALUE="<?php echo $pagina_content["pagina"] ?>" SIZE=30> </td>
</tr>
</tr>
<td width="117" class="naam">Content vak 1:</td>
<td width="577">
<textarea name="content1" cols="50" rows="8" id="content1"><?php echo $pagina_content["content1"] ?></textarea>
<input type="hidden" name="mode" value="edit"> </td>
</tr>
<tr> </tr>
<td width="117" class="naam">Content vak 2:</td>
<td width="577">
<textarea name="content2" cols="50" rows="8" id="content2"><?php echo $pagina_content["content2"] ?></textarea>
<input type="hidden" name="mode" value="edit"> </td>
</tr>
<tr>
<tr>
<td width="117" class="naam">Plaatje:</td>
<td width="577">
<INPUT NAME="plaatje" TYPE="TEXT" id="plaatje" VALUE="<?php echo $pagina_content["plaatje"] ?>" SIZE=30>
<input type="hidden" name="mode" value="edit"> </td>
</tr>
<tr>
<td width="117" class="naam"></td>
<td><input type="submit" name="submit" value="Edit"></td>
</tr>
</table>
</form>

<? } ?>


<?php
if ($_POST["submit"])
{
$pagina = $_POST["pagina"];
$content1 = $_POST["content1"];
$content2 = $_POST["content2"];
$plaatje = $_POST["plaatje"];

$sql = "UPDATE pagina_content SET pagina='".$pagina."',content1='".$content1."',content2='".$content2."',plaatje='".$plaatje."' WHERE id=".$_GET['id'];

$result = mysql_query($sql) or die(mysql_error());
echo 'Content aangepast!.<META HTTP-EQUIV=Refresh CONTENT="2; URL=editcontent.php">';
}
}
?>

Alvast bedankt voor de hulp!
Debug eens

zet dit:
echo "***."$_SESSION['rank']."***<br />";
onder 
[code]include("config.php");
ik haat witte pagina's :P

<?php
include("config.php");

echo "***."$_SESSION['rank']."***<br />";

if($_SESSION['rank'] == "admin"){
echo "lol";
}else{
echo "fun";
} ?> Pagina = wit

<?php
include("config.php");

echo "***."$_SESSION['rank']."***<br />";

?> Pagina = wit
error reporting zette
zet dit bovenaan je pagina:
<?php
error_reporting( E_ALL );
ini_set("display_errors", 1);
?>
Hieronder zie je hoe mijn 'ranken/opties' systeem werkt.
misschien heb je er wat aan ;-)

Uitleg van het idee
Als eerste geef je elke optie die je als gebruiker kan doen een id
Vb:

Standaart als je member bent:  0
Replies plaatsen:              1
kan replies edite:             2
kan users deleten:             3
alle andere admin opties:      4


Nu gaan we het juiste getal uitrekenen
dat doen we door: 2^(het id)

Members pagina bekijken:       2^0 = 1
Replies plaatsen:              2^1 = 2 
kan replies edite:             2^2 = 4
kan users deleten:             2^3 = 8
alle andere admin opties:      2^4 = 16


nu geef je een gebruiker een getal met wat hij allemaal mag,
Bv
Als je wilt dat iemand deze opties kan,
- Member (getal 1)
- Kan users deleten (getal 8)
- Alle andere admin opties (getal 16)
dan geef je deze persoon het getal 25 (1+8+16 = 25)

Volgende stap:
Om te controleren of je gebruiker 'Member' opties heeft (voor bv het bekijken van een pagina)
doe je dit:
<?php
// Je functies enzo includen die de gegevens ophalen van je member
// In dit voorbeeld staat het 'getal/je rang opties' in $user['rang']

// nu kijken of de gebruiker een 'member' status heeft
if (($user['rang'] & 1) == 1)
{
  // jeej je mag de pagina zien
  echo "Hey hey<br />";
}
else
{
  // Niet de juiste rang
  echo "Doei doei<br />";
}
?>


Als je wilt kijken of deze persoon users kan deleten doe je dit:
<?php
// Je functies enzo includen die de gegevens ophalen van je member
// In dit voorbeeld staat het 'getal/je rang opties' in $user['rang']

// nu kijken of de gebruiker een 'member' status heeft
if (($user['rang'] & 8) == 8)
{
  // Joepie we mogen users deleten
  echo "Ga je gang :-)<br />";
}
else
{
  // Niet de juiste rang
  echo "U bent de zwakste schakel; totziens.<br />";
}
?>


Eerder deze uitleg had ik rang 25 (1+8+16 = 25)
dus ik mag beide dingen zien.
had ik rang 17 gehad (1+17) dan had ik geen users mogen deleten

ik hoop dat deze uitleg duidelijk is en dat je er wat aan hebt,
persoonlijk vind ik dit toch 1 van de betere 'rang systemenen' aangezien je oneindig veel opties kan maken. en omdat je over elke gebruike tot in de details kan laten besilissen wat hij wel of niet kan.
hey bedankt voor je uitlegt.

ik heb nu dit script

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

include("config.php");

if ($id ['rank'] & 1) == 1)
{

echo "Hey hey<br />";
}
else
{

echo "Doei doei<br />";
}
?>

en in de db de user rank 4 gegeven en krijg nu een error hier volgend me inlog script maby ligt het hieraan:

<?php

include("config.php");

if(!isset($_POST['submit']))
{
echo ('<form action='.$_SERVER['PHP_SELF'].' method="post">
Gebruikersnaam:<br><input type="text" name="gebruikersnaam" size="25"><br>
Wachtwoord:<br><input type="password" name="wachtwoord" size="25"><br>
<br><input type="submit" value="submit" name="submit"><br>
</form>');
}
else
{
$user = $_REQUEST['gebruikersnaam'];
$pass = $_REQUEST['wachtwoord'];
$user = strip_tags($user);
$pass = strip_tags($pass);
$user = str_replace(" ","",$user);
$pass = str_replace(" ","",$pass);
$user = str_replace("%20","",$user);
$pass = str_replace("%20","",$pass);
$user = addslashes($user);
$pass = addslashes($pass);
$pass = md5($pass);
$request = "SELECT * FROM users WHERE wachtwoord='".$pass."' AND gebruikersnaam='".$user."'";
$results = mysql_query( $request ) or die ( mysql_error() );
if(mysql_num_rows($results))
{
$getid = "SELECT * FROM users WHERE gebruikersnaam='".$user."' LIMIT 1";
$getidexec = mysql_query($getid) or die (mysql_error() );
while($r=mysql_fetch_array($getidexec))
{
$id = $r['id'];
$rank = $r['rank'];
}
$_SESSION['id'] = $id;
$_SESSION['rank'] = $rank;
echo 'User Logged in.<META HTTP-EQUIV=Refresh CONTENT="2; URL=editcontent.php">';
}
else
{
echo 'Username and password do not match.
<META HTTP-EQUIV=Refresh CONTENT="2"; URL="'.$_SERVER['PHP_SELF'].'">';
exit();
}
}
?>

hier mij db

CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`gebruikersnaam` varchar(32) NOT NULL default '',
`wachtwoord` varchar(32) NOT NULL default '',
`email` text NOT NULL,
`rank` int(2) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;


ik snap het echt niet meer...
wat geeft je error weer?
$id ['rank']

moet zijn
$id['rank']

geen spatie ertussen
edit:
sorry voor dubbele post.

edit2
ik ben slordig geweest met de haakjes

($id ['rank'] & 1) == 1)

moet zijn

(($id ['rank'] & 1) == 1)
jordy schreef op 18.05.2006 13:34
wat geeft je error weer?


ik heb de spatie weg gehaalt hielp niet veel. de fout melding is nu

de error was toen Notice: Undefined variable: user /www/htdocs/tijdelijk/editcontent.php on line 46
Doei doei
?>

script is nu

if (($user['rank'] & 1) == 1)
{
// jeej je mag de pagina zien
echo "Hey hey<br />";
}
else
{
// Niet de juiste rang
echo "Doei doei<br />";
}

hij kent de variables niet zegt tie maar variable id kent hij ook niet... het login script staat in een post hiervoor..
<?php
if(($rank & 1) == 1)
{
// jeej je mag de pagina zien
echo "Hey hey<br />";
}
else
{
// Niet de juiste rang
echo "Doei doei<br />";
}
?>
en we hebben weer een nieuw foutmelding :P

Notice: Undefined variable: rank in /www/htdocs/wwwinfrc/http/tijdelijk/editcontent.php on line 46
Doei doei
?>


script is:

if(($rank & 1) == 1)
{
// jeej je mag de pagina zien
echo "Hey hey<br />";
}
else
{
// Niet de juiste rang
echo "Doei doei<br />";
}

alvast heel erg bedankt voor je hulp!!!

Reageren