De pagina verwijst niet op een juiste manier door

Status
Niet open voor verdere reacties.

sirkserac

Gebruiker
Lid geworden
9 aug 2012
Berichten
43
hallo,

vanaf ik dit in mijn beveiligde paginas zet
PHP:
<?php
include('config.inc.php');
if(!isingelogd()) {
    echo "Je moet eerst inloggen om deze pagina te zien!";
	 header("Location: i_login.php");
	 exit;
} else {
    echo "Je zit in de beveiligde pagina!";
	 header("Location: _index.php");
	 exit;
}
?>

en via de login pagina ernaartoe ga krijg ik steeds deze melding:

Code:
De pagina verwijst niet op een juiste manier door
      
      
      
      
      
        
        
          Firefox heeft vastgesteld dat de server het verzoek voor dit adres doorverwijst op een manier die nooit zal eindigen.
        

        
        

  Dit probleem kan soms worden veroorzaakt door het uitschakelen of weigeren 
    van cookies.

en dit in firefox en ie.

iemand een idee?

en de cookies staan wel aan .

als ik de header location eruit haal dan werkt het wel, maar dan krijg ik natuurlijk niet te zien wat ik wil.
 
Laatst bewerkt:
gevonden denk ik maar of het goed is is een ander vraag ;-)

dit stukje heb ik verwijderd:

PHP:
else {
    echo "Je zit in de beveiligde pagina!";
     header("Location: _index.php");
     exit;
}

en nu werkt het toch :thumb:
 
een echo en dan een header location heeft natuurlijk geen zin.

wat doe je eerst.
1. je echot iets. dat is dus op de huidige pagina.
2. je doet met header("location..."); navigeren naar een andere pagina. dus die echo doet niets want je blijft niet op de pagina.

ik denk dat je weer deze zelfde test gaat doen als je in de beveiligde pagina komt.
die gaat kijken of je wel bent ingelogd.
dan stuurt hij je door naar die pagina en dan doet hij het weer opnieuw en opnieuw....................

dus ik denk niet dat je werkt met sessies.
nu je het stukje eruit gehaald hebt met location beveiligde pagina controleert hij dat dus niet meer.

dus:
PHP:
<?php
include('config.inc.php');
if(!empty($_SESSION['ingelogd']))
{
header('location: _index.php');
}
exit;
else
{
echo 'jwz';
}
?>
je moet dus zorgen dat je een sessie opslaat en dan controleer je of die goed is.
zoniet dan moet hij inloggen ofzoiets.

succes is ff lastig. k hoop dat het duidelijk is. (en het werkt (veilig!!!))
 
een echo en dan een header location heeft natuurlijk geen zin.

wat doe je eerst.
1. je echot iets. dat is dus op de huidige pagina.
2. je doet met header("location..."); navigeren naar een andere pagina. dus die echo doet niets want je blijft niet op de pagina.

ik denk dat je weer deze zelfde test gaat doen als je in de beveiligde pagina komt.
die gaat kijken of je wel bent ingelogd.
dan stuurt hij je door naar die pagina en dan doet hij het weer opnieuw en opnieuw....................

dus ik denk niet dat je werkt met sessies.
nu je het stukje eruit gehaald hebt met location beveiligde pagina controleert hij dat dus niet meer.

dus:
PHP:
<?php
include('config.inc.php');
if(!empty($_SESSION['ingelogd']))
{
header('location: _index.php');
}
exit;
else
{
echo 'jwz';
}
?>
je moet dus zorgen dat je een sessie opslaat en dan controleer je of die goed is.
zoniet dan moet hij inloggen ofzoiets.

succes is ff lastig. k hoop dat het duidelijk is. (en het werkt (veilig!!!))


aan de hand van deze zaken kijk ik of de sessie actief is (database related):


Code:
`sessionID`, `gebruikerID`, `hash`, `hash_key`, `datum`, `ip`

als ik de controle wijzig zoals je zegt dan krijg ik enkel een lege pagina.
 
je snapt dat je als je zoals het eerst was blijft herhalen voor altijd als je niet uitkijkt?
dus kan jij vast wel vanuit je eigen code een oplossing gaan bedenken want nu weet je wat er achter het probleem zit.
ik heb te weinig code van jou om te zien wat je precies moet veranderen.
 
je snapt dat je als je zoals het eerst was blijft herhalen voor altijd als je niet uitkijkt?
dus kan jij vast wel vanuit je eigen code een oplossing gaan bedenken want nu weet je wat er achter het probleem zit.
ik heb te weinig code van jou om te zien wat je precies moet veranderen.

hey, de code die ik gebruik vind je hier:

http://www.helpmij.nl/forum/showthread.php/719753-Strict-standards?p=4612269#post4612269

ben zelf nog niet lang bezig hiermee en alle hints en tips zijn dus zeker welkom.
 
Wat Arjan probeert uit te leggen is dat je een oneindige loop creëert door naar de zelfde pagina door te verwijzen.
Waarschijnlijk staat dit stukje op de index pagina (index.php) dus als de gebruiker is ingelogd zal de browser je ook oneindig doorverwijzen, dit mag natuurlijk niet.

PHP:
<?php
include('config.inc.php');
if(!isingelogd()) {
    echo "Je moet eerst inloggen om deze pagina te zien!";
     header("Location: i_login.php");
     exit;
} else {
    echo "Je zit in de beveiligde pagina!";
     header("Location: _index.php");
     exit;
}
?>

Het enige wat je moet doen als dit het geval blijkt te zijn, is de 2de header verwijderen:

PHP:
<?php
include('config.inc.php');
if(!isingelogd()) {
   // en idd de echo heeft geen nut
     header("Location: i_login.php");
     exit;
} else {
    echo "Je zit in de beveiligde pagina!";
}
?>


Edit: Dit geldt alleen voor de index pagina
 
Laatst bewerkt:
Wat Arjan probeert uit te leggen is dat je een oneindige loop creëert door naar de zelfde pagina door te verwijzen.
Waarschijnlijk staat dit stukje op de index pagina (index.php) dus als de gebruiker is ingelogd zal de browser je ook oneindig doorverwijzen, dit mag natuurlijk niet.

PHP:
<?php
include('config.inc.php');
if(!isingelogd()) {
    echo "Je moet eerst inloggen om deze pagina te zien!";
     header("Location: i_login.php");
     exit;
} else {
    echo "Je zit in de beveiligde pagina!";
     header("Location: _index.php");
     exit;
}
?>

Het enige wat je moet doen als dit het geval blijkt te zijn, is de 2de header verwijderen:

PHP:
<?php
include('config.inc.php');
if(!isingelogd()) {
   // en idd de echo heeft geen nut
     header("Location: i_login.php");
     exit;
} else {
    echo "Je zit in de beveiligde pagina!";
}
?>


Edit: Dit geldt alleen voor de index pagina

hey, dat had ik al begrepen en ook aangepast, maar wat die sessions betreft daar ken ik eigenlijk weinig van, ik heb nu gezien dat ik ook ingelogd blijf zolang ik niet uitlog (mogelijks te maken met die sessions die ik dus niet gebruik) wanneer ik uitlog word dit stuk in de db verwijderd, als ik niet uitlog blijft alles er dus in staan , of kan ik op die hash een time limit zetten?
 
Ten eerste sessies hebben niets te maken met een database.
Zo maak je een sessie aan:

PHP:
session_start();
$_SESSION['ingelogd']=true;

Zo check je of er is ingelogd:

PHP:
if ($_SESSION['ingelogd']==true)
{
 echo "Je zit in de beveiligde pagina!";
}else{
  header("Location: i_login.php");
     exit;
}
 
Laatst bewerkt:
Ten eerste sessies hebben niets te maken met een database.
Zo maak je een sessie aan:

PHP:
session_start();
$_SESSION['ingelogd']=true;

Zo check je of er is ingelogd:

PHP:
if ($_SESSION['ingelogd']==true)
{
 echo "Je zit in de beveiligde pagina!";
}else{
  header("Location: i_login.php");
     exit;
}
en hoe inplementeer ik dit dan in mijn huidig script? en hoe log ik dan uit? met session_distroy?
 
Dit stukje als de gebruiker heeft ingelogd:
PHP:
session_start();
$_SESSION['ingelogd']=true;
Dit als er op uitloggen wordt geklikt:
PHP:
session_start();
$_SESSION['ingelogd']=false;
 
en waar zet ik dat juist?

heb nu hier het volgende gedaan in login.php:

PHP:
 if(!$result = $mysqli->query($sql))    {
                                trigger_error('Fout in query: '.$mysqli->error);
                            } else {
                                if($mysqli->affected_rows > 0) {
                                    echo 'Je bent ingelogd!';
									session_start();
                                    $_SESSION['ingelogd']=true;
									header('Location: _index.php');
                                }
                            }                                            
                        }
 
Laatst bewerkt:
Ergens in function.inc.php set je deze functie isingelogd() op true daar komt dit:

PHP:
session_start();
$_SESSION['ingelogd']=true;

Edit: dat ziet er ook goed uit
 
Laatst bewerkt:
Dus nu dit vervangen:

PHP:
<?php
include('config.inc.php');
if(!isingelogd()) {
    echo "Je moet eerst inloggen om deze pagina te zien!";
     header("Location: i_login.php");
     exit;
} else {
    echo "Je zit in de beveiligde pagina!";
     header("Location: _index.php");
     exit;
}
?>

Met:

PHP:
if ($_SESSION['ingelogd']==true)
{
 echo "Je zit in de beveiligde pagina!";//of 'U bent ingelogd'
}else{
  header("Location: i_login.php");
     exit;
}
 
Laatst bewerkt:
ja dat werkt, maar als ik nu dus in logout pagina dit toevoeg:

PHP:
<?php session_start();
$_SESSION['ingelogd']=false;
?>

dan krijg ik een blanco pagina terug en kan ik toch nog altijd naar op de beveiligde pagina
 
Dit moet je wel op alle beveiligde pagina's zetten:

PHP:
if ($_SESSION['ingelogd']==true)
{
 echo "Je zit in de beveiligde pagina!";//of 'U bent ingelogd'
}else{
  header("Location: i_login.php");
     exit;
}


Waar staat dit nu bij jou?

PHP:
<?php session_start();
$_SESSION['ingelogd']=false;
?>
 
Laatst bewerkt:
je bent nu bezig voort te borduren op oude kennis.
als je nog aan het leren bent is het fouten maken.
leren.
opnieuw beginnen.

en uiteindelijk een goed resultaat hebben.

als ik je een tip mag geven begin eens helemaal opnieuw en denk na over de opbouw van je website.
ik ben ook nog aan het leren (misschien iets verder) maar voor ik een website klaar heb ben ik al min 1 keer opnieuw begonnen.

nu maak je voor jezelf iets wat onbegrijpelijk is. je kunt uiteraard wel kijken of er dingen zijn die in je nieuwe manier passen.

maar dat is mijn eigen mening. jij kan een andere hebben!!!
 
je bent nu bezig voort te borduren op oude kennis.
als je nog aan het leren bent is het fouten maken.
leren.
opnieuw beginnen.

en uiteindelijk een goed resultaat hebben.

als ik je een tip mag geven begin eens helemaal opnieuw en denk na over de opbouw van je website.
ik ben ook nog aan het leren (misschien iets verder) maar voor ik een website klaar heb ben ik al min 1 keer opnieuw begonnen.

nu maak je voor jezelf iets wat onbegrijpelijk is. je kunt uiteraard wel kijken of er dingen zijn die in je nieuwe manier passen.

maar dat is mijn eigen mening. jij kan een andere hebben!!!

weet je mss een goede tutorial over sessions dan voor administrator login systeem?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan