Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: get Variablen gehen bei weiterleitung mit header(location:) verloren

  1. #1
    König(in) Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard get Variablen gehen bei weiterleitung mit header(location:) verloren

    Hallo

    Ich bin grad an ner größeren Website dran und hab ein Problem.
    die User sollen sich auf jeder Seite und zu jeder Zeit ohne Problem ein- und wieder ausloggen können.

    Wenn nun aber jemand ein Such-Formular halb ausfüllt, sich dann einloggt, wird er ja zur login-Seite geleitet und von dort mit
    PHP-Code:
    $lastsite parse_url($_SERVER["HTTP_REFERER"], PHP_URL_PATH);
    header("Location: $lastsite"); 
    wieder zurück zur Ursprungsseite.

    Leider gehen dabei eben die get Variablen der Suche verloren und das Formular ist wieder leer.

    Nachtrag: Noch nicht abgeschickte Variablen können von mir aus sogar verloren gehen. Aber bereits gesetzte Parameter, die auch schon in der URL mit drin stehen sollten auf jeden Fall bleiben.

    Kennt ihr eine Lösung für dieses Problem?
    Habe schon diverse Servervariablen durchgreschaut und nichts passendes gefunden.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von NyctalusNoctula (26.05.2009 um 00:27 Uhr)

  2. #2
    Meister(in) Avatar von Afrael
    Registriert seit
    26.04.2009
    Ort
    NRW
    Alter
    26
    Beiträge
    313
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    Warum übergibst du nicht $_SERVER['REQUEST_URI'] an das login-Script und leitest dann dorthin zurück?
    Information will frei verfügbar sein.

    Don't eat unpeeled hedgehogs.

  3. #3
    Teeny Avatar von Ace <3st
    Registriert seit
    19.05.2009
    Ort
    Bayern
    Alter
    25
    Beiträge
    45
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    Wir machen das wie folgt-
    Du hast bestimmt dein loginbereich links oder rechts.
    Dann setzt du das an die stelle:

    PHP-Code:
    <?php
    if($_COOKIE["loggedin"] == "yes")
    {
    (include(
    "intern.php"));
    }
    else
    {
    ?>

      
    <form action="login.php" method="POST"> 
        <table> 
             <tr> 
                <td><b>Name:</b></td> 
                <td><input type="text" name="logname"></td> 
            </tr> 
            <tr> 
                <td><b>Pass:</b></td> 
                <td><input type="password" name="logpw"></td> 
            </tr> 
            <tr> 
                <td></td> 
                <td><input type="submit" name="sendit" value="Login"></td> 
            </tr> 
        </table> 
    </form> 
    <?php
        
    }
    ?>
    In der Login.php sollte dann
    PHP-Code:
    setcookie("loggedin""yes"time()+60*60*60*60); 
    erscheinen, damit er das auf YA setzt!
    Unsere Login.php sieht zb so aus:
    PHP-Code:
    <?php 

    Connect zensiert
    ***

    $sql "SELECT "
        
    "Id, Nickname, Kennwort "
      
    "FROM "
        
    "benutzerdaten "
      
    "WHERE "
        
    "(Nickname like '".$_POST["logname"]."') AND "
        
    "(Kennwort = '".md5 ($_POST["logpw"])."')"
    $result mysql_query ($sql); 

    if (
    mysql_num_rows ($result) > 0

    while(
    $row mysql_fetch_object($result))
    {
    setcookie("loggedin""yes"time()+60*60*60*60);
    setcookie("id"$row->Idtime()+60*60*60*60);
    setcookie("paw"$row->Kennworttime()+60*60*60*60);
    setcookie("name"$row->Nicknametime()+60*60*60*60);
    }
    header ("Location: index.php"); 

    else 

      
    header ("Location: index.php"); 

    ?>
    Ist nicht das sicherste aber vorerst übernehmbar.

    Die Intern.php kannst du dir selbst gestalten

    Logout.php
    PHP-Code:
    <?php
    $in 
    setcookie("loggedin","",time()-3600); 
    $id setcookie("id","",time()-3600); 
    $paw setcookie("paw","",time()-3600); 
    $name setcookie("name","",time()-3600); 

    if(
    $in AND $id AND $paw AND $name == true)
    {
    header ("Location: /forum/index.php"); 
    }
    ?>
    wir rufem unsere urls mit folgender $_GET['']; funktion ab:
    PHP-Code:
    <form action="forum_creat_thread.php?n=<?php echo $_GET["n"]; ?>" method="post">
    Den link dazu verlinkst du so:
    PHP-Code:
    <?php
    connect 
    ****

    $sql "SELECT * FROM welchetabelle";
    $update mysql_query($sql);
    while(
    $row mysql_fetch_object($update))
        {
            echo 
    "<a href=\"/clan/php/new/show_forum.php?n=$row->threadname\">".$row->threadname."</a>"
        }
    ?>
    Geändert von Ace <3st (26.05.2009 um 00:49 Uhr)

  4. #4
    Pion
    Gast

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    Nein das ist nicht nur ein bischen unsicher das ist absoluter unsicher

    Also mach doch das:

    header("Location: $lastsite?deine alte url dranhängern");


    Oder du erstellst $_SESSION in der du eben die Aktion vor dem Header speicherst

  5. #5
    König(in)
    Themenstarter
    Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    @Afrael: REQUEST_URI funktioniert irgendwie gar nicht. Da leitet er mich immer zum login weiter. Ist also sozusagen dann ne Dauerschleife. Ich will ja wissen, auf welcher Seite der Benutzer war bevor er sich eingeloggt hat.

    @Ace_<3st: du hast mein Problem glaube ich nicht richtig verstanden. Das Problem liegt in der Weiterleitung nach dem Login auf die Seite, auf der der Nutzer vorher war. Bei mir kann er soch von zig Seiten aus einloggen und muss dann auch dahin zurück. In deinem Code wird ja immer zur index.php geleitet. Den Login mach ich natürlich mit sessions.

    @Pion: daran meine alte url dranzuhängen hab ich auch schon gedacht. Aber dazu müsste ich mit zig if-Schleifen alle Möglichkeiten von übergebenen Variablen druchgehen, oder nicht?
    Ne Session hab ich ja soweiso für jeden Nutzer. Kannst du mir näher erklären, wie du die get Variablen da reinspeichern willst? Gibts da ne elegante Möglichkeit zu?

  6. #6
    Forum Guru
    Registriert seit
    13.01.2005
    Ort
    Schweiz
    Beiträge
    5.240
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    Wie wärs mit

    PHP-Code:
    <?php
      
    // vor dem login
      
    session_start();  
      
    $_SESSION['get_vars'] = $_GET;
      
      
    // nach dem login - url wieder aufbauen
      
    $url '';
      
    $i 1;  
      foreach (
    $_SESSION['get_vars'] as $key => $value)
        {
        
    $separator = ($i == 1) ? '?' '&';          
        
    $url.= $separator.$key.'='.$value;
        
    $i++;
        }
        
      
    header('Location: '.$_SERVER['SERVER_NAME'].$url);
    ?>
    Gruss
    Geändert von phore (26.05.2009 um 13:53 Uhr)

  7. #7
    König(in)
    Themenstarter
    Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    so, ich hab die Lösung.

    Mann bin ich doof. Manchmal sieht man wohl den Wald vor lauter Bäumen nicht mehr.

    beim HTTP_REFERER kommen die Get-Variablen natürlich doch mit. Nur habe ich diese mit parse_url abgeschnitten, da ich auch noch auf die Richtigkeit des Hosts prüfe.

    Mein code sieht nun so aus:
    PHP-Code:
    //HTTP Referer auslesen und zur vorigen seite zurückschicken, falls diese auf dem Server liegt
    if (!empty($_SERVER['HTTP_REFERER'])) {
        
    $host parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
        if (
    $host == 'www.mein-server.de') {
            
    $lastsite parse_url($_SERVER['HTTP_REFERER'], PHP_URL_PATH);
            
    $query parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY);
            if(
    $query != ''){
                
    $lastsite .= '?' $query;
            }
        }
        else {
            
    $lastsite '/';
        }
    }
    else {
         
    $lastsite '/';
    }
    header("Location: $lastsite");
    exit(); 

  8. #8
    Bandit
    Gast

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    Warum ist es schlecht, mit dem Referer zu arbeiten?
    http://www.php-faq.de/q-http-referer.html

  9. #9
    König(in)
    Themenstarter
    Avatar von NyctalusNoctula
    Registriert seit
    07.08.2006
    Beiträge
    1.316
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    Zitat Zitat von bandit600 Beitrag anzeigen
    Warum ist es schlecht, mit dem Referer zu arbeiten?
    http://www.php-faq.de/q-http-referer.html
    Das ist mir durchaus bewusst. Bessere Varianten?
    außerdem steht ja in deinem Link auch nur, dass man in Sicherheitskritischen Fragen davon Abstand nehmen sollte.
    Wenn der User den Referer deaktiviert hatm, wird er halt immer zur index.php weitergeleitet. Dann muss er eben damit leben.

  10. #10
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: get Variablen gehen bei weiterleitung mit header(location:) verloren

    Session nehmen?
    Per ?' . $_SERVER['HTTP_QUERY_STRING'] dranhängen?

Ähnliche Themen

  1. javascript:location unter firefox hilfe
    Von hgw-guy im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 21.09.2008, 11:16
  2. header (Location...
    Von komma im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 21.06.2007, 11:08
  3. PHP: Variablen übergeben oder globale Variablen
    Von Philip im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 15.04.2006, 22:38
  4. header Info + Location
    Von -tim- im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 3
    Letzter Beitrag: 02.03.2006, 22:20
  5. Ebenen gehen verloren bzw. werden gekickt
    Von NickRivers im Forum Flash Forum
    Antworten: 3
    Letzter Beitrag: 29.03.2005, 00:14

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •