Toon posts:

[php] membersystem.

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben bezig met een membersysteem, maar k heb 1 probleempje gevonden.

Als ik deze "functie" gebruikt als men inlogt vanaf een andere pagina :

print header("location: $HTTP_REFERER");

Weergeeft hij de pagina waarvanaf werd ingelogd.
Nu heb ik echter 1 probleem. Als men per ongeluk het verkeerde gebruikersnaam of paswoord invoert, geeft mijn script een error dat de gegevens niet kloppen. Men kan dan in het login script het weer opnieuw proberen. Zodra men de gegevens wel correct invult begint hij weer te rommelen met deze "functie" :

print header("location: $HTTP_REFERER");

Vreemd genoeg gaat hij dan niet terug naar de oorspronkelijke pagina waarvanaf men inlogde. Hij keert gewoon terug naar het login.php script waar je het voor de 2de keer hebt geprobeerd.

Hoe los k dit probleem op ? Zodat hij terug gaat oorspronkelijke pagina waarvanaf men inlogde.

Mvg,

Johnny

  • eborn
  • Registratie: April 2000
  • Laatst online: 08-09 12:50
Ik zou het zonder de print ervoor doen. Helpt dat? ;)

Wat betreft het terugkomen naar de oorspronkelijke pagina. Misschien kun je in je login forum altijd de referrer opslaan? Door middel van een hidden form field?

Verwijderd

De HTTP_REFERER string geeft de leetterlijk url waar de user vandaan kwam. Dus inclusief de querystring. Misschien is het de moeite waard om daar even naar te kijken.

Verwijderd

Topicstarter
Op dinsdag 09 april 2002 14:48 schreef eborn het volgende:
Ik zou het zonder de print ervoor doen. Helpt dat? ;)

- Nope, zonder print werkt het ook niet.

Wat betreft het terugkomen naar de oorspronkelijke pagina. Misschien kun je in je login forum altijd de referrer opslaan? Door middel van een hidden form field?

- Hoe doe k dat dan met die hidden field ?

Verwijderd

|:( Gewoon html hoor.
code:
1
<input type=\"hidden\" name=\"referer\" value=\"$HTTP_REFERER\">

Verwijderd

Topicstarter
ik heb nu dit in inde.php staan :

echo "<input type='hidden' name='url' value='login.php'>";

als men de gegevens juist invult wordt je doorgestuurd naar de pagina waarvanaf je inlogt. Dit staat er in login.php :

header("location: $url");

maar hij gaat niet terug naar inde.php.... vreemd.. wie ziet ut probleem ?

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 20:41

TheDane

1.618

PHP:
1
<?// dit bovenaan je script zettenif (!$referer) {   $referer = $HTTP_REFERER;}// dit zetten na 't (succesvol) inloggenHeader("Location: $referer");break;?>

Verwijderd

Topicstarter
Je logt in vanaf een andere pagina dan waar de gegevens gecontroleerd worden... dus jou optie kan alvast niet....

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 21:37
Je mag niet uitgaan van $HTTP_REFERER. Die werkt niet altijd.


Maak een hidden field waar je username/password invult en gebruik daarin als waarde <?php echo $PHP_SELF; ?>.

En dan gebruik je die variabele in de validatiepagina en redirect je daarnaar terug :z

  • Grum
  • Registratie: Juni 2001
  • Niet online
ddc: Je mag niet uitgaan van $HTTP_REFERER. Die werkt niet altijd.

Fijn om te zien dat sommige mensen toch luisteren naar dingen die je zegt zodat je ze zelf niet nog es 10x moet zeggen ;)

dcc: :* O+

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 21:37
Op dinsdag 09 april 2002 15:53 schreef Grum het volgende:
ddc: Je mag niet uitgaan van $HTTP_REFERER. Die werkt niet altijd.

Fijn om te zien dat sommige mensen toch luisteren naar dingen die je zegt zodat je ze zelf niet nog es 10x moet zeggen ;)

dcc: :* O+
O+

Maarre, daarvoor wist ik al zoiets hoor, namelijk met plaatjes is het ook zo'n gedoe... :Z

Verwijderd

Als je sessions gebruikt, dan kun je url van elke pagina die je bezoekt als sessie-variabele opslaan, en bij pagina's waarbij je dit niet wilt laat je die url gewoon staan.

Daarna kun je de bezoeker weer terugsturen naar de url die in je session staat.

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 21:37
Op dinsdag 09 april 2002 15:56 schreef Cheatah het volgende:
Als je sessions gebruikt, dan kun je url van elke pagina die je bezoekt als sessie-variabele opslaan, en bij pagina's waarbij je dit niet wilt laat je die url gewoon staan.

Daarna kun je de bezoeker weer terugsturen naar de url die in je session staat.
Wat natuurlijk ook leuk is als er meerdere vensters zijn geopend :) *D

Verwijderd

Topicstarter
Ik zie dat jij ook een membersysteem op je site hebt.... hoe heb jij het dan gedaan ?

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 21:37
Op dinsdag 09 april 2002 16:06 schreef Lachplaneet.nl het volgende:
Ik zie dat jij ook een membersysteem op je site hebt.... hoe heb jij het dan gedaan ?
Is niet mijn site, ik steun de site van iemand anders hier op GoT. Maar aangezien die persoon modje is, kun je hem beter niet wakker maken, anders krijg je nog een slotje ;)

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-09 18:58
Op dinsdag 09 april 2002 15:43 schreef Lachplaneet.nl het volgende:
ik heb nu dit in inde.php staan :

echo "<input type='hidden' name='url' value='login.php'>";

als men de gegevens juist invult wordt je doorgestuurd naar de pagina waarvanaf je inlogt. Dit staat er in login.php :

header("location: $url");

maar hij gaat niet terug naar inde.php.... vreemd.. wie ziet ut probleem ?
Ik zie niks vreemds...

...als jij je formpje, waar...
code:
1
<input type='hidden' name='url' value='login.php'>

...staat, naar login.php stuurt, en daar een header verstuurd met...
PHP:
1
<?Header("Location: $url");?>

...vind ik het niet vreemd dat ie niks doet omdat $url ( waarschijnlijk ) gelijk is aan "login.php".

Doe in je inde.php dit eens:
PHP:
1
<?echo "<input type='hidden' name='url' value='http://$SERVER_NAME$SCRIPT_NAME'>";?>

Eventueel gebruikmakend van $_SERVER.

zie verder: http://www.php.net/manual/en/reserved.variables.php
Pagina: 1