login  Naam:   Wachtwoord: 
Registreer je!
 Forum

inloggen bannersysteem

Offline svm - 03/08/2006 20:27
Avatar van svmPHP ver gevorderde Ik ben een script aan het schrijven (ja, alweer).
Dit keer een bannersysteem.
Hierbij moet je als admin zijnde (uiteraard) inloggen.
Maar zodra je ingelogd bent en je klikt op een link (die naar een plek op dezelfde pagina verwijst), ben je uitgelogd.
Hoe kan ik dit tegengaan?
Gelieve geen cookies, sessies mag wel, maar daar ben ik niet goed in, daarom vraag ik het hier.

Probeer het maar uit!
Gebruikersnaam = sima
Wachtwoord = test

code:
  1. <?
  2. $gebruikersnaam="sima"; //gebruikersnaam
  3. $wachtwoord = "test"; //wachtwoord
  4.  
  5. $thispage = $_SERVER['PHP_SELF'];
  6.  
  7. if($gebruikersnaam == $_POST['username'] && $wachtwoord == $_POST['password']){
  8. echo "<a href='". $thispage ."?actie=toevoegen'>Banner toevoegen</a>";
  9. if($_GET['actie'] == "toevoegen"){
  10. echo "werkt";
  11. }
  12. }else{
  13. ?>
  14. <form action="" method="post">
  15. Gebruikersnaam: <input type="text" name="username" /><br />
  16. Wachtwoord: <input type="password" name="password" /><p />
  17. <input type="submit" name="submit" value="Log in" />
  18. </form>
  19. <?
  20. }
  21. ?>

19 antwoorden

Gesponsorde links
Offline Button - 03/08/2006 20:31
Avatar van Button PHP ver gevorderde het is natuurlijk normaal dat je uitgelogd bent omdat je eigenlijk helemaal niet ingelogd bent geweest: je checked gewoon dat de pass en de user kloppen meer niet... gebruik sessies. ik ga hier niets voor je aanpassen, dat moet je zelf leren kijk eens bij de tuts, tut van Fangorn, over sessies.
Offline svm - 03/08/2006 20:33
Avatar van svm PHP ver gevorderde Die tutorial heb ik al gezien, maar lukt niet helemaal.
Ik wil het graag zo houden, behalve als het echt niet anders kan.
Offline Stijn - 03/08/2006 20:40
Avatar van Stijn PHP expert je zal sessies moeten gebruiken beste vriend anders lukt dat niet je kan natuurlijk nog andere manieren doen bijvoorbeeld in een mysql tabel met kolom ingelogd = 1 of 0 , maar sessies werkt beter en sneller. dus als ik jou was zou ik maar die tut eens goed lezen 
Offline svm - 03/08/2006 20:43 (laatste wijziging 03/08/2006 20:43)
Avatar van svm PHP ver gevorderde Ik ben al bezig.
En zoals je waarschijnlijk wel weet: ik werk NOOIT met mysql, dus dat valt af .
Offline Button - 03/08/2006 20:46 (laatste wijziging 03/08/2006 20:46)
Avatar van Button PHP ver gevorderde wat je ook kan doen is gewoon zoals dit:
ingelogd:
  1. <a href='". $thispage ."?actie=toevoegen&status=ingelogd'>Banner toevoegen</a>

uitgelogd:
  1. <a href='". $thispage ."?actie=toevoegen&status=ingelogd'>Banner toevoegen</a>


maar dit is zoooo stom om te doen dat ik me nu al schaam dat ik dat getyped heb.
Offline svm - 03/08/2006 20:49 (laatste wijziging 03/08/2006 20:52)
Avatar van svm PHP ver gevorderde Inderdaad, dat is niet slim.
Zo kun je namelijk ook als je niet ingelogd bent erop komen.
Daar had ik wel aan gedacht, maar gelijk uit mijn ideeën bak gegooid .


Nu heb ik het met sessies geprobeerd, maar dit werkt nog niet.
Vast een domme fout, maar ik zie hem niet:
  1. <?
  2. $gebruikersnaam="sima"; //gebruikersnaam
  3. $wachtwoord = "test"; //wachtwoord
  4.  
  5. $thispage = $_SERVER['PHP_SELF'];
  6.  
  7. if($gebruikersnaam == $_POST['username'] && $wachtwoord == $_POST['password']){
  8. $_SESSION['gebruikersnaam'] = $_POST['username'];
  9. $_SESSION['wachtwoord'] = $_POST['password'];
  10. echo "<a href='". $thispage ."?actie=toevoegen'>Banner toevoegen</a>";
  11. if($_GET['actie'] == "toevoegen"){
  12. if($_SESSION['gebruikersnaam'] == $_POST['username'] && $_SESSION['wachtwoord'] == $_POST['password']){
  13. echo "werkt";
  14. }
  15. }
  16. }else{
  17. ?>
  18. <form action="" method="post">
  19. Gebruikersnaam: <input type="text" name="username" /><br />
  20. Wachtwoord: <input type="password" name="password" /><p />
  21. <input type="submit" name="submit" value="Log in" />
  22. </form>
  23. <?
  24. }
  25. $_SESSION = array();
  26. ?>
Offline Nrzonline - 03/08/2006 20:53 (laatste wijziging 03/08/2006 21:06)
Avatar van Nrzonline PHP ver gevorderde ik typ het script zoals jij het wilt wel even, ik zou zo posten..
Verder wel, lees tutorials en meer over sessions..

*edit* Session destroy? :/
Je wil je sessies gebruiken om te controleren, waarom dan destroy als ik vragen mag..

maarja, hier een voorbeeld script:
http://plaatscode.be/1689/

session_destroy gebruik je om uit te loggen ja, dus als jij die onderaan je pagina zet, dan verwijder session die je hebt gemaakt om in gelogged te blijven meteen weer.. Ofterwijl, dan blijf je ook nooit ingelogged.
Offline svm - 03/08/2006 21:02 (laatste wijziging 03/08/2006 21:11)
Avatar van svm PHP ver gevorderde Om de sessie weer te verwijderen.
Dat stond in die tut.

Zal eens testen...
Werkt, ik zal de mijne is zonder die verwijdering testen.


Edit:
De mijn werkt nog niet .
Maar die van jou werkt, bedankt.

@Crew
Sluit het topic nog maar niet.
Offline Nrzonline - 03/08/2006 21:18 (laatste wijziging 03/08/2006 21:24)
Avatar van Nrzonline PHP ver gevorderde Bij jouw script gaat het direct al fout.

Je begint niet te controleren of er überhaupt wel is gedrukt op een submit knop die jouw gegevens van de input velden aanmaakt als een $_POST['naam']. Dus direct kent hij de $_POST['username'] en $_POST['password'] al niet. Begin daar maar is mee, anders krijg je elke keer foutmeldingen. Dit geld ook voor je $_GET[''], zorg eerst is even dat ook die wordt gecontroleerd, om foutmeldingen te voorkomen.

Verder, script is met Engels, en de dingen die er worden weergegeven op de site zelf in het Nederlands. En gebruik error_reporting (E_ALL); om te debuggen.
Offline svm - 03/08/2006 21:23 (laatste wijziging 03/08/2006 21:27)
Avatar van svm PHP ver gevorderde Oké,
Hij logt nu automaties in .
Dus ik ga je tips maar eens opvolgen!

Edit:
Nu doet hij dus automaties inloggen.
De code van nu: http://www.plaatscode.be/1690/.
Klik hier voor de pagina zelf.
Offline Nrzonline - 03/08/2006 21:32 (laatste wijziging 03/08/2006 21:33)
Avatar van Nrzonline PHP ver gevorderde wat je allemaal aan het gochelen bent weet ik niet, maar leer echt is netjes scripten. Je maakt aan $gebruikersnaam, en later maak je een session aan ($_SESSION['username']) met $username? Als dat geen fout oplevert, dan schiet ik mezelf een kogel door mijn kop. Ditzelfde geld voor je $_SESSION['password'].
Offline svm - 03/08/2006 21:34 (laatste wijziging 03/08/2006 21:35)
Avatar van svm PHP ver gevorderde Het werkt niet goed, maar er komt geen foutmeldng.
Dus het was leuk je gekent te hebben^^ .
Ik heb er van je genoten!

Ik zie de fout denk ik al.
Offline Nrzonline - 03/08/2006 21:36 (laatste wijziging 03/08/2006 21:37)
Avatar van Nrzonline PHP ver gevorderde
Citaat:
Het werkt niet goed, maar er komt geen foutmeldng.
nee omdat je error_reporting (E_ALL); niet aan hebt staan heldin..
Offline svm - 03/08/2006 21:40
Avatar van svm PHP ver gevorderde Ach, systeem, krijg de ***.
Sorry, moets er even uit.
Maar ik heb hem aangepast en hij werkt dus nogsteeds niet.

Ik ga nu even tv kijken, kom zo terug om eraan verder te werken.
Offline Nrzonline - 03/08/2006 21:44 (laatste wijziging 03/08/2006 21:53)
Avatar van Nrzonline PHP ver gevorderde gebruik mijn script en pas die aan? :/

Jouw volgorde klopt geen donder van en is onduidelijk.
Je gebruikt verschillende talen door elkaar en daardoor krijg je dus al een fout die ik je net vertelde
Je begrijpt volgensmij zelf niet wat je doet in je script, en je weet niet hoe je je fouten moet oplossen / controleren (tutorial/boek)..

Veel succes, maar ik kap hiermee als je toch gewoon dom doorgaat zonder echt te luisteren/lezen en toe te passen (of iig te proberen of te testen) wat ik aangeef.
Offline CDNC - 03/08/2006 21:58 (laatste wijziging 03/08/2006 21:59)
Avatar van CDNC PHP ver gevorderde Ik zou eigenlijk geen passwoorden opslaan in een sessie,
ik werk meetstal als volgt:

  1. <? # mooiere kleurtjes
  2. $upass = 'supergeheim';
  3. $uuser = 'keesje';
  4.  
  5. if(isset($_SESSION['logi']) && $_SESSION['logi'] == "logi"){
  6. # ingelogd
  7.  
  8. // weet ik veel wat, maar dingen die niet zijn bestemt voor iedereen
  9.  
  10. }else{
  11. # niet ingelogd
  12. if(isset($_POST['sub'])){
  13. # op submit gedrukt
  14. if($_POST['user'] == $uuser && $_POST['pass'] == $upass){
  15. # sessies aanmaken
  16. $_SESSION['logi'] == "logi";
  17. $_SESSION['naam'] == $_POST['user'];
  18. }else{
  19. echo'De ingevulde gegevns kloppen niet!';
  20. }
  21. }else{
  22. # inlog form showen
  23. // kun je zelf wel verzinnen
  24. }
  25. }
  26. ?>
Offline svm - 03/08/2006 22:59
Avatar van svm PHP ver gevorderde @Nrzonline
Ik maak dit script weer uit verveling, niet omdat ik het zelf nodig heb.
Als het af is post ik het bij de andere scripts hier op sima, want zo'n script was er nog niet zag ik.
Ik wil hem dus geheel zelf scripten, daarom pas ik de jouwe niet aan, maar de mijne.

Ik snap alleen echt niet wat ik fout doe.
Ik ga maar veel puzzelen, en daarna praat ik hier wel verder als het niet verder lukt.
Tot nu toe: bedankt allemaal!
Offline Nrzonline - 03/08/2006 23:28 (laatste wijziging 03/08/2006 23:30)
Avatar van Nrzonline PHP ver gevorderde Ik ben bang dat jij eerst nog wat meer moet gaan leren over veiligheid, sessies en vooral error handling (en errors voorkomen) voordat je uberhaupt dit script ooit post. Je hebt amper het login script gemaakt, en die werkte al voor geen donder, en klopte van geen kant. Maarja, je moet het zelf weten, ik ben namelijk wel erg benieuwd wat het gaat worden en wat uiteindelijk van jezelf komt (en NIET uit vragen en OPLOSSINGEN van anderen, want dat zou wel de meerderheid worden als ik het zo al bekijk..)
Offline svm - 05/08/2006 21:23
Avatar van svm PHP ver gevorderde Nou, al die sessies werden me te moeilijk.
Daarom heb ik het maar met cookies gedaan [via Setcookie()].
Dit kan toch geen kwaad? of wel?

Het is alleen voor de admin bedoeld dus dat sommige browsers de cookies niet accepteren is niet erg.
Hij werkt trouwens goed, dat inloggen.

Maar crew, laat het topic toch maar even open.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.234s