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!
maak een inlog script en ga werken met 2 soorten users
-die alles kunnen wijzigen
- die een paar dingen kunnen wijzigen

Donhertog schreef op 17.05.2006 12:23
maak een inlog script en ga werken met 2 soorten users
-die alles kunnen wijzigen
- die een paar dingen kunnen wijzigen



dat ik een inlogt scrpt moet gaan maken met verschillende users snap ik! Je geeft de conclusie van mijn vraag. Mijn vraag is ook hoe ik dit ga doen... tutorials, tips, voorbeelden...
er staan op deze site genoeg log in scripts
en anders kun je er zelf een maken

je zorgt dat je gebruikers tabel ook een veld heeft waar de rank in staad
- administrator die kan alles wijzigen
- en de gene die niet alles kan wijzigen

en dat lees je uit en pas je toe in een IF / else statement
Zover was hij zelf ook al...

Hoe ik het zou doen:
Bij de tabel van je data zet je een extra veld met 'rang' oid. Ook in de tabel gebruikers zet je zo'n veld 'rang'.

Bij het editten van de pagina controleer je dan of hun rang groter of gelijk is aan de rang uit de data tabel. En uiteraard of ze ingelogd zijn.

Edit
Wauw, 2 berichten er nog tussen :) Ik wordt echt langzaam :P
Willem-Jan schreef op 17.05.2006 12:29
Zover was hij zelf ook al...

Hoe ik het zou doen:
Bij de tabel van je data zet je een extra veld met 'rang' oid. Ook in de tabel gebruikers zet je zo'n veld 'rang'.

Bij het editten van de pagina controleer je dan of hun rang groter of gelijk is aan de rang uit de data tabel. En uiteraard of ze ingelogd zijn.

Edit
Wauw, 2 berichten er nog tussen :) Ik wordt echt langzaam :P


dit is idd een goed idee! Ik ga het op deze manier maar eens proberen.. Hoe laat ik mijn edit script kijken of de rang groter of gelijk is uit de data van de tabel.... Het inlog script kan ik inderdaad wel van deze site afhalen... Heb je nog een tip?
door de rank in nummers weer tegeven kun je de groter dan gebruiken
ok maar jongens ik heb echt nog niet zoveel ervaring in php..... en welk type moet het veld hebben in de database... zodat je er nummers kan uithalen..
ik heb nu het volgende script het werkt perfekt. heb er ook een registreer script voor het eenige wat er nu nog moet gebeuren is het include en het starten van de session op de pagina die beveiligt moet worden het script is als volgt

<?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_infraspecials WHERE wachtwoord='".$pass."' AND gebruikersnaam='".$user."'";
$results = mysql_query( $request ) or die ( mysql_error() );
if(mysql_num_rows($results))
{
$getid = "SELECT * FROM users_infraspecials 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();
}
}
?>


ik had nu het volgende boven mijn beveiligde pagina staan hij laad de content echter al zien voordat je bent ingelogt. en als je dan alsnog inlogt zegt hij ingelogt en vernieuwt de pagina en kan je weer opnieuw inloggen...

$_SESSION['id'] = $id;
$_SESSION['rank'] = $rank;
include("login.php");
Willem-Jan schreef op 17.05.2006 12:29
Zover was hij zelf ook al...

Hoe ik het zou doen:
Bij de tabel van je data zet je een extra veld met 'rang' oid. Ook in de tabel gebruikers zet je zo'n veld 'rang'.

Bij het editten van de pagina controleer je dan of hun rang groter of gelijk is aan de rang uit de data tabel. En uiteraard of ze ingelogd zijn.

Edit
Wauw, 2 berichten er nog tussen :) Ik wordt echt langzaam :P


Ik zou het als volgt doen (Voordeel is dat je meerdere user hebt die beplaade pagina's kan aanpassen

Tabel
id | user | email | ww | rank | pages
1 eris eris@ | ww| admin | 0
2 WJH WJ@ | ww | user | 1,2,3
3 Crazy crazy@ | ww| user | 2,3 5
enz...

En dan pages opslaan in een array en dan controleren met in_array()

Reageren