Gå til innhold

$_GET problemer (omdirigeringsskript) [LØST]


Anbefalte innlegg

Har problemer med et skript som skal omdirigere (redirect) til en annen URL.

 

Bruker opplegget "index.php?redir=<URL>", og selve "redir" delen er programmert slik:

 

header("Location: " . $_GET['redir']);

 

Problemet her er at $_GET ikke helt forstår bruken av "&" tegn i URL-en :p

Så hvis redir adressen blir følgende: "index.php?redir=http://www.db.no/?test=ja&act=edit", så blir $_GET['redir'] = "http://www.db.no/?test=ja", mens det også da eksisterer en $_GET['act'], som har verdien "edit". "&" tegnet fungerer da som et skille for å opprette flere nøkler...

 

Mulig dette ble teit forklart, men noen som forstår dette og eventuelt har noen ideer om hvordan å få dette til å fungere smertefritt?

Endret av alex87
Lenke til kommentar
Videoannonse
Annonse

litt usikker på hva du mener men kanskje dette hjelper?

 

<?php
session_start();
if($_POST['submit']) {
header("Location: ".$_POST['redir']);
}
?>
<form action="redir.php" method="post">
<input type="text" name=redir>
<input type="submit" name="submit" value="Redirect meg">
</form>

Endret av groenlid
Lenke til kommentar
$redirect = $_GET['ridir'] + $_GET['act'];
header('Location: $ridirect');

 

Eller noe...

6835269[/snapback]

Funker nok ikke siden URL-en jeg skal sende videre til ikke er forutsigbar, altså jeg vet ikke om det alltid vil være en adresse med "&act=XXXXX" som jeg skal sende videre til :p

 

litt usikker på hva du mener men kanskje dette hjelper?

 

<?php
session_start();
if($_POST['submit']) {
header("Location: ".$_POST['redir']);
}
?>
<form action="redir.php" method="post">
<input type="text" name=redir>
<input type="submit" name="submit" value="Redirect meg">
</form>

6835279[/snapback]

Blir litt feil. Bruker redir funksjonen som en del av en index.php fil slik at jeg kan bruke den til å sende videre til eksterne sider. Det blir litt mer komplisert hvis jeg må ha brukeren til å taste inn adressen som jeg skal sende han/hun videre til.. :)

 

Kjør en html_special_chars på den for å gjøre & til &. Om det er det problemet ditt er.

6835416[/snapback]

Det er noe i den duren, men problemet er vel at det opprettes ny nøkkel i $_GET arrayen før jeg i det hele tatt får gjort noe.. Så løsningen ville jeg tro var å kunne smelle sammen nøklene i $_GET på et vis. Altså en som har litt peiling på arrays :p

Har forøvrig prøvd med urlencode($_GET['redir']); hvilket ikke fungerte, siden URL-en allerede var splittet opp i flere nøkler :p

 

Takk for alle svar hittil!

Bare kjør på videre :D

Lenke til kommentar

Huttetu :p

Nå har jeg da hvert fall fått til ting som jeg selv ville ha det.

Jeg tok i bruk $_SERVER['REQUEST_URI'] og SUBSTR.

Ved å overse det jeg ikke hadde bruk for i begynnelsen av "REQUEST_URI", kunne jeg få med HELE adressen jeg skulle videresende til, dermed ble koden slik:

 

$redir = substr($_SERVER['REQUEST_URI'], 13);
header("Location: " . $redir);

Grunnen til at jeg "hopper over" de 13 første tegnene, var at jeg hadde skriptet og siden i en undermappe, men uansett så fungerer ting helt perfekt nå :)

 

Takk for all hjelp :D

Endret av alex87
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...