session id

matze1983

Erfahrenes Mitglied
Hallo,

ich habe da ein funktionierdendes loginscript.....in die login seite können noch weitere Seiten included werden. Die Seiten dienen dafür um Informationen auf die Datenbank zu befördern.
Mein Probelm ist es,...dass ich keine Daten auf die Datenbank bekomme. Ich vermute es liegt an meiner flaschen Sichtweise.
Ich dachte mir, dass die Seiten die durch
Code:
session_start();
ja miteinander verbunden sind, ja alle auf die session_id zurückgreifen können. Drum sieht mein querry so aus
Code:
$query=" UPDATE users SET thema1='$motto',thema2='$ueber_sich',thema3='$sonstso',thema4='$wuseldusel'  WHERE usersession='".session_id()."'";
 
Mit welcher Datenbank arbeitest du denn? MySQL?
Wenn ja, lässt du schon die Variable mit
PHP:
mysql_query($query);
ausführen, oder
Wegen deiner session_id... Wenn ich mich nicht täusche, werden Variablen in Sessions immer mit
PHP:
$_SESSION['variablename']
also in deinem Fall z.b.:
PHP:
$_SESSION['session_id']
... kann aber auch sein, dass ich mich irre!

Gruß!
 
@ gumbo also habe versucht mir die $query ausgeben zu lassen, jedoch springt das script wieder auf die Begrüßungsseite zurück. Denke ich das zu umständlich? oder kannman es anderes realisieren..denn ich verusche, ja das die Werte dem richtigen User zugewiesen und eingetragen werden....nur da die id, nicht enthalten ist, dachte ich, ich kann es über die session_id realisieren, das sie ja mitgeliefert werden muss.


@hansi ich verwende MySQL aber habe das Get der VAriablen so wie du geschrieben hast angehängt, aber es geht nicht,..er schreibt das es zu Syntaxfehlern kommt.

MfG
Mathias
 
mir fällt gerade auf...das die Scripte auch wenn ich eine id vorgebe zum Bsp. id='1' entspricht dem User name1....das es nicht funktioniert. Wenn ich das Script manuell starte funktioniert es....woran liegt das? und wie kann ich da ändern, weil das liegt anscheinend mein Problem.
 
Zuletzt bearbeitet:
na gut dann poste ich mal:-)


das ist die index.php

PHP:
<?
session_start(); 
extract($_SERVER);
extract($_ENV);
extract($_GET);
extract($_POST);
extract($_REQUEST);  


include('sessionhelpers.inc.php'); 
if (isset($_POST['login'])) 
{ 
    $userid=check_user($_POST['username'], $_POST['userpass']); 
    if ($userid!=false) 
        login($userid); 
    else 
        echo "<center>
              <table border='1'>
              <tr> <td colspan='5' align='center'>Userprofilverwaltung</td>
              </tr>
              <tr></tr>
              <tr><td colspan='5'><div style=\"overflow:auto; height: 371px; width: 618px; border:0; \">
                   <p>Deine Anmeldedaten sind nicht korrekt!</p></div>
              </td>
              </tr>
              </table>"; 
} 

if (!logged_in()) 
   { echo "
   <center>
              <table border='1'>
              <tr> <td colspan='5' align='center'>Userprofilverwaltung</td>
              </tr>
              <tr></tr>
              <tr><td colspan='5'><div style=\"overflow:auto; height: 371px; width: 618px; border:0; \">
                    <form method='post' action='index.php'> 
                    <label>Benutzername:</label><input name='username' type='text'><br> 
                    <label>Passwort: </label><input name='userpass' type='password' id='userpass'><br> 
                    <input name='login' type='submit' id='login' value='Einloggen'> 
                    </form></div></td>
              </tr>
              </table>"; 
    
    }
else 
{
//Pagegestaltung
switch($eingabe)
{
    case 'userdaten':
    $eingabe = "management/userdaten.php";
    break;
    case 'userinhalt':
    $eingabe = "management/userinhalt.php";
    break;
    case 'profilbild':
    $eingabe = "management/profilbild.php";
    break;
    case 'userthemen':
    $eingabe = "management/userthemen.php";
    break;
    case 'gallerie':
    $eingabe = "management/gallerie.php";
    break; 
    case 'passwort':
    $eingabe = "management/pass.php";
    break;
    default:
    $eingabe= "management/willkommen.php";
    break;
}
echo"
<center>
<table border='1'>
<tr> <td colspan='5' align='center'>Userprofilverwaltung</td>
     <td colspan='5' align='center'><a href=\"logout.php\">Ausloggen</a></td>
</tr>
<tr>
 <td><div align='center'><a href='?eingabe=userdaten'><font size='2'>Daten/Profil</font></a></div></td>
 <td><div align='center'><a href='?eingabe=userinhalt'><font size='2'>Inhalt</font></a></div></td>
 <td><div align='center'><a href='?eingabe=profilbild'><font size='2'>Profilbild</font></a></div></td>
 <td><div align='center'><a href='?eingabe=userthemen'><font size='2'>Themenverwaltung/GE</font></a></div></td>
 <td><div align='center'><a href='?eingabe=gallerie'><font size='2'>Gallerie</font></a></div></td>
 <td><div align='center'><a href='?eingabe=passwort'><font size='2'>Passwort</font></a></div></td>
 </tr>
<tr>
 <td colspan='6'><div style=\"overflow:auto; height: 371px; width: 618px; border:0; \"><p>";
  
 include($eingabe);
echo" 
   </p></div>
   </td>
</tr>
</table>
";
}
?>

die sessionhelpers.php
PHP:
<? 
function connect() 
{
    $con= mysql_connect('xxx,'xxx','xxx') or die(mysql_error()); 
     mysql_select_db('xxx',$con) or die(mysql_error()); 
} 

function check_user($name, $pass) 
{ 
    $sql="SELECT id FROM users WHERE username='".$name."' AND userpass='".md5($pass)."'LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()); 
    if ( mysql_num_rows($result)==1) 
    { 
        $user=mysql_fetch_assoc($result); 
        return $user['id']; 
    } 
    else 
        return false; 
} 

function login($userid) 
{ 
    $sql="UPDATE users SET usersession='".session_id()."' WHERE id=".$userid; 
     mysql_query($sql); 
} 

function logged_in() 
{ 
    $sql="SELECT id FROM users WHERE usersession='".session_id()."'LIMIT 1"; 
    $result= mysql_query($sql); 
      return ( mysql_num_rows($result)==1); 
} 

function logout() 
{ 
    $sql="UPDATE users SET usersession=NULL WHERE usersession='".session_id()."'"; 
     mysql_query($sql); 
} 


connect(); 
?>

und das ist eine von den Seiten die hochgeladen werden kann: userinhalt.php

PHP:
<?

extract($_SERVER);
extract($_ENV);
extract($_GET);
extract($_POST);
extract($_REQUEST);


//Datenbankeintrag
if($_POST['gesendet'])
{
$verbindung = mysql_connect ("xxx","xxx","xxx" );
if (!$verbindung)
{die("Konnte keine Verbindung aufbauen!");}
$verbindung = mysql_select_db("xxx", $verbindung);
if (!$verbindung)
{die("Konnte Daten nicht ändern!". mysql_error() );}
//Insert
$query=" UPDATE users SET motto='$motto',ueber_sich='$ueber_sich',bier='$bier',schnaps='$schnaps' WHERE id='$session_id'";
// Eintragen in Datenbank 
echo"$query";
$result= mysql_query($query);
if(!$result)
{die("Konnte nicht eintragen!".mysql_error() );}
}

?>
 
Und die SessionId in der Datenbank ist die selbe, wie die, wenn du deine Daten updaten willst?
Vergleich mal die Session_Id in der Datenbank mal mit der, die in der "userinhalt.php" benutzt wird. Sprich einfach
PHP:
echo "<br>".session_id()."<br>";
in der "userinhalt.php" eingeben und vergleichen...

Gruß!
 
Zuletzt bearbeitet:
Zurück