login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[PHP]Adminsysteem

Offline finduilas - 03/03/2006 08:47
Avatar van finduilasPHP gevorderde Hallo;

Ik heb nu eindelijk een werkend adminsysteem gevonden.
  1. <?php
  2.  
  3. $aUsers = array
  4. (
  5. array('finduilas','Geheim'),
  6. array('Piet','Geheim')
  7. );
  8. // Array met naam en wachtwoord, dit kunnen er veel meer zijn
  9. $iTijd = 600;
  10. // De tijd nadat je wordt uitgelogd als je voor X aantal seconden in actief bent.
  11.  
  12. function SessieRegister($sUser,$sPass)
  13. {
  14. $_SESSION['aUser'] = array
  15. (
  16. 'naam' => $sUser,
  17. 'pass' => sha1($sPass),
  18. 'tijd' => time()
  19. );
  20. }
  21.  
  22. function SessieUpdate()
  23. {
  24. global $iTijd;
  25. if(isset($_SESSION['aUser']))
  26. {
  27. if($_SESSION['aUser']['tijd'] > (time()-$iTijd))
  28. {
  29. }
  30. else
  31. {
  32. $_SESSION['aUser']['tijd'] = time();
  33. }
  34. }
  35. else
  36. {
  37. }
  38. }
  39.  
  40. function SessieLogin($sUser,$sPass,$aUsers)
  41. {
  42. if(isset($_SESSION['aUser']))
  43. { return false; }
  44. else
  45. {
  46. foreach($aUsers as $aValue)
  47. {
  48. if($aValue[0] == $sUser && $aValue[1] == $sPass)
  49. {
  50. SessieRegister($sUser,$sPass);
  51. return true;
  52. break;
  53. }
  54. else
  55. { return false; }
  56. }
  57. }
  58. }
  59. ?>
  60. <html>
  61. <head>
  62. <title>Login pagina</title>
  63. </head>
  64. <body>
  65. <?php
  66. if(isset($_SESSION['aUser']))
  67. {
  68. // Hier je beveiligde pagina
  69. echo 'Ingelogd.<a href="leden.php">Ga verder</a>';
  70. }
  71. else
  72. {
  73. if($_SERVER['REQUEST_METHOD'] == 'POST')
  74. {
  75. if($_POST['sUser'] == '' || $_POST['sPass'] == '')
  76. { echo 'Je bent iets vergeten in te vullen.'; }
  77. elseif(SessieLogin($_POST['sUser'],$_POST['sPass'],$aUsers))
  78. { header("Location: ".$_SERVER['PHP_SELF']); }
  79. else
  80. { echo 'Wachtwoord en/of gebruikersnaam kwamen niet overeen.'; }
  81. }
  82. ?>
  83. <form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
  84. <dl>
  85. <dt>Naam:</dt>
  86. <dd><input type="text" name="sUser" /></dd>
  87. <dt>Wachtwoord:</dt>
  88. <dd><input type="password" name="sPass" /></dd>
  89. <dd><input type="submit" value=" Login " /></dd>
  90. </dl>
  91. </form>
  92. <?php
  93. }
  94. ?>
  95. </body>
  96. </html>


Maar hoe kan ik nu eenvoudig kijken met een script of ik op andere pagina's ben ingelogd?

13 antwoorden

Gesponsorde links
Offline Button - 03/03/2006 09:17 (laatste wijziging 03/03/2006 09:25)
Avatar van Button PHP ver gevorderde ik heb niet heel het script goed bekeken, maar volgens mij moet dit voldoen:
check_inc.php
  1. <?php
  2. $iTijd=600;
  3. if(isset($_SESSION['aUser']))
  4. {
  5. if($_SESSION['aUser']['tijd'] > (time()-$iTijd))
  6. {
  7. }
  8. else
  9. {
  10. $_SESSION['aUser']['tijd'] = time();
  11. }
  12. }
  13. else
  14. {
  15. }
  16. ?>

--> kheb gewoon een stuk uit een functie van het script genomen zoals je wel kon zien, maar volgens mij moet het wel voldoen... (ik weet niet of helemaal klopt, ik heb weinig tijd)
Offline finduilas - 03/03/2006 10:06
Avatar van finduilas PHP gevorderde Als ik dit include krijg ik een witte pagina.Waarschijnlijk een error (mijn host weergeeft die niet )
Offline Thomas - 03/03/2006 10:36
Avatar van Thomas Moderator Vergeet session_start() niet?
En stop $iTijd in je sessie... of laat hem (net als $_SESSION['tijd']) helemaal weg.

Toch fijn, dat je een "werkend" adminsysteem hebt gevonden, maar niet weet hoe die werkt . Lijkt me niet echt bevorderlijk voor het waarborgen van de beveiliging van je pagina's...
Offline kokx - 03/03/2006 10:52
Avatar van kokx Onbekend Die errors niet weergeven? Er staat toch bovenaan:
error_reporting(E_ALL);
Dan worden ze toch weergeven.
Offline finduilas - 03/03/2006 10:52 (laatste wijziging 03/03/2006 10:54)
Avatar van finduilas PHP gevorderde
  1. <?php
  2. ?>


Dit enkel dus?

KOKX;
In al mijn scripts staat dit aan.Maar mijn host weergeeft ze niet.(Vintage heeft me dit vertelt)
Offline Wim - 03/03/2006 11:06
Avatar van Wim Crew algemeen
  1. <?php
  2. $iTijd=600;
  3. if(isset($_SESSION['aUser']))
  4. {
  5. if($_SESSION['aUser']['tijd'] > (time()-$iTijd))
  6. {
  7. }
  8. else
  9. {
  10. $_SESSION['aUser']['tijd'] = time();
  11. }
  12. }
  13. else
  14. {
  15. }
  16. ?>


die exit veroorzaakt de witte pagina...

//edit: wat er in dit stukje code gebeurd volg ik niet helemaal ... maar dit lijkt me alles behalve veilig... (als er ook maar IETS in de sessie aUser zit, ben je ingelogd)
Offline finduilas - 03/03/2006 11:18 (laatste wijziging 03/03/2006 12:50)
Avatar van finduilas PHP gevorderde Weet er nog iemand een eenvoudige tutorial om zelf zo'n adminsysteem te scripten?Want ik begrijp er niet echt veel van.

EDIT:Mijn IE sloeg tilt met als effect er 3 posts staan.
Offline Button - 03/03/2006 12:54
Avatar van Button PHP ver gevorderde @mathias: je eerste reactie: het is normaal dat je een witte pagina krijgt, want je print niets af...
Offline finduilas - 03/03/2006 15:42
Avatar van finduilas PHP gevorderde Dat was niet het volledig script.Maar kan iemand me helpen?
Offline Joel - 03/03/2006 17:14
Avatar van Joel Eigenaar http://www.site...&id=85

Succes 
Offline finduilas - 03/03/2006 17:43 (laatste wijziging 04/03/2006 04:23)
Avatar van finduilas PHP gevorderde EDIT:Het is me gelukt De eerste x dat ik zelf een stukje kan scripten .Nu vraag ik me wel af of het veilig is.
  1. <?php
  2. // include/require hier evt nog andere zaken
  3. require ("connect.php");
  4. // we willen op deze pagina gebruik maken van beveiliging mbv sessies,
  5. // dus includen (requiren) we session.php
  6. require("session.php");
  7. ?>
  8. <html>
  9. <head>
  10. <title>Testvoorbeeld</title>
  11. </head>
  12.  
  13. <body>
  14. <?php
  15. // controle op ingelogd zijn:
  16. if(isset($_SESSION['suser'])) {
  17. ?>Je bent ingelogd als <b><?= $_SESSION['suser'] ?></b><br />
  18. <?php
  19. }
  20. if(($_SESSION['slevel'] & 5) != 5) {
  21. ?>
  22. Je hebt de adminrechten niet.
  23. <?php
  24. }
  25. elseif(($_SESSION['slevel'] & 5) == 5) {
  26. // voer code uit om te controleren op juiste levels
  27. ?>
  28. Je hebt de adminrechten<br />
  29. <?php
  30. }
  31. else {
  32. ?>
  33. Je bent op dit moment niet ingelogd.<br />
  34. <a href="login.php">inloggen</a><br />
  35. </body>
  36. </html>
  37. <?php
  38. }
  39. ?>


EDIT2: IK heb een probleem ontdekt .Als ik me nu uitlog krijg ik ook Je hebt de adminrechten niet.
Offline WimJ - 04/03/2006 11:15
Avatar van WimJ Grafische gevorderde als dit script met mysql werkt dan ligt het probleem in de instellingen van de tabel dus de rechten maar mischien is kijken in config.php ofzo ??

ik zou het niet weten wat anders
Offline finduilas - 04/03/2006 12:37
Avatar van finduilas PHP gevorderde Denk het niet,Want als ik inlog met rechten 5 krijg ik de juiste melding
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s