Login geht im iframe nicht

Status
Nicht offen für weitere Antworten.

schlurpsel

Gesperrt
hab nen Login der über Session an der URL geht. Bei mir geht er, bei anderen nicht. Das Login-Formular ist im iframe. Beim Klick auf Login blickt es nur kurz (Läd also etwas). Öffne ich nun das Fomular außerhalb des iframes, melde mich an und wieder ab, kann ich mich auch im iframe einloggen. An was kann das liegen?
danke
schlurpsel
 
Alle Dateien die an der Session beteiligt sein sollen müßen von ihr wissen.
Mit obigem Code kannst Du sie miteinander bekannt machen.
Das Ganze ist natürlich nur ein Schuss ins blaue, da man den Code der Dateien sehen müßte um zu sagen, dass ist es oder auch nicht. Aber ich bin der Meinung
es müßte so gehen, da der Login auf dem Frame separat ja funktioniert, naja und eine Session läuft natürlich etwas, sodass es logisch ist wenn es danach innerhalb des Frame funktioniert, da die $_SESSION variablen noch verfügbar sind.
Nun ist es noch eine Sache ob Du COOKIES nutzt oder SERVERSIDE Session, denn nicht jeder nimmt Cookies.
Viele Grüße
 
Hallo,
was Du benutzt kannst Du auf verschiedene Arten herausfinden
1. über die PHP.ini dort die Variable session.use_cookies=1 ist sie 1 dann benutzt Du Cookies
2. durch Blick in Dein Temporary Internet Files Verzeichnis, wenn dort ein Cookie deiner Site liegt in der Regel PHPSESSID dann setzt Du ebenfalls Cookies ein.

Im Grunde musst Du gar nichts Posten aber es ist wichtig, dass Du in deinem IFrame die Session initialisierst und in der Hauptseite diese wieder aufrufst da sich bei Frames aber nicht alles aktualisiert musst Du sie dann min. einmal refreshen, damit es funktioniert.
Die Hauptseite weiss ja noch nix von ihrem Glück bevor sie nicht neu geladen wurde:)
Ich hoffe das hilft.

Viele Grüße
 
in den Temporary Internet Files gibt's nix mix sessionid oder ähliches.
Was muss ich nochmal genau ändern, damit der Login im iframe auch bei 1. mal einloggen geht? (einfügen, ändern)
danke
schlurpsel
 
Wenn Du die folgenden Eintragungen hast:
Iframe:
PHP:
session_start();

$SID=session_id();
Mainpage:
PHP:
session_start();
session_name();
Dann musst Du noch den Frame Komplett reloaden oder das ganze vorwärts schicken:
PHP:
if (isset($_SESSION['username']) ) 
 { 
   $str='Location: main.php'; 
   header ($str); 
 } 
else 
 { 
   header ('Location: index.html'); //if something failed e.g. session timeout
 }

Also wenn Du das alles in etwa hast, wird es funktionieren!
 
ich weiß jetzt leider immer noch nicht so genau, was ich wo einfügen muss :confused::confused: ...
hier mal der Coder der login.php
PHP:
<?php 

include '../inc/functions.inc.php'; 
$datafile = '../inc/pn_userdata.php'; 
if (!file_exists($datafile)) fclose(fopen($datafile,"w+")); 
$zeile = file($datafile); 
$zeilen = sizeof($zeile); 

if(!$_GET['go']) 
{ 
    echo ' 
    <html><head> <link type="text/css" rel="stylesheet" href="style/site.css" />

    <title></title> 
 
    </head> 
    <body> 
    <div> 
 
        <form method="POST" action="'.$_SERVER['PHP_SELF'].'?go=login"> 
                <table  cellpadding="0" cellspacing="1" border="0" class="rahmen"> 
              
          
              <div >Um diesen Bereich zu betreten, musst Du Dich einloggen!</div> <br/>
            
          <tr class="tr1">  
           <td width="100">Loginname</td> 
            <td width="300"><input type="text" name="Name" size="30" maxlength="150"></td>
          </tr> 
          <tr class="tr1">  
            <td width="110">&nbsp;Passwort</td> 
            <td width="300">  
              <input type="password" name="pw" size="30" maxlength="150"> 
            </td> 
          </tr> 
          <tr class="tr1">  
            <td width="100"></td> 
            <td width="300"> &nbsp;  
              <input type="submit" value="Einloggen" name="submit"> 
            </td> 
          </tr> 
        </table> 
    </form> 
    </html>'; 

} 
if($_GET['go'] == 'login') 
{ 
    @session_start(); 
     
    if (empty($_POST['Name']) OR empty($_POST['pw'])) { 
        exit('<link type="text/css" rel="stylesheet" href="style/site.css" /><a>Komm schon, Name und Passwort - so schwer ist das nicht!? ...versuchs einfach nochmal =)</a> <meta http-equiv="refresh" content="4; URL=pn_login.php">'); 
    } 
     
    $_POST['pw'] = crypt($_POST['pw'], 'lala'); 

    for ($i=2; $i<$zeilen-2; $i++) {   
        $eintrag = explode('§', $zeile[$i]);  

        if ($eintrag[0] == $_POST['Name']) { 
            $_SESSION['loginuser']     = $eintrag[0]; 
            $_SESSION['loginlevel'] = $eintrag[1];       
            $_SESSION['loginpwd']     = $eintrag[2]; 
            $_SESSION['loginid']     = $eintrag[3]; 
        } 
         
    } 
     
    if($_SESSION['loginpwd'] != $_POST['pw']) { 
        echo '<link type="text/css" rel="stylesheet" href="style/site.css" /><a>Falsches Passwort!</a>'.$goback; 
        session_destroy(); 
        exit; 
    } 
   
    header("Location: test.php?$session");        
} 
?>
hoffe es hilft
danke
schlurpsel
 
Status
Nicht offen für weitere Antworten.
Zurück