session_register() will nicht funktionieren

Johnnii360

Erfahrenes Mitglied
Hallo zusammen! :)

Ich hab da mal wieder ein Problem, diesmal mag session_register(); nicht.

Dieser Code ist eine Datei:

(Hier gehts um den SESSION-Teil)

PHP:
<?php
include("config.php");

if($_GET["action"] == "verify") {

	session_start();
	if ((!isset($_POST['nick'])) OR (!isset($_POST['pw'])))
	{
	die ("<html><div align=\"center\"><span style=\"font-family: Verdana; font-size: 20px; font-weight: bold;\">Mitgliedsadministration</span><br><span style=\"font-family: Verdana; font-size: 11px;\">Hier kannst Du Deine Daten nochmals &uuml;berarbeiten.</span></div><br><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid #CCCCCC; background-color: #FFFFFF;\"><tr><td height=\"25\" style=\"background-image: url(images/navback.gif); font-family: Verdana; font-size: 11px; font-weight: bold;\"><img src=\"images/forward.png\" width=\"16\" height=\"16\" hspace=\"5\" align=\"absmiddle\">Login<span style=\"font-weight: normal;\"></span></td></tr><tr><td><table width=\"100%\" cellpadding=\"3\" style=\"font-family: Verdana; font-size: 11px;\"><tr><td height=\"50\" align=\"center\"><img src=\"images/no.png\" width=\"16\" height=\"16\" hspace=\"3\" align=\"absmiddle\"><span style=\"font-weight: bold;\">Es ist ein Fehler beim login aufgetreten!</span><br>Du bist nicht eingelogt. Bitte loge Dich korrekt ein.</td></tr></table></td></tr></table></html>");
	}
	$conn = @ mysql_connect($sqlserver,$sqluser,$sqlpass); 
	if (!$conn) 
	{ 
	die ("<html><div align=\"center\"><span style=\"font-family: Verdana; font-size: 20px; font-weight: bold;\">Mitgliedsadministration</span><br><span style=\"font-family: Verdana; font-size: 11px;\">Hier kannst Du Deine Daten nochmals &uuml;berarbeiten.</span></div><br><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid #CCCCCC; background-color: #FFFFFF;\"><tr><td height=\"25\" style=\"background-image: url(images/navback.gif); font-family: Verdana; font-size: 11px; font-weight: bold;\"><img src=\"images/forward.png\" width=\"16\" height=\"16\" hspace=\"5\" align=\"absmiddle\">Login<span style=\"font-weight: normal;\"></span></td></tr><tr><td><table width=\"100%\" cellpadding=\"3\" style=\"font-family: Verdana; font-size: 11px;\"><tr><td height=\"50\" align=\"center\"><img src=\"images/no.png\" width=\"16\" height=\"16\" hspace=\"3\" align=\"absmiddle\"><span style=\"font-weight: bold;\">Es ist ein Fehler beim login aufgetreten!</span><br>Es konnte keine Verbindung zum Datenbankserver aufgebaut werden.</td></tr></table></td></tr></table></html>"); 
	}
	mysql_select_db($sqldb,$conn);
	
	$query = "SELECT pw FROM $tabname_toplist WHERE nick = '".$_POST['nick']."'"; 
	$result =  mysql_query($query,$conn);
	
	$result =  mysql_query("SELECT pw FROM $tabname_toplist WHERE nick = '".$_POST['nick']."'",$conn);
	
	$zeileholen =  mysql_fetch_array($result,MYSQL_ASSOC);  
	mysql_close($conn);
         	
   	$pass = md5($_POST['pw']);
     	
   	if (!$zeileholen) 
	{ 
	die ("<html><div align=\"center\"><span style=\"font-family: Verdana; font-size: 20px; font-weight: bold;\">Mitgliedsadministration</span><br><span style=\"font-family: Verdana; font-size: 11px;\">Hier kannst Du Deine Daten nochmals &uuml;berarbeiten.</span></div><br><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid #CCCCCC; background-color: #FFFFFF;\"><tr><td height=\"25\" style=\"background-image: url(images/navback.gif); font-family: Verdana; font-size: 11px; font-weight: bold;\"><img src=\"images/forward.png\" width=\"16\" height=\"16\" hspace=\"5\" align=\"absmiddle\">Login<span style=\"font-weight: normal;\"></span></td></tr><tr><td><table width=\"100%\" cellpadding=\"3\" style=\"font-family: Verdana; font-size: 11px;\"><tr><td height=\"50\" align=\"center\"><img src=\"images/no.png\" width=\"16\" height=\"16\" hspace=\"3\" align=\"absmiddle\"><span style=\"font-weight: bold;\">Es ist ein Fehler beim login aufgetreten!</span><br>Sorry, aber dieser Nick ist leider nicht bekannt oder falsch.</td></tr></table></td></tr></table></html>"); 
	}
	
	if ($zeileholen['pw'] <> $pass) 
	{ 
	die ("<html><div align=\"center\"><span style=\"font-family: Verdana; font-size: 20px; font-weight: bold;\">Mitgliedsadministration</span><br><span style=\"font-family: Verdana; font-size: 11px;\">Hier kannst Du Deine Daten nochmals &uuml;berarbeiten.</span></div><br><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid #CCCCCC; background-color: #FFFFFF;\"><tr><td height=\"25\" style=\"background-image: url(images/navback.gif); font-family: Verdana; font-size: 11px; font-weight: bold;\"><img src=\"images/forward.png\" width=\"16\" height=\"16\" hspace=\"5\" align=\"absmiddle\">Login<span style=\"font-weight: normal;\"></span></td></tr><tr><td><table width=\"100%\" cellpadding=\"3\" style=\"font-family: Verdana; font-size: 11px;\"><tr><td height=\"50\" align=\"center\"><img src=\"images/no.png\" width=\"16\" height=\"16\" hspace=\"3\" align=\"absmiddle\"><span style=\"font-weight: bold;\">Es ist ein Fehler beim login aufgetreten!</span><br>Sorry, aber dieses Passwort passt nicht zum Nicknamen.</td></tr></table></td></tr></table></html>");
	}
	
	session_register("nick");
	
	echo("<meta http-equiv=\"refresh\" content=\"3; URL=".$_SERVER['PHP_SELF']."?site=memberadmin\"><html>
<div align=\"center\"><span style=\"font-family: Verdana; font-size: 20px; font-weight: bold;\">Mitgliedsadministration</span><br>
<span style=\"font-family: Verdana; font-size: 11px;\">Hier kannst Du Deine Daten nochmals &uuml;berarbeiten.</span></div>
<br>
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid #CCCCCC; background-color: #FFFFFF;\">
  <tr>
    <td height=\"25\" style=\"background-image: url(images/navback.gif); font-family: Verdana; font-size: 11px; font-weight: bold;\"><img src=\"images/forward.png\" width=\"16\" height=\"16\" hspace=\"5\" align=\"absmiddle\">Login<span style=\"font-weight: normal;\"></span></td>
  </tr>
  <tr>
    <td><table width=\"100%\" cellpadding=\"3\" style=\"font-family: Verdana; font-size: 11px;\">
      <tr>
        <td height=\"100\" align=\"center\"><span style=\"font-size: 18px; font-weight: bold;\"><img src=\"images/identity.png\" width=\"38\" height=\"37\" hspace=\"3\" align=\"absmiddle\">Bitte
            warten<img src=\"images/period_ani.gif\" width=\"18\" height=\"12\"> Daten werden verifiziert!</span><br>
          <br>
          Sollte die Verifizierung mehr als 5 Sekunden dauern, dann klicke bitte <a href=\"".$_SERVER['PHP_SELF']."?site=memberadmin\">hier</a>.</td>
      </tr>
    </table></td>
  </tr>
</table>
</html>");

}
elseif($_GET["action"] == "") {
?>
<html>
<div align="center"><span style="font-family: Verdana; font-size: 20px; font-weight: bold;">Login</span><br>
<span style="font-family: Verdana; font-size: 11px;">Logge Dich hier ein um Deine
Daten zu &auml;ndern.</span></div>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="0" style="border: 1px solid #CCCCCC; background-color: #FFFFFF;">
  <tr>
    <td height="25" style="background-image: url(images/navback.gif); font-family: Verdana; font-size: 11px; font-weight: bold;"><img src="images/forward.png" width="16" height="16" hspace="5" align="absmiddle">Ben&ouml;tigte
      Informationen <span style="font-weight: normal;">(Alle Felder werden ben&ouml;tigt)</span></td>
  </tr>
  <tr>
    <td>
	<form action="<?php echo"".$_SERVER['PHP_SELF']."";?>?site=login&action=verify" method="post">
	<table width="100%" cellpadding="3" style="font-family: Verdana; font-size: 11px;">
        <tr>
          <td width="150" height="22" valign="middle" style="font-weight: bold;">Nickname:</td>
          <td><input name="nick" type="text" id="nick" style="width: 300px;"></td>
        </tr>
        <tr>
          <td width="150" height="22" valign="top" style="font-weight: bold;">Passwort:</td>
          <td><input name="pw" type="password" id="pw" style="width: 300px;">
            <br>
            <img src="images/help.png" width="16" height="16" hspace="3" vspace="3" align="absmiddle"><a href="<?php echo"".$_SERVER['PHP_SELF']."";?>?site=password">Passwort
            vergessen</a></td>
        </tr>
        <tr>
          <td width="150" height="22" valign="middle" style="font-weight: bold;">&nbsp;</td>
          <td><input name="submit" type="image" style="border: 0;" src="images/b_login.gif" width="68" height="22"></td>
        </tr>
      </table>
	  </form>
    </td>
  </tr>
</table>
</html>
<?php
}
?>

Und in der anderen Datei steht:

PHP:
session_start();

if (! session_is_registered('nick'))
{
die ("<html><div align=\"center\"><span style=\"font-family: Verdana; font-size: 20px; font-weight: bold;\">Mitgliedsadministration</span><br><span style=\"font-family: Verdana; font-size: 11px;\">Hier kannst Du Deine Daten nochmals &uuml;berarbeiten.</span></div><br><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" style=\"border: 1px solid #CCCCCC; background-color: #FFFFFF;\"><tr><td height=\"25\" style=\"background-image: url(images/navback.gif); font-family: Verdana; font-size: 11px; font-weight: bold;\"><img src=\"images/forward.png\" width=\"16\" height=\"16\" hspace=\"5\" align=\"absmiddle\">Login<span style=\"font-weight: normal;\"></span></td></tr><tr><td><table width=\"100%\" cellpadding=\"3\" style=\"font-family: Verdana; font-size: 11px;\"><tr><td height=\"50\" align=\"center\"><img src=\"images/no.png\" width=\"16\" height=\"16\" hspace=\"3\" align=\"absmiddle\"><span style=\"font-weight: bold;\">Es ist ein Fehler beim login aufgetreten!</span><br>Du bist nicht eingelogt. Bitte loge Dich korrekt ein.</td></tr></table></td></tr></table></html>");
}

Ich hab schon in der einen Datei alles mit dem session_register() versucht, aber es heisst immer ich wäre nicht eingeloggt.

Ich bin mit meinem Latein am Ende. Bitte helft mir!
 
Wie sieht denn deine Einstellung für register_globals aus?

Wenn Sie wollen, dass ihr Script unabhängig von der Einstellung von register_globals funktioniert, müssen Sie stattdessen das Array $_SESSION verwenden, weil $_SESSION-Einträge automatisch registriert werden. Wenn Sie in Ihrem Script session_register() verwenden, funktioniert es nicht in Umgebungen, in denen die PHP-Anweisung register_globals deaktiviert ist.
 
1. Glaub ich nicht dass das so geht wie dus vorhattest! Du müsstest vorher das $_POST['nick'] als interne Variable auszeichenen ($nick=$_POST['nick']).

2. Hat Pendergast recht:
Pendergast hat gesagt.:
Wenn Sie wollen, dass ihr Script unabhängig von der Einstellung von register_globals funktioniert, müssen Sie stattdessen das Array $_SESSION verwenden, weil $_SESSION-Einträge automatisch registriert werden. Wenn Sie in Ihrem Script session_register() verwenden, funktioniert es nicht in Umgebungen, in denen die PHP-Anweisung register_globals deaktiviert ist.

Sieht dann in deinem Fall so aus:

PHP:
$_SESSION['nick']=$_POST['nick'];

Und wenn du überprüfen willst, ob die Variable in der Session auch registriert wurde kannst du dann das allbekannte isset(); nehmen:

PHP:
if(isset($_SESSION['nick'])){
    //mach was und freu dich
}
 
@nero_85: Deine Methode hab ich schonmal probiert. Geht leider auch nicht. :(

Hier mal meine switch-actions, vielleicht muss da ja was reingestellt werden.

PHP:
<?php
switch($HTTP_GET_VARS['site']) {
 
 default:        $site = "sites/home.php"; break;

 case "register":    $site = "sites/register.php"; break;
 case "login":    $site = "sites/login.php"; break;
 case "rules":    $site = "sites/rules.php"; break;
 case "inprint":    $site = "sites/inprint.php"; break;
 case "memberadmin":    $site = "sites/memberadmin_edit.php"; break;
 case "password":    $site = "sites/passwordlost.php"; break;
 
}

function site_include($site) {
global $entry_id;
global $seite;
global $seiten;
global $id;
global $i;
global $shownews;
global $zahl;
global $userID;
global $newsID;
global $visits;
global $COUNT_CFG;
global $gbid;
global $nick;
global $pw;

$inc = include($site);
if(!$inc){
	header("location: index.php");
	}
}
?>
 
Also es scheint mit der switch-action zu tun zu haben, da er die SESSION dann nicht registriert. Jedenfalls wird mir die SESSION in den Cookies vom Firefox nicht angezeigt.

Jemand ne Idee?
 

Neue Beiträge

Zurück