Ergebnis 1 bis 9 von 9

Thema: Session verliert seine Werte

  1. #1
    Azubi(ne)
    Registriert seit
    21.04.2008
    Beiträge
    61
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Session verliert seine Werte

    Hallo zusammen!

    Ich bastel zZt eine kleine Seite und arbeite das erste mal mit Sessions. Lokal läuft die Seite porblemlos. Eben bin ich dann mal auf die Idee gekommen die Seite online zu stellen und dort ein mal zu testen.

    Online besteht folgendes Problem. Nach dem Login werden Werte vom Benutzer in Session-Variablen geschrieben.

    Bsp: $_SESSION['login_user_name'] = $_REQUEST["login_user_name"];

    Gebe ich diese Werte auf der selben Seite aus funktioniert dies auch.

    Bsp. echo "login_user_name->".$_SESSION['login_user_name']."
    ";

    Klicke ich dann jedoch auf einen anderen Link verliert er die Werte (Lokal tritt der Fehler nicht auf).

    Hat vll jmd mal das selbe Problem gehabt und spontan eine Idee woran das liegen könnte?

    Danke schon mal im vorraus!
    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 !!!!!

  2. #2
    Bandit
    Gast

    Standard

    Überall session_start eingebaut? error_reporting hochgedreht?

    Ohne Quellcode kann dir niemand helfen.

  3. #3
    Shogun Avatar von DarkSyranus
    Registriert seit
    28.03.2006
    Ort
    ::1/128
    Alter
    25
    Beiträge
    3.446
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard

    Steh am anfang deiner Datei session_start() um die Session zu initialisieren?
    Wenn nicht schreibe das mal direkt nach <?php (nächste Zeile) und versuche es erneut.

    Code:
    <?php
    session_start&#40;&#41;;
    
    ...

  4. #4
    Azubi(ne)
    Themenstarter

    Registriert seit
    21.04.2008
    Beiträge
    61
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich kann ja mal den Code posten, wo die Session aufgebaut wird.

    Ersten 10 Zeilen der header.php
    Code:
    <?php 
    require_once&#40;"inc/header_inc.php"&#41;;
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http&#58;//www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="styles/view.css" media="all" />
    <link rel="stylesheet" type="text/css" href="styles/lightbox.css" media="screen" />
    <title>Unbenanntes Dokument</title>
    Die inc/header_inc.php
    Code:
    <?php
    require_once&#40;"inc/config.php"&#41;;
    require_once&#40;"inc/security.php"&#41;;
    require_once&#40;"inc/functions.php"&#41;;
    ?>
    Die inc/config.php
    Code:
    <?php
    // Database Connection
    if &#40;$_SERVER&#91;'HTTP_HOST'&#93; == "localhost"&#41; &#123;
    	define&#40;"MYSERVER", "xxx"&#41;;
    	define&#40;"MYSQLUSER", "xxx"&#41;;
    	define&#40;"MYSQLPASS", "xxx"&#41;;
    	define&#40;"MYSQLDB", "xxx"&#41;;
    &#125; else &#123;
    	define&#40;"MYSERVER", "xxx"&#41;;	
    	define&#40;"MYSQLUSER", "xxx"&#41;;
    	define&#40;"MYSQLPASS", "xxx"&#41;;
    	define&#40;"MYSQLDB", "xxx"&#41;;	
    &#125;
    
    // Roles
    define&#40;"CAN_DELETE_POSTINGS", "1"&#41;;
    
    // Pictures in the header
    $header_pictures = array&#40;
    	"pic1.jpg",
    	&#41;;
    ?>
    Die inc/security.php
    Code:
    <?php
    // Session
    session_start&#40;&#41;;
    
    // Connection establishment
    $mysql_connect = @mysql_connect&#40;MYSERVER, MYSQLUSER, MYSQLPASS&#41;;
    if &#40;$mysql_connect == FALSE&#41; &#123; ?>
    	<span id="error_message">Es konnte keine Verbindung zum MySQL-Server hergestellt werden. Bitte informieren Sie den Administrator.</span> 
    <?php &#125;
    $mysql_select_db = @mysql_select_db&#40;MYSQLDB&#41;;
    if &#40;$mysql_select_db == FALSE&#41; &#123; ?>
    	<span id="error_message">Es konnte keine Verbindung zur Datenbank hergestellt werden. Bitte informieren Sie den Administrator.</span> 
    <?php &#125;
    
    // After login, fill session variables
    if &#40;$_REQUEST&#91;"login_user"&#93;&#41; &#123;
    	$_SESSION&#91;'login_user_name'&#93; = $_REQUEST&#91;"login_user_name"&#93;;
    	$_SESSION&#91;'login_user_password'&#93; = $_REQUEST&#91;"login_user_password"&#93;;
    	header&#40;"location&#58; index.php"&#41;;
    &#125;
    
    // Logout
    if &#40;$_REQUEST&#91;"logout"&#93;&#41; &#123;
    	unset&#40;$_SESSION&#91;'login_user_name'&#93;&#41;;
    	unset&#40;$_SESSION&#91;'login_user_password'&#93;&#41;;	
    	header&#40;"location&#58; index.php"&#41;;
    &#125;
    
    // All data from logged in user
    $login_user_name = mysql_real_escape_string&#40;htmlspecialchars&#40;$_SESSION&#91;'login_user_name'&#93;&#41;&#41;;
    $login_user_password = md5&#40;$_SESSION&#91;'login_user_password'&#93;&#41;;
    $everything_from_user_logged_in = mysql_query&#40;"SELECT * FROM freshn_users WHERE user_name = '".$login_user_name."' AND user_password = '".$login_user_password."' AND user_name != ''"&#41;;
    $user_logged_in = mysql_fetch_object&#40;$everything_from_user_logged_in&#41;;
    // Wrong login data, session delete
    $num_rows = mysql_num_rows&#40;$everything_from_user_logged_in&#41;;
    if &#40;$num_rows == '0'&#41; &#123;
    	unset&#40;$_SESSION&#91;'login_user_name'&#93;&#41;;
    	unset&#40;$_SESSION&#91;'login_user_password'&#93;&#41;;
    &#125;
    
    // Queries
    $everything_from_users = mysql_query&#40;"SELECT * FROM freshn_users"&#41;;
    ?>

  5. #5
    Bandit
    Gast

    Standard

    Vielleicht schreit PHP nach Hilfe, nur du hörst nicht zu:

    error_reporting(E_ALL);
    ini_set("display_errors", true);

    vor

    require_once("inc/header_inc.php");

    einbauen.

  6. #6
    Azubi(ne)
    Themenstarter

    Registriert seit
    21.04.2008
    Beiträge
    61
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ja, ich hatte auch schon versucht mir Fehlermeldungen auszugeben. Dies hier wird ausgespuckt:

    Notice: A session had already been started - ignoring session_start() in /var/www/users/d/d00055/websites/test.freshn.de/inc/security.php on line 3

    Notice: Undefined index: login_user in /var/www/users/d/d00055/websites/test.freshn.de/inc/security.php on line 16

    Notice: Undefined index: logout in /var/www/users/d/d00055/websites/test.freshn.de/inc/security.php on line 23

    Notice: Undefined index: login_user_name in /var/www/users/d/d00055/websites/test.freshn.de/inc/security.php on line 30

    Notice: Undefined index: login_user_password in /var/www/users/d/d00055/websites/test.freshn.de/inc/security.php on line 31
    Er sagt halt, dass es schon eine Session gibt. Aber die session_start - Funktion muss doch immer, auf jeder Seite, ganz oben stehen, oder?

  7. #7
    Bandit
    Gast

    Standard

    Dann wird vermutlich security.php 2x eingebunden oder du hast noch irgendwo ein session_start.

    Und den Rest bekommst du weg, wenn du anfängst, ordendlich zu programmieren und nicht
    Code:
    if &#40;$_REQUEST&#91;"login_user"&#93;&#41;
    sondern
    Code:
    if &#40;isset&#40;$_REQUEST&#91;"login_user"&#93;&#41;&#41;
    schreibst.

  8. #8
    Azubi(ne)
    Themenstarter

    Registriert seit
    21.04.2008
    Beiträge
    61
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich glaub ich habe den Fehler gefunden. Ich verstehe nur nicht wieso er nie lokal aufgetreten ist.

    Ich nehme das Passwort in md5 und haue dort noch mal ein md5 drüber. Daher findet er den Nutzer nicht.

    Ich werd es noch mal durchtesten.

  9. #9
    Azubi(ne)
    Themenstarter

    Registriert seit
    21.04.2008
    Beiträge
    61
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von bandit600
    Dann wird vermutlich security.php 2x eingebunden oder du hast noch irgendwo ein session_start.

    Und den Rest bekommst du weg, wenn du anfängst, ordendlich zu programmieren und nicht
    Code:
    if &#40;$_REQUEST&#91;"login_user"&#93;&#41;
    sondern
    Code:
    if &#40;isset&#40;$_REQUEST&#91;"login_user"&#93;&#41;&#41;
    schreibst.
    Ja, ich werde versuchen etwas sauberer zu schreiben

    Danke für die Hilfe!

Ähnliche Themen

  1. Waschmaschine verliert Wasser!
    Von hayflower im Forum Off Topic und Quasselbox
    Antworten: 2
    Letzter Beitrag: 06.11.2009, 22:59
  2. Applet Werte übergeben und Werte zurückgeben
    Von martin80 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 08.03.2007, 19:11
  3. Einfacher bzw. Doppelklick verliert plötzlich seine Funktion
    Von Pfeffi im Forum Computer - Internet Forum
    Antworten: 3
    Letzter Beitrag: 27.11.2006, 20:45
  4. Frameset verliert Scrollbalken bei Einbau PHP Gästebuch
    Von ruebe im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 30.04.2006, 12:52
  5. Erkennen wenn ein Fenster den Focus verliert
    Von darktweaker im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 19.04.2006, 14:29

Stichworte

Berechtigungen

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