Karlstad Skrevet 10. september 2006 Del Skrevet 10. september 2006 (endret) 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 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 10. september 2006 av alex87 Lenke til kommentar
manoo Skrevet 10. september 2006 Del Skrevet 10. september 2006 (endret) $redirect = $_GET['ridir'] + $_GET['act']; header('Location: $ridirect'); Eller noe... Endret 10. september 2006 av manoo Lenke til kommentar
groenlid Skrevet 10. september 2006 Del Skrevet 10. september 2006 (endret) 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 10. september 2006 av groenlid Lenke til kommentar
Martin A. Skrevet 10. september 2006 Del Skrevet 10. september 2006 Kjør en html_special_chars på den for å gjøre & til &. Om det er det problemet ditt er. Lenke til kommentar
Karlstad Skrevet 10. september 2006 Forfatter Del Skrevet 10. september 2006 $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 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 Har forøvrig prøvd med urlencode($_GET['redir']); hvilket ikke fungerte, siden URL-en allerede var splittet opp i flere nøkler Takk for alle svar hittil! Bare kjør på videre Lenke til kommentar
Ernie Skrevet 10. september 2006 Del Skrevet 10. september 2006 Kan tenke meg du bør se på parse_url() Lenke til kommentar
Karlstad Skrevet 10. september 2006 Forfatter Del Skrevet 10. september 2006 (endret) Huttetu 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 Endret 10. september 2006 av alex87 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå