Toon posts:

[PHP] redirect

Pagina: 1
Acties:
  • 110 views sinds 30-01-2008

Verwijderd

Topicstarter
Wat is de php-code voor:

<script type="text/javascript">
if (document.location.href == "id_files/01.html")
{
document.location.href == "index.php?id=01";
}
</script>

---

Het gaat om het volgende:

Ik gebruik 1 php pagina (index.php) waarin ik via ?id=01, 02, 03 etc. de pagina's 01.html, 02.html, 03.html etc invoeg. Deze pagina's staan in een submap (id_files/). Ok, tot dusver kan er geen misverstand zijn.

Nu het probleem:

De pagina's in de subfolder id_files/ kunnen echter apart verschijnen als mensen via een zoekmachine binnenkomen. Ze krijgen dan bijvoorbeeld de pagina 01.html te zien ipv index.php?id=01. Om dit te voorkomen wil ik nu deze bezoeker direct doorsturen van de 01.html-pagina naar de index.php?id=01-pagina (voor alle duidelijkheid: zoekmachines moeten deze pagina's indexeren).

Dit kan niet via de code <meta http-equiv="refresh" content="0;URL=index.php?id=01"> omdat dan de index.php?id=01-pagina permanent gaat refreshen. De code wordt nu immers ingevoegd in de pagina!

Nog steeds alles duidelijk? Mooi...

Kan iemand hier een korte php-code voor verzinnen? Ik denk dat het kan door de html-pagina's om te zetten naar php-pagina's en daarin een code op te nemen die kijkt of index.php actief is of niet. Zo ja > exit, zo nee > forward naar de index.php?.. pagina.

Ik hoop dat iemand me verder kan helpen. Het lijkt me een zo voor de hand liggend probleem...

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 15-07 20:09

dArtagnan

Een voor allen, allen voor een

PHP:
1
header("location: index.php?id=01");


Nog even een toevoeging
PHP:
1
2
3
4
if ( $_SERVER['PHP_SELF'] == "id_files/01.html")
{
   header("location: index.php?id=01");
}

Van deze laatste code weet ik niet zeker of het werkt, ik weet namelijk niet of de headers al verstuurt zijn als je deze code gaat uitvoeren.

Voor meer informatie: http://nl3.php.net/header

[ Voor 79% gewijzigd door dArtagnan op 17-11-2003 22:15 ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Intentionally left blank


  • RSpliet
  • Registratie: Juni 2003
  • Laatst online: 11-07 00:42

RSpliet

*blink*

in je index.php?watdanook iets zetten als
PHP:
1
2
3
4
<?php
$viaindex=1;
include('id_files/'.$_GET['id'].'.html'); //dit moet eigenlijk een php bestandje worden ;)
?>


En vervolgens in bijv je 01.html
PHP:
1
2
3
<?php
if ($viaindex != 1) header('Location: http://joudomein.joutopleveldomein/jougekozendirs/index.php');
?>


Kommop, iets creatiever mag wel ;)

Edit:

Die 2e toepassing van Koraalduivel zou ook kunnen werken, alhoewel ik niet weet of die de bestandsnaam van het geinclude filetje als PHP_SELF noemt, of de opgevraagde pagina door de gebruiker. Vandaar bovenstaande workaround ;).

[ Voor 45% gewijzigd door RSpliet op 17-11-2003 22:23 ]

Schaadt het niet, dan baat het niet


Verwijderd

Topicstarter
Kijk, nu werkt het! Thanx _/-\o_

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

S3v3n_0f_n1n3 schreef op 17 november 2003 @ 22:19:
Die 2e toepassing van Koraalduivel zou ook kunnen werken, alhoewel ik niet weet of die de bestandsnaam van het geinclude filetje als PHP_SELF noemt, of de opgevraagde pagina door de gebruiker. Vandaar bovenstaande workaround ;).
de file wordt geinclude, dus de inhoud van die file wordt op die plek als het ware ingeplakt waardoor dus PHP_SELF nog steeds wijst naar het 'moederscript' ;)

Verwijderd

Topicstarter
Nog 1 vraagje.

Hoe ziet het script er uit bij meerdere includes (?id=01, ?id=11, ?id=12 etc.)?

Ik krijg nu namelijk de melding: Warning: Cannot modify header information - headers already sent...

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Verwijderd schreef op 17 november 2003 @ 23:14:
Nog 1 vraagje.

Hoe ziet het script er uit bij meerdere includes (?id=01, ?id=11, ?id=12 etc.)?

Ik krijg nu namelijk de melding: Warning: Cannot modify header information - headers already sent...
debuggen ;)
als het goed is geeft die error ook aan waar je bent begonnen met je output.
als je headers wilt toevoegen doe je dat VOORDAT je data naar de client stuurt

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

Uhm, je vorige topic staat hier: [rml][ PHP] Redirect werkt niet in alle browsers*[/rml], en is niet voor niets gemoved

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.