PHP redirict na login.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Wouter J

Wouter J

19/02/2012 13:24:04
Quote Anchor link
En die andere oplossing die je geeft is fout.

Als je goed script heb je alle code boven je HTML staan en in je HTML alleen maar echo's en wat simpele if'jes. Dus je krijgt dan nooit problemen.
 
PHP hulp

PHP hulp

26/04/2024 17:02:36
 
Bas  van de Steeg

Bas van de Steeg

19/02/2012 13:25:46
Quote Anchor link
Thomas ik heb er geen html voor staan. Want in de html echo ik de functies en voor de html staan de functies. Maar het kan zo zijn dat het werkt . Ik ga het even proberen.
 
Thomas R

Thomas R

19/02/2012 13:27:02
Quote Anchor link
Geef maar eens een paar argumenten waarom dat mijn script fout is dan? Want voor zover ik weet heb jij nog geen oplossing geleverd?
Wie weet heeft hij wel html codes boven het script staan dus wie ben jij om te zeggen dat hij dat niet heeft?
 
Bas  van de Steeg

Bas van de Steeg

19/02/2012 13:28:31
Quote Anchor link
Thomas lees eerst is goed mijn reactie voordat je commentaar geeft.:-)
En trouwens Wouter heeft al wel een oplossing gegeven , dus je reactie slaat nergens op .
Gewijzigd op 19/02/2012 13:29:35 door Bas van de Steeg
 
Thomas R

Thomas R

19/02/2012 13:31:02
Quote Anchor link
@Bas, hoe zit je website in elkaar? Ik bedoel hoe worden de pagina's aangeroepen?

Want zou je het op een manier als deze doen:
http://www.domein.nl/?page=pagina
Dan heb je in de index waarschijnlijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_GET
['pagina'];
?>

en ergens onderin:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include("bestandje waar de pagina bij hoort.php");
?>


Met deze manier heb je uiteindelijk wel html codes boven je pagina staan.
 
Bas  van de Steeg

Bas van de Steeg

19/02/2012 13:37:30
Quote Anchor link
Thomas ik heb alles in meerdere functies.
Dus dat $_GET['page'] staat in een functie en dan op de plek waar het include moet worden heb ik dan
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
Incfunctie();
?>

staan. Zoals Wouter net zei.
 
Wouter J

Wouter J

19/02/2012 14:29:19
Quote Anchor link
Thomas, naar mijn mening heb ik hier de oplossing gegeven?

Waarom jou oplossing fout is:
- Meta tags horen in de head thuis en niet in de body. Dit betekend dat je nooit zomaar ergens in de body een meta tag mag echoën. Dit mag alleen in de head. Daarom is jou oplossing fout
- In PHP moet je zoveel mogelijk enkele quotes gebruiken en in HTML dubbele (is de standaard) jij hebt het precies andersom
- Tevens heb ik al gezegd dat je alle PHP boven je HTML moet afhandelen, dus dit is ook fout. In jou voorbeeld van een pagina include zou het zoiets moeten worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

require_once '/lib/page/page.php'; // include de Page klasse

if( !isset($_GET['page_id']) )
  $_GET['page_id'] = 1; // 1 is de homepagina

$page = Page::getById((int) $_GET['page_id']);

?>

<!doctype html>
<html lang=nl>
  <head>
    <meta charset=utf-8>
    <title><?php echo $page->getTitle(); ?></title>
    <?php echo $page->getHeadData(); // dingen als link en meta tags ?>
  </head>
  <body>
    <h1><?php echo $page->getTitle(); ?></h1>
    <?php echo $page->getContent(); ?>
  </body>
</html>


Quote:
Wie weet heeft hij wel html codes boven het script staan dus wie ben jij om te zeggen dat hij dat niet heeft?

In zijn startpost zie je dat hij al een header gebruikt. Mocht hij HTML voor de header hebben staan dan zal hij al meteen een error krijgen, alleen die krijgt hij niet dus mag je concluderen dat hij geen HTML ervoor heeft staan.
Gewijzigd op 19/02/2012 14:30:21 door Wouter J
 
Koen Hollander

Koen Hollander

19/02/2012 15:09:21
Quote Anchor link
Bas van de S op 18/02/2012 14:59:17:
Eey mensen.
Ik probeer mijn login systeem nu zo te maken dat wanneer ik inlog met mijn Admin gebruikersnaam en wachtwoord de pagina meteen weer refresht (Zelfde effect als F5).
Alleen als ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
header('Location: http://vandesteeg.org/index.php');

gebruik dan veranderd er niks aan de pagina omdat de info dan in in je cache geheugen staat. Vandesteeg.org kun je het voorbeeld vinden. Als je daar inlogt met Admin,admin123 dan maakt die de session wel aan maar dan moet je eerst de pagina refreshen voordat de wijzigingen plaatsgevonden zijn.

Probeer eens de volgende code te gebruiken
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
header('Location:');

(ik merkte dat toen ik hem leg liet dat geen enkele browser dat begrijpt en je dan terug stuurt naar de pagina waarvan de aanvraag kwam
Gewijzigd op 19/02/2012 15:09:49 door Koen Hollander
 
Bas  van de Steeg

Bas van de Steeg

21/02/2012 10:09:42
Quote Anchor link
@Koen
Bedankt koen zo werkt het inderdaad wel wat ik gek vind. Moest er alleen nog een
sleep(1);
voor zetten anders werd er als nog niks veranderd. Maar het werkt nu.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
sleep(1);
header('Location:');
?>

Zo is het nu,
 
Maikel Doeze

Maikel Doeze

07/04/2012 13:10:05
Quote Anchor link
@Wouter J:
Quote:
@Maikel, naar mijn mening vertel je nu 2 verkeerde dingen:
1) Een exit() na een redirect header is niet verplicht. Sterker nog, die exit zou nooit gelezen worden, omdat de pagina al wordt doorgezonden.
2) PHP is een server-side taal, deze dingen worden dus op de server afgehandeld en niet aan de client-side. Dus of je nou IE, Chrome, Opera of Safari gebruikt, het is allemaal hetzelfde. Het verschil ligt hem in welke server je gebruikt voor de website.


Lees even: http://stackoverflow.com/questions/3553698/php-should-i-call-exit-after-calling-location-header

En zie ook: http://php.net/manual/en/function.header.php

Quote:
/* Make sure that code below does not get executed when we redirect. */


Een header redirect zorgt er dus zeker niet voor dat de rest van de code niet meer uitgevoerd wordt!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
header('Location: http://www.google.nl');

// more code

header('Location: http://www.phphulp.nl');


BV: In dit geval zal er een redirect zijn naar Phphulp, dit terwijl google eerder was.
Gewijzigd op 07/04/2012 13:22:27 door Maikel Doeze
 
ScrapZz nl

ScrapZz nl

07/04/2012 13:22:07
Quote Anchor link
Waarom niet gewoon simpelweg een meta refresh :P
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<meta http-equiv="refresh" content="sec;URL=link" />
 
Wouter J

Wouter J

07/04/2012 13:28:12
Quote Anchor link
Darkwell, omdat je niet zomaar een meta tag overal in een document moet echoën.

Maikel, bedankt voor de uitleg! Dat wist ik niet
 
Jordi Kroon

Jordi Kroon

07/04/2012 13:31:25
Quote Anchor link
Mijn voorkeur gaat zelf meestal uit naar een header aangezien meta iets langer nodig heeft om te redirecten
 
Maikel Doeze

Maikel Doeze

07/04/2012 13:35:30
Quote Anchor link
@Wouter J,

Je bent niet de eerste, het heeft mij tijdens het debuggen eens 3 uur gekost voordat ik eindelijk doorhad dat het geen server side issue was, vandaar dat ik er toch nog even op terug kwam ;)
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.