Om te voorkomen dat zomaar iedereen zich kan aanmelden op onze website hebben we een systeem bedacht met ranks. Wanneer je je aanmeld krijg je een standaard-rank(trial). Degene met trial als rank worden weergegeven op de pagina 'new_members.php' die alleen toegankelijk is voor admins.
Hier worden zijn gegevens weergegeven. Wanneer een admin een trial accepteert(link) word de rank gewijzigd in 'member'.
Nu hebben we niet zoveel ervaring met dit soort script en zouden we graag een handje op weg geholpen worden. Is er iemand die ons een voorbeeldje kan geven?
Heel simpel te doen, met enige PHP kennis. Het komt erop neer dat je een veld in je database aan moet maken genaamd rank met een enum waarde van 0 en 1 welke je de standaardwaarde 0 meegeeft.
Op de admin pagina doorloop je alle members die op 0 staan (Select Query, Fetch Assoc) en vervolgens maak je een actie die een update query bevat welke de rank waarde op 1 zet.
Ik raad je aan PHP te leren of je portomonee open te trekken want zomaar een aantal pagina's maken zie ik niemand hier doen hè!
<table cellpadding='0' cellspacing='0'>
<?php
Mysql_connect($db_host, $db_user, $db_pass);
Mysql_select_db($db_database) or die(Mysql_error());
$res = Mysql_query('Select * From crew Where rank = ('trial')';
while ($arr = Mysql_fetch_assoc($res))
{
?>
<tr>
<td><?php echo $arr['user_name']; ?></td>
<td><?php echo $arr['user_nationality']; ?></td>
<td><?php {hier moet een update query komen die de rank wijzigd van trial naar member}?></td>
</tr>
<?php
}
?>
</table>
wel, ik bedoel dus:
je laat nergens blijken van enige beveiliging in dat systeem..
je zou misschien zorgen dat je je kan inloggen met sessions
en de rank van de gebruiker opslagen in en sessie.
anders kan de gebruiker gewoon naar die pagina gaan en zichzelf 'member' als rank geven.
dus check je boven aan de pagina('s)
<?
if(IsSet($_SESSION['ingelogd'] && $_SESSION['rank'] == "admin"))
{
//script
} else {
echo "Je bent niet ingelogd of je hebt niet de juiste rank.";
}
?>
Om deze pagina te bekijken moet je admin zijn & ingelogd.
Wanneer men inlogd als admin(rank) komen er extra menu items in het menu. Hierin zit oa 'new_members.php'.
In het standaard menu komt 'new_members.php' niet voor.
Is dit wat je bedoelt?
Citaat:
Hoe zorg ik ervoor dat paginas alleen toegankelijk zijn voor admins? Het is simpel om de url te wijzigen.
<?
//hier je inlog verwerking en al het gedoe
$qry = mysql_query("SELECT * FROM crew WHERE name = '".$_POST['name']."' AND password = '".addslashes($_POST['password'])."'"); // dus user info selecteren( zal jij al gedaan hebben normaal of iets dergelijks)
$check_rank = mysql_fetch_assoc($qry);
$_SESSION['rank'] = $check_rank['rank']; //zet je dus bij je andere sessies die je ingeeft.
// boven elke admin pagina:
if(IsSet($_SESSION['ingelogd'] && $_SESSION['rank'] == "admin"))
{
echo "juist!";
// pagina
} else {
echo "Fout!";
// niet ingelogd of niet de juiste rank.
}
?>
<?
//hier je inlog verwerking en al het gedoe
$qry=mysql_query("SELECT * FROM crew WHERE name = '".$_POST['name']."' AND password = '".addslashes($_POST['password'])."'");// dus user info selecteren( zal jij al gedaan hebben normaal of iets dergelijks)
bovenaan je INDEX.PHP gezet?
en bestaan $db_host, $db_user, $db_pass en $db_database wel?
@ ultimatum:
ik toonde alleen aan hoe je het wel moest doen ALS je isset gebruikt.
+ dat van session_start() heb ik al in zo'n 20 posts gezegd. @ Rvb: ik zie dat je wat aan het proberen bent en er
Access denied for user 'apache'@'localhost' (using password: NO)
komt te staan.
dit betekent dat er iets fout is met je inloggegevens.
@sliphead, waarom controleer je eerst en anders ga je naar home.php? Hier is de default case in een switch voor, dus gooi alles weg en houd alleen die switch. En echo anders een $_GET['page'] ofzo, staat de uitkomst daarvan wel in 1 van de cases?
<?php
/* Database & master password configuratie */
$db_host = 'localhost';
$db_user = 'activion';
$db_pass = '';
$db_database = 'activion';
/* Zet deze waarde naar false om geen errors op de site weer te geven
Zet de waarde naar true om snel te kunnen zien waar een fout zit. */
define('DEBUGGING_MODE', true);
if(DEBUGGING_MODE) // If true...
{
ini_set('display_errors', true);
error_reporting(E_ALL);
}
?>
<?php
/* Database & master password configuratie */
$db_host='localhost';
$db_user='activion';
$db_pass='';
$db_database='activion';
/* Zet deze waarde naar false om geen errors op de site weer te geven
Zet de waarde naar true om snel te kunnen zien waar een fout zit. */
[url=http://www.sitemasters.be/tutorials/6/1/242/MySQL/Inlogsysteem_met_MySQL]Tutorial Sitemasters..[/URL]
maar die werkt ook met cookies
kijk maar wat je ervan opsteekt..
lastig hierzo op een forum..
maar ok ik zal je wat op weg helpen, ik edit binnen paar minuten het script..
mysql:
dit zet je in een tabel: ( heb de query niet..)
1. user_ID int(11) - auto_increment - vink 'primary key' aan.
2. user_name varchar(75)
3. user_password varchar(75)
4. user_rank varchar(75) standaardwaarde = trial
LOGIN.PHP: