login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Redirect probleem (Opgelost)

Offline Abbas - 02/07/2010 22:05
Avatar van AbbasGouden medaille

Crew .NET
Weer eens een PHP-probleem.. 

Ik heb volgende code om naar een andere pagina te verwijzen afhankelijk van een if-conditie. Volgende code heb ik hiervoor op internet gevonden:

  1. $host = $_SERVER['HTTP_HOST'];
  2. $uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
  3. $extra = 'index.php';
  4. header('Location: http://'.$host.$uri.'/'.$extra);

Als ik een echo van die location doe en dat gebruik in de adresbalk werkt dit adres correct maar de pagina wordt niet doorverwezen naar index.php. Er wordt geen HTML naar het scherm geschreven voor die header(). Iemand die hierbij raad weet?

8 antwoorden

Gesponsorde links
Offline ProjectWebdesign - 02/07/2010 22:26
Avatar van ProjectWebdesign Lid Zet er eens error_reporting(E_ALL); boven.
Kijken of er toch niet iets fout is.

Net even het stukje code getest en bij mij werkt het gewoon.
Offline Abbas - 02/07/2010 22:30 (laatste wijziging 02/07/2010 22:37)
Avatar van Abbas Gouden medaille

Crew .NET
Doet niets, ik krijg enkel te zien "De pagina kan niet worden weergegeven.". Het zit namelijk zo, nu ziet m'n url er ongeveer zo uit: http://blabla/index.php?p=someValue. Maar ik wil tegenhouden dat je naar http://blabla/someValue.php kan gaan en daarom dacht ik aan die header() functie maar blijkbaar wilt hij het niet doen.

Als ik die controle-functie wegdoe en ik open someValue.php krijg ik een lege pagina (dit is juist) maar met de controle erin komt er op het scherm "Internet Explorer cannot display the webpage".
Offline ProjectWebdesign - 02/07/2010 23:18
Avatar van ProjectWebdesign Lid Euhm in de GET wil jij een pagina meegeven? En alleen als de pagina bestaat mag die worden weergeven?
Of wat bedoel je precies?
Offline Abbas - 02/07/2010 23:22 (laatste wijziging 02/07/2010 23:22)
Avatar van Abbas Gouden medaille

Crew .NET
Ja, bij die GET wordt er uiteraard gecontroleerd op wat de waarde is. En dan als alles in orde is wordt die pagina geinclude, maar als je een beetje slim bent kan je ook rechtstreeks naar die pagina gaan en dat wil ik vermijden. In mijn geval maakt het niet uit want je krijgt enkel een lege pagina te zien, maar ik wou dan in plaats van gewoon op die lege pagina te blijven een automatische redirect naar de hoofdpagina. Snap je?
Offline ProjectWebdesign - 02/07/2010 23:32
Avatar van ProjectWebdesign Lid Wat je dan kan maken in de bestanden die je wilt includen:

  1. <?php
  2. if (isset($_GET['p']) && $_GET['p'] == 'deze pagina')
  3. {
  4. // Hier wat op de pagina moet komen
  5. }
  6. else
  7. {
  8. header('Location: index.php');
  9. }
Offline Abbas - 02/07/2010 23:41 (laatste wijziging 02/07/2010 23:47)
Avatar van Abbas Gouden medaille

Crew .NET
Geeft blijkbaar hetzelfde probleem... 

Edit:
Ik heb het opgelost door het volgende te doen:

  1. if(!validPage)
  2. echo '<meta HTTP-EQUIV="REFRESH" content="0; url='.$newUrl.'">';

Dit werkt blijkbaar wel.. 
Offline Jelmerholland - 03/07/2010 00:11
Avatar van Jelmerholland PHP beginner Dat is toch raar? Dan een header niet werkt? Die zou 't gewoon moeten doen... Zit er misschien bij je host iets verkeerd of in je php.ini?
Offline Abbas - 03/07/2010 00:14
Avatar van Abbas Gouden medaille

Crew .NET
Het draait gewoon lekker op m'n 127.0.0.1!  Maar het is al opgelost dus met die meta-tag..
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.356s