login  Naam:   Wachtwoord: 
Registreer je!
 Forum

New members.. (Opgelost)

Offline Simax - 26/05/2007 14:13
Avatar van SimaxOnbekend Beste mensen,

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?

Alvast bedankt .

Mvg, Rvb

51 antwoorden

Gesponsorde links
Offline Koen - 26/05/2007 14:15 (laatste wijziging 26/05/2007 14:17)
Avatar van Koen PHP expert Heb je al een aanmeld script bedacht of nog helemaal niets?
(dan weten we of we ons ergens op moeten baseren..)
Offline JBke - 26/05/2007 14:17 (laatste wijziging 26/05/2007 14:18)
Avatar van JBke PHP gevorderde weet niet goed wat voor voorbeeld je geeft de oplossing zelf toch, admin veranderd en bij registreren trial in je database he??

Wat voor voorbeeld zoek je, zijn 3 regels code neem ik aan, heb wel zo een voorbeeld maar zonder database

heb wel een volledig ledenscript met database en admin gedeelte enz..
Offline Webtijn - 26/05/2007 14:18
Avatar van Webtijn PHP interesse 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è!
Offline Simax - 26/05/2007 14:21
Avatar van Simax Onbekend Heb al wel iets geschreven,
maar weet nie zo goed hoe ik daar op verder kan gaan.
Zoiets heb ik in gedachten..

  1. <table cellpadding='0' cellspacing='0'>
  2.  
  3. <?php
  4. Mysql_connect($db_host, $db_user, $db_pass);
  5. Mysql_select_db($db_database) or die(Mysql_error());
  6.  
  7. $res = Mysql_query('Select * From crew Where rank = ('trial')';
  8. while ($arr = Mysql_fetch_assoc($res))
  9. {
  10. ?>
  11. <tr>
  12. <td><?php echo $arr['user_name']; ?></td>
  13. <td><?php echo $arr['user_nationality']; ?></td>
  14. <td><?php {hier moet een update query komen die de rank wijzigd van trial naar member}?></td>
  15. </tr>
  16. <?php
  17. }
  18. ?>
  19.  
  20. </table>


Mvg, Rvb
Offline Koen - 26/05/2007 14:30 (laatste wijziging 26/05/2007 14:37)
Avatar van Koen PHP expert
  1. <?php
  2. Mysql_connect($db_host, $db_user, $db_pass);
  3. Mysql_select_db($db_database)or die(Mysql_error());
  4. ?>
  5. <table cellpadding='0' cellspacing='0'>
  6. <?
  7. $res = MySQL_query("SELECT * FROM crew WHERE rank = 'trial'");
  8. while ($arr = MySQL_fetch_assoc($res))
  9. {
  10. ?>
  11. <tr>
  12. <td><?php echo $arr['user_name']; ?></td>
  13. <td><?php echo $arr['user_nationality']; ?></td>
  14. <td><?php echo "<a href=\"accept.php?userid=".$arr['id']."\">Accept?</a>"; ?></td>
  15. </tr>
  16. <?php
  17. }
  18. ?>
  19.  
  20. </table>
  21. <?
  22. // accept.php:
  23. if(IsSet($_SESSION['ingelogd'])) { //controleren of ingelogd( weet niet of je met sessies werkt..)
  24. if(IsSet($_GET['userid']) && is_numeric($_GET['userid'])) { // is userid wel gegeven + is het numeriek..
  25. mysql_query("UPDATE crew SET rank = 'member' WHERE id = '".$_GET['userid']."'"); //query
  26. } else {
  27. echo "userid niet gegeven.";
  28. }
  29. } else {
  30. echo "niet ingelogd.";
  31. }
  32. ?>

zoiets?
oh ja je moet ook nog controleren of de rank goedzit, anders kan de gebruiker zichzelf member maken..
EDIT: spelling 
Offline Simax - 26/05/2007 14:42
Avatar van Simax Onbekend Jah, zoiets zocht ik .
Maar hoe bedoel je 'je moet ook nog controleren of de rank goedzit'?

Mvg, Rvb
Offline Koen - 26/05/2007 14:49 (laatste wijziging 26/05/2007 14:50)
Avatar van Koen PHP expert 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)
  1. <?
  2. if(IsSet($_SESSION['ingelogd'] && $_SESSION['rank'] == "admin"))
  3. {
  4. //script
  5. } else {
  6. echo "Je bent niet ingelogd of je hebt niet de juiste rank.";
  7. }
  8. ?>

edit: en ik heb nog altijd dat stomme 'Nieuw Lid' als rank 
Offline Simax - 26/05/2007 14:51 (laatste wijziging 26/05/2007 14:53)
Avatar van Simax Onbekend Klopt.

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.


Mvg, Rvb
Offline Koen - 26/05/2007 15:04 (laatste wijziging 26/05/2007 15:05)
Avatar van Koen PHP expert Zoals ik al zei:
wanneer je je inlogd zorg je ervoor dat je in een sessie de rank van de user opslaagt.
  1. <?
  2. //hier je inlog verwerking en al het gedoe
  3. $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)
  4. $check_rank = mysql_fetch_assoc($qry);
  5. $_SESSION['rank'] = $check_rank['rank']; //zet je dus bij je andere sessies die je ingeeft.
  6. // boven elke admin pagina:
  7. if(IsSet($_SESSION['ingelogd'] && $_SESSION['rank'] == "admin"))
  8. {
  9. echo "juist!";
  10. // pagina
  11. } else {
  12. echo "Fout!";
  13. // niet ingelogd of niet de juiste rank.
  14. }
  15. ?>

+ voor sommige gebruikers zal het slechts een paar uur duren voor ze die admin paginas hebben gevonden 
Offline Simax - 26/05/2007 15:08 (laatste wijziging 26/05/2007 15:15)
Avatar van Simax Onbekend Oke.

Dankje voor alles .
De pagina 'new_members.php' wil niet werken.
Krijg een lege pagina *-).

  1. <?php
  2. Mysql_connect($db_host, $db_user, $db_pass);
  3. Mysql_select_db($db_database) or die(Mysql_error());
  4. ?>
  5.  
  6. <h1>New Members</h1>
  7.  
  8. <table cellpadding='0' cellspacing='0'>
  9.  
  10. <?php
  11. $res = Mysql_query("Select user_name, user_nationality' From crew Where rank = 'trial'";
  12. while ($arr = Mysql_fetch_assoc($res))
  13. {
  14. ?>
  15. <tr>
  16. <td><?php echo $arr['user_name']; ?></td>
  17. <td><?php echo $arr['user_nationality']; ?></td>
  18. <td><?php echo "<a href='accept_trial.php?user_id=".$arr['user_id']."'>Accept trial</a>"; ?></td>
  19. </tr>
  20. <?php
  21. }
  22. ?>
  23.  
  24. </table>


Mvg, Rvb
Offline Koen - 26/05/2007 15:09 (laatste wijziging 26/05/2007 15:40)
Avatar van Koen PHP expert zet
  1. <?php
  2. Mysql_connect($db_host, $db_user, $db_pass);
  3. Mysql_select_db($db_database) or die(Mysql_error());

helemaal vanboven
EDIT: aan die website te zien include je die paginas?
  1. <?php
  2. Mysql_connect($db_host, $db_user, $db_pass);
  3. Mysql_select_db($db_database) or die(Mysql_error());
  4. ?>

in index.php
+:
hoe include je die paginas, ik zie dat die andere paginas ook wit zijn..
Offline Simax - 26/05/2007 15:14 (laatste wijziging 26/05/2007 15:21)
Avatar van Simax Onbekend Dat heb ik gedaan,
maar de pagina doet helemaal niets.

Mvg, Rvb

Edit:
Die andere paginas bestaan nog niet.
Home doet het wel. Ik maak gebruik van switch, case, break op de index pagina.

  1. <?php
  2. if(isset($_GET['page']))
  3. {
  4. switch($_GET['page'])
  5. {
  6. case 'home': $sInc = 'home.php'; break;
  7. case 'crew': $sInc = 'crew.php'; break;
  8. case 'new_members': $sInc = 'new_members.php'; break;
  9. case 'agenda': $sInc = 'agenda.php'; break;
  10. case 'news': $sInc = 'news.php'; break;
  11. case 'contact': $sInc = 'contact.php'; break;
  12. case 'help': $sInc = 'help.php'; break;
  13. default: $sInc = 'home.php'; break;
  14. }
  15. include $sInc;
  16. }
  17. ?>


Btw..
Als ik naar de website ga, word de default pagina niet getoond.

Mvg, Rvb
Offline Koen - 26/05/2007 15:24 (laatste wijziging 26/05/2007 15:26)
Avatar van Koen PHP expert
Citaat:
Btw..
Als ik naar de website ga, word de default pagina niet getoond.

komt omdat je if(isset($_GET['page'])) gebruikt
  1. <?php
  2. if(isset($_GET['page']))
  3. {
  4. switch($_GET['page'])
  5. {
  6. case 'home': $sInc = 'home.php'; break;
  7. case 'crew': $sInc = 'crew.php'; break;
  8. case 'new_members': $sInc = 'new_members.php'; break;
  9. case 'agenda': $sInc = 'agenda.php'; break;
  10. case 'news': $sInc = 'news.php'; break;
  11. case 'contact': $sInc = 'contact.php'; break;
  12. case 'help': $sInc = 'help.php'; break;
  13. default: $sInc = 'home.php'; break;
  14. }
  15. include $sInc;
  16. } else {
  17. include 'home.php';
  18. }
  19. ?>


+ heb je geen msn, dat praat makkelijker..
btw: gebruik je wel login systeem?
Offline Simax - 26/05/2007 15:33
Avatar van Simax Onbekend Ik maak idd gebruik van if(isset($_GET['page'])).
Maak geen gebruik van msn, sorry.

Er gebeurt nog steeds niets..

Wil wel gebruik maken van een inlogsysteem, maar zover
was ik nog niet gekomen.

Mvg, Rvb
Offline Koen - 26/05/2007 15:37 (laatste wijziging 26/05/2007 15:48)
Avatar van Koen PHP expert Heb je
  1. <?php
  2. Mysql_connect($db_host, $db_user, $db_pass)or die(mysql_error());
  3. Mysql_select_db($db_database) or die(Mysql_error());
  4. ?>

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.
Offline Ultimatum - 26/05/2007 15:37 (laatste wijziging 26/05/2007 15:37)
Avatar van Ultimatum PHP expert @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?

Session_start() moet bovenaan staan
Offline Simax - 26/05/2007 15:48
Avatar van Simax Onbekend Hier mijn index.php:
http://www.plaatscode.be/5446/

Mvg, Rvb
Offline Koen - 26/05/2007 15:50 (laatste wijziging 26/05/2007 15:52)
Avatar van Koen PHP expert
Citaat:
en bestaan $db_host, $db_user, $db_pass en $db_database wel?

daar heb je niet op geantwoord, het ligt allicht aan je inlog gegevens.
@ Ultimatum: Pak mijn vragen niet steeds af 
Offline Ultimatum - 26/05/2007 15:50
Avatar van Ultimatum PHP expert Hmm.. Waar ken je de vars $db_host etc.. een waarde toe?
Offline Simax - 26/05/2007 15:55
Avatar van Simax Onbekend De variabelen worden gehaald uit 'config.ic.php'.

  1. <?php
  2. /* Database & master password configuratie */
  3. $db_host = 'localhost';
  4. $db_user = 'activion';
  5. $db_pass = '';
  6. $db_database = 'activion';
  7.  
  8. /* Zet deze waarde naar false om geen errors op de site weer te geven
  9. Zet de waarde naar true om snel te kunnen zien waar een fout zit. */
  10. define('DEBUGGING_MODE', true);
  11.  
  12. if(DEBUGGING_MODE) // If true...
  13. {
  14. ini_set('display_errors', true);
  15. }
  16. ?>


Mvg, Rvb
Offline Koen - 26/05/2007 15:56 (laatste wijziging 26/05/2007 16:00)
Avatar van Koen PHP expert Ik zie nergens in index.php dat je config.inc.php include..?
@hieronder:
LOL!
Offline Simax - 26/05/2007 15:58 (laatste wijziging 26/05/2007 16:01)
Avatar van Simax Onbekend Bij deze gebeurt!

:)

Edit:
Nogal veel errors..
Offline Koen - 26/05/2007 16:03 (laatste wijziging 26/05/2007 16:04)
Avatar van Koen PHP expert http://www.plaatscode.be
zet daar submenu.php eens op.
voor de niet-volgers: http://activion.reversemasters.nl
Offline Simax - 26/05/2007 16:05 (laatste wijziging 26/05/2007 16:09)
Avatar van Simax Onbekend Oke.

Hier de code:
http://www.plaatscode.be/5448/

Misschien eerst een inlogsysteem maken?
Of is dat niet het probleem/handig?

Mvg, Rvb
Offline Koen - 26/05/2007 16:07 (laatste wijziging 26/05/2007 16:07)
Avatar van Koen PHP expert jep je kan beter eerst de login maken ;)
aangezien ik eraan twijfel of $res['rank'] bestaat?
btw moet admin tussen quotes
Offline Simax - 26/05/2007 16:09 (laatste wijziging 26/05/2007 16:10)
Avatar van Simax Onbekend Oke.

Bij deze gewijzigd ;).

Edit:
Hoe bouw ik een login?
Offline Koen - 26/05/2007 16:14 (laatste wijziging 26/05/2007 16:20)
Avatar van Koen PHP expert [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..
Offline Simax - 26/05/2007 16:31 (laatste wijziging 26/05/2007 16:31)
Avatar van Simax Onbekend Uhm..

Heb zo eens gekeken.
Misschien kun je mij een beetje opweg helpen?
Ben niet zo bekend met php.

Mvg, Rvb
Offline Koen - 26/05/2007 16:32 (laatste wijziging 28/05/2007 13:05)
Avatar van Koen PHP expert 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:
  1. <?
  2. if(IsSet($_SESSION['login'])) // of hij al is ingelogd
  3. {
  4. header('location: ?page=home'); // verwijzen naar userindex pagina
  5. }
  6. else {
  7. if($_SERVER['REQUEST_METHOD'] == "POST") // of er op submit is gedrukt...
  8. {
  9. echo "<h3>Checking login..</h3>";
  10. if(!empty($_POST['login'])) // naam niet ingevuld
  11. {
  12. if(!empty($_POST['passw'])) // wachtwoord niet ingevuld
  13. {
  14. $usr = mysql_fetch_assoc(mysql_query("select * from crew WHERE naam = '".mysql_real_escape_string($_POST['login'])."' AND password = '".mysql_real_escape_string($_POST['passw'])."'"));
  15. if($usr['password'] == $_POST['passw']) // pw = juist?
  16. {
  17. $_SESSION['login'] = 1; //sessies aanmaken..
  18. $_SESSION['name'] = $usr['user_name'];
  19. $_SESSION['password'] = $_POST['passw'];
  20. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  21. $_SESSION['rank'] = $usr['user_rank'];
  22.  
  23. $_SESSION['id'] = $usr['user_id'];
  24.  
  25. echo "Login Correct!<br />wacht op refresh of klik <a href=\"doorverwijspagina.php\">hier</a>.";
  26. header('Refresh: 1; URL= doorverwijspagina.php'); // vervangen door je doorverwijspagina
  27. } else {
  28. echo "Fout wachtwoord of naam!<br /><a href=\"javascript://\" onclick=\"history.go(-1)\">Ga terug</a>";
  29. }
  30. } else {
  31. echo "Vul wachtwoord in";
  32. }
  33. } else {
  34. echo "vul naam in!";
  35. }
  36. } else {
  37.  
  38. ?>
  39. <h3>Login</h3>
  40. <form action="<?=$_SERVER['REQUEST_URI'];?>" method="post">
  41. <table width="150">
  42. <tr><td>Name:</td><td><input type="text" name="login" value="Name"></td></tr>
  43. <tr><td>Password:</td><td><input type="password" name="passw" value="password"></td></tr>
  44. <tr><td>&nbsp;</td><td><input type="submit" name="submit" value="Log in!"></td></tr>
  45. </table>
  46. <?
  47. }
  48. }
  49. ?>
Offline Simax - 26/05/2007 16:36 (laatste wijziging 26/05/2007 17:45)
Avatar van Simax Onbekend Ok, dankje .

Edit:
Heb een tabel genaamd crew.
Hierin zitten de gegevens van alle members.
Oa user_id, user_name, user_password, user_rank.

Mvg, Rvb
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.31s