session übergabe problem :(

Trasher

Mitglied
hi @all

bin dabei ein login script zu bauen, das problem ist, dass wenn ein user da ist der sich einloggen möcht allerdings hat er keine cookie dann werden keine daten übermittelt.

Habe über mein problem in google usw. gesucht doch leider wurde mein problem nie gefunden. Am besten ich geben euch meinen code und könnte euchdat mal anschauen.

PHP:
<?php
ob_start ();
       session_start();
       echo session_name() . "=" . session_id();

if (isset ( $_REQUEST["do"]) && $_REQUEST["do"] == "insert")
{
       //Die Seite hat sich selbst aufgerufen
       //FELD kontrolle
       $error_msg = "";

      if( $_REQUEST["form_email"] == "")
       {
          $error_msg .= "Bitte geben Sie ihre E-Mail adresse ein.<br>";
       }
       if( $_REQUEST["form_pass"] == "")
       {
          $error_msg .= "Bitte geben Sie einen Passwort ein.<br>";
       }

              include("mysql.inc.php");

              mysqlconnect();


             $email = $_REQUEST["form_email"];
             $pass =  $_REQUEST["form_pass"];
             $_POST['form_email'] = $_REQUEST["form_email"];

              mysqlconnect();

              //Kontrolle des Passwortes 

          $query  =   "SELECT * FROM member WHERE  Email='$email' AND  Passwort='$pass'";
          $result =   mysql_query( $query );

          if(! $result){
          die("Konnt die Datensätze nicht auslesen, bitte wenden Sie sich an den Admin");
          }

          $anzahl =   mysql_num_rows ($result);




          if($anzahl != 0) {                              //wenn daten richtig sind macht datenbank! id in session speichern
          $datensatz = mysql_fetch_array( $result );
          $_SESSION['form_email'] = $_REQUEST['form_email'];
          $_SESSION['idd'] = $datensatz[id];

                                          //weiterleitung zu member.php
          header ("Location: member.php");

          } else {                                      //wenn falsch ist bleibt er auf der seite und gibt zusätzlich fehler aus
          $error_msg .= "<b>Ihr Benutzername oder Passwort ist falsch!</b><br>";
          }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive">
		<title>Unbenannte Seite</title>
		<style type="text/css"><!-- @import url("gfx/style.css"); @import url("gfx/login.css");
        #rahmen{ background-color: silver; }  --></style>
	</head>

	<body>
		<div align="center">
			<div id="inhalt">
				<div id="header">
				<img src="gfx/header.jpg" alt="" width="775" height="132" border="0"></div>
				<div id="formular">
				<div class="formzeile">
				<div class="dataleft">
				<div class="menucontainer">
					 <p class="menutitle">Navigation</p>
                     <?
                     if(! $_GET['id'] == ""){
                     $id = "?id=" . $_GET['id'] . "";
                     }
                     ?>
					 <a class="menu" href="index.php<? echo $id; ?>">Startseite</a>
					 <a class="menu" href="register.php<? echo $id; ?>">Kostenlos Regestrieren</a>
                     <a class="menu" href="prinzip.php<? echo $id; ?>">Das Prinzip</a>
					 <a class="menu" href="prämien.php<? echo $id; ?>">Die Prämien</a>
                     <a class="menu" href="fragen.php<? echo $id; ?>">Häufige Fragen</a>
                     <a class="menu" href="login.php<? echo $id; ?>">Mitglieder-Login</a>
 				</div>
				</div>
                <div class="dataright">Mitglieder-Login:</div>
 				<div class="dataright2">
							<br>
							<table width="473" border="0" cellspacing="2" cellpadding="0">
                            <form name="anmeldung" action="<?php $_SERVER['PHP_SELF']?>" method="POST" >
								<tr>
									<td>E-Mail Adresse:&nbsp;</td>
									<td>
										<div align="left">
											<input type="text" name="form_email" size="26"></div>
									</td>
								</tr>
								<tr>
									<td></td>
									<td></td>
								</tr>
								<tr>
									<td>Password:&nbsp;</td>
									<td>
										<div align="left">
											<input type="password" name="form_pass" size="26"></div>
									</td>
								</tr>
							</table>
							<br>
                            <div id="rahmen"><?php if($error_msg != ""){ echo "<br>"; echo $error_msg; echo "<br>"; } ?></div>
							<input type="hidden" name="do" value="insert"><input value="Login" name="einloggen" class="button" type="submit"><br>
                            </form>
							<br>
							<br>
							<br>
							<br>



							Falls Sie Ihr <b>Passwort</b> vergessen haben, k&ouml;nnen Sie eine dies <a href="vergessen.php">Hier</a> per E-Mail anfordern.<br>
							<br>Sind Sie bei uns Angemeldet ? Wenn nich k&ouml;nnen Sie das <a href="register.php?<?php echo SID; ?>">Hier</a> tuhen.<br>
							<br>
						</div>
				<br style="clear:left;">
				</div>
				</div><br>
				<div id=impressum>
					<span class="impressum"><a href="dai/datenschutz.html" target="_blank">Datenschutz</a> | <a href="dai/agb.html" target="_blank">AGB</a> | <a href="dai/impressum.html" target="_blank">Impressum</a></span></div>
				</div>
		</div>
		<div id="untertitel">
			Copyright &copy; 2006 Freebie4you, Inc. All Rights Reserved</div>
		</div>
	</body>

</html>
<?php ob_end_flush ();  ?>

Bei dem punkt: header ("Location: member.php"); happert es. Das weiß ich schon aber wie übergebe das ganze ?

Es muss unbedingt das hier übergeben werden: $_SESSION['idd'] = $datensatz[id];
 
Hi,

deine Session-Vars. ist in der Session vorhanden durch Zeile 49
$_SESSION['idd'] = $datensatz[id];
Du musst nur auf den Folgeseiten direkt zu Beginn session_start(); aufrufen. Dann kannst du - sofern die Session-ID passt - auch auf die Session-Vars zugreifen.

Ausgabe in Zeile 4 führt zum Problem bei header(); in Zeile 52.
Was du in Zeile 28 vorhast, versteh ich nicht. $_POST ist global, ebenso $_REQUEST.
Zeile 23 mysqlconnect(); schreibt sich korrekt mysql_connect();

Dann gibst du die Session-Id an $id, wobei du den Sessionnamen nicht vorgegeben hast. Dürfte eigentl. nicht funktionieren.
 
saila hat gesagt.:
[...] Zeile 23 mysqlconnect(); schreibt sich korrekt mysql_connect(); [...]

Ich denke, dass das eine selbstdefinierte Funktion ist, denn er bindet ja mysql.inc.php vorher ein...

2Topic: Mir fällt nichts besonderes auf... Nur mach mal folgendes:
PHP:
 //weiterleitung zu member.php
header ("Location: member.php");

# wird zu

 //weiterleitung zu member.php
header ("Location: member.php?" . session_name() . '=' . session_id());

Nachtrag
Ach Mist... zu spät. Und um so eine Uhrzeit... Ab in's Bett Sven :D
 
Hallo!

Wenn die Session schon manuell mit übergeben werden soll, warum dann nicht gleich richtig?
PHP:
header ("Location: member.php?".SID);
Gruss Dr Dau
 
Oder anders ausgedrückt: wer keine Arbeit hat, macht sich halt welche (mehr Schreibarbeit). ;)
 
okay wenn man es so macht dann funktioniert das ganze!
PHP:
header ("Location: member.php?".SID);

allerdings wenn man bedenkt....das man so einen link wie z.b.

member.php?PHPSESSID=d212e012c3208660be6a04d405a792f7

weitergibt, dann ist er doch automatisch eingeloggt oder nicht ?
Das stellt wiederrum ein hohes sicherheitsrisiko dar! Oder nicht ?
 
Zurück