Login geht....aber session nicht

Headymaster

Erfahrenes Mitglied
Hallo!


habe mir ein Usersystem gecodet....so das prob ist....das auf meinem Webserver auf dem Heimrechner alles klappt.

Sprich der User kann sich eiloggen...die Seesion wird gesetzt und das Loginfeld wird durch das usermenu ersetzt......

So nun lade ich alles ins Internet auf nen webserver...dort funktioniert der Login wiederum nicht.

index.php:
PHP:
<?php
ob_start();
session_start();
include("inc/parser.php");
include("inc/bbcode.php");
ob_end_flush();
?>


user/index.php:
PHP:
<?php
########Buffer Start###############
ob_start();
session_start();
###################################

// weiter PHP code für register usw

if($_GET['do'] == "login")
{
  $loginuser = "SELECT ". 
        "*". 
        "FROM ". 
        "user ". 
        "WHERE ". 
        "(login_name = '".$_POST["login"]."') AND ". 
        "(password = '".md5 ($_POST["password"])."')";
  $logindo = mysql_query ($loginuser);
  $logincount = mysql_num_rows($logindo);
		
		if ($logincount > 0)
             {
		 
		// Benutzerdaten in ein Array auslesen. 
             $logindata = mysql_fetch_array ($logindo); 

             // Sessionvariablen erstellen und registrieren 
             $_SESSION["user_id"] = $logindata["id"]; 
             $_SESSION["user_login"] = $logindata["login_name"]; 
             $_SESSION["user_pwd"] = $logindata["password"]; 
             $_SESSION["user_rights"] = $logindata["rights"];
	  
	         session_write_close();
	         $_GET['fehler'] = 3;
	         include("error/index.php");
	         $index = showtpl("error/error_msg", array("CSS" => "$css",
                                                       "msg" => "$error_msg",
										               "redirect_url" => "index.php?id=3&do=news_show"));
             } 
             else 
             {
			 $_GET['fehler'] = 4;
			 include("error/index.php");
             $index = showtpl("error/error_msg", array("CSS" => "$css",
                                                       "msg" => "$error_msg",
										               "redirect_url" => "index.php?id=3&do=news_show"));;
             }
}

//....weiterer phpcode
?>


inc/bbcode.php:
PHP:
<?php
#####Ausgabe Puffern#######
ob_start();
session_start();
ini_set('session.use_trans_sid', 1);
###########################
####FUNKTIONEN#############
###########################
// funktion um eine Verbindung mit der Datenbank herzustellen
require("mysql.php");
if (!$connect = mysql_connect($dbhost, $dbuser, $dbpw))
  {
  echo "Verbindung fehlgeschlagen!";
  mysql_close();
  }
if (!$selectdb = mysql_select_db($dbname, $connect))
  {
  echo "Datenbank nicht erreichbar!";
  mysql_close();
  }

// funktion zum Überprüfen des cookies oder der Session-Variablen
function checkuser()
{
   if(isset($_SESSION['user_id']) && isset($_SESSION['user_pwd']) && isset($_SESSION['user_login']) && isset($_SESSION['user_rights']))
   {
   return $_SESSION['user_rights'];
   }
   else
   {
   return false;
   }
}
// funktion, um ein zufälliges PW zu erzeugen
function generatepw()
{
	// Variablen definieren
	$vokale = 'aeiouy';
	$konsonanten = 'bcdfghjklmnprstvwxz';
	$passwort = '';
	
	// Zufallsgenerator initialisieren
	mt_srand((double)microtime()*1000000);
	
	// Vokal/Konsonant-Paar(e) erzeugen
	for($i = 1; $i <= 3; $i++) 
	{
		$passwort .= substr($konsonanten, mt_rand(0, strlen($konsonanten)-1), 1);
		$passwort .= substr($vokale, mt_rand(0, strlen($vokale)-1), 1);
	}
	
	// Ziffern-Paar anhängen 
	$passwort .= mt_rand(0, 9);
	$passwort .= mt_rand(0, 9);
	
	// Rückgabewert
	return $passwort;
}

###########################
###Templateberechnungen####
###########################
// Config auslesen
$css = "inc/templates/standard/css/css.css";
$title = "Nilson CMS";
$copyright = "NilsonCMS | &copy by "."<a href=\"mailto:nielsmaseberg@hotmail.com\">Niels Maseberg aka. Nilson</a>";
// Includeswitch
if (!isset($_GET['id']))
{
$id = 1;
}
else
{
$id = $_GET['id'];
}
$include_sql = "SELECT codeurl FROM nav WHERE id=$id";
$include_sql_do = mysql_query($include_sql,$connect);
   while ($include_sql_row = mysql_fetch_assoc($include_sql_do))
   {
   $content = require("$include_sql_row[codeurl]");
   }  
// UserNavigation auslesen oder Loginbereich laden
if (checkuser() >= "1")
{
$user_menu = showtpl("index/user", array("CSS" => "inc/templates/standard/css/css.css",
                                         "Title" => "$title",
										 "u_lobby" => "index.php?id=23",
										 "u_lobby_n" => "UserLobby",
										 "u_profil" => "index.php?id=1&do=profiledit",
										 "u_profil_n" => "UserProfil",
										 "u_admin" => "index.php?id=!!",
										 "u_admin_n" => "AdminPanel",
										 "logout" => "index.php?id=1&do=logout"));
}
else
{
$user_menu = showtpl("index/login", array ("CSS" => "inc/templates/standard/css/css.css",
                                           "lostpw" => "index.php?id=1&do=lostpw",
										   "register" => "index.php?id=1&do=register"));
}
// Hauptmenu
$haupt_menu = showtpl("index/hmenu", array("CSS" => "inc/templates/standard/css/css.css",
                                           "Title" => "$title",
										   "h_news" => "index.php?id=9",
										   "h_news_n" => "News",
										   "h_newsarchiv" => "index.php?id=4",
										   "h_newsarchiv_n" => "Newsarchiv",
										   "h_forum" => "index.php",
										   "h_forum_n" => "Forum",
										   "h_gbook" => "index.php?id=3519381839",
										   "h_gbook_n" => "Gästebuch",
										   "h_userlist_n" => "Userliste",
										   "h_userlist" => "index.php?id=1&do=userliste"));										 
// Counter
$counter = showtpl("index/counter", array("CSS" => "inc/templates/standard/css/css.css",
                                          "v_total" => "3798",
                                          "v_today" => "65",
										  "v_now" => "3"));
###########################
###Templatparser###########
###########################

// Index-Seite generieren
echo showtpl("index", array("Title" => "$title",
                            "Header" => "$title",
							"CSS" => "inc/templates/standard/css/css.css",
							"User_Menu" => "$user_menu",
							"Haupt_Menu" => "$haupt_menu",
							"Counter" => "$counter",
							"Content" => "$index",
							"Copyright" => "$copyright"));

####Ausgabe Puffern Ende###
ob_end_flush();
?>

So nun frage ich mich...warum die Session net übergeben wird...obwohl jedesmal die session vor allem anderen gestartet wird....

Würde mich sehr über Hilfe freuen.

MFG Niels
 
Ich habe des auf mein eigenen root installiert.....

Wäre es denn ein Sicherheitloch...wenn man sessio.use.trans_id aktiviert?

Oder gibt es eine sichere und auch gewöhlich benutze andere variante?

MFG Niels
 
Hi

Nein. Ein Sicherheitsloch ist das nicht. Die sicherste Variante die SessionId zu übergeben ist per Cookie. Das hat aber den Nachteil das Cookies nicht überall aktiviert sind.

Zum Thema Sicherheit solltest du mal nach dem Begriff SQL-Injection googeln und diesen Beitrag anschauen. Da habe ich Heute schon mal was zu dem Thema geschrieben.

Mfg Akkie
 
Ja dagegen weiß ich schon mit my_real_escape_strin($_POST['blabla'])

Aber in meinem Script werde ich noch einbauen......dass die eingaben erstma mit preg_match überprüft werden.....also dass nur a-z...A-Z un 0-9 vorkommen dürfen und "-" auch.....nur halt wichtig ist....das ja kein _ vorkommen darf...damit der user keine MYSQL angaben machen kann...aber daskommt noch ;-)

Aber wegen session.....also müsste ich jez aufm root einstellen inner php.ini, dass session_use_trans_id aktiviert is?

MFG Niels
 
Also habe auch in der phpinfo.php nachgeschaut....und selbst da wird nun session_use_trans_id angezeigt als ON....

Woran könnte es denn sonst noch liegen?

MFG Niels
 
Zurück