session_id löschen wenn Browser geschlossen wird

Bring das Eintragen im Login unter...
Also da, wo die anderen nötigen Daten für die Session beim einloggen auch rein geschrieben werden...

Man kann die IP auch für andere Zwecke loggen, aber das is hier ja zur Zeit nicht nötig..
 
:rolleyes: Jungs, mal ehrlich: wollt Ihr den armen Kerl veräppeln?

Schaut die korrekte Syntax doch wenigstens mal nach, wenn Ihr das nicht so im Kopf habt. Der probiert sich ja den Wolf mit Euren falschen Statements.

- Werte werden nicht in Backticks gesetzt, nur Bezeichner.
- INSERT INTO ... SET Spalte = "..."

So sollte es gehen:

PHP:
$sql="insert into
 users
 SET IP = '".$_SERVER['REMOTE_ADDR']."'";
$result = mysql_query($sql);

Und wenn Abfragen nicht funktionieren, solltest Du das testhalber so machen:

PHP:
$result = mysql_query($sql) or die(mysql_error() . '<br/>' . $sql);

Dann gibt's auch eine Fehlermeldung.

LG
 
PS: vieleicht sollte ich noch erwähnen "da es mir gerade auffählt"

Ich muss die IP beim User der gerade online ist eintragen!

ca. so
PHP:
function login($userid)
{
    $sql="UPDATE users
    SET UserSession='".session_id()."'
    WHERE UserID='$userid'"; 
    mysql_query($sql);
}

aber wenigstens hatt er mir die ip in die db geschrieben! aber auf eine neue eigene
linie.:)
 
Hi,

ein einfaches Update-Statement sieht so aus:

SQL:
UPDATE Tabelle SET Spalte1 = 'Wert1', Spalte2 = 'Wert2', ... WHERE Bedingung

Den Rest kannst Du jetzt aber wirklich alleine.

LG
 
Zuletzt bearbeitet von einem Moderator:
ich habe es mal so versucht aber es geht nicht!

PHP:
function iplog($userid)
{
    $sql="UPDATE users
    SET IP = '".$_SERVER['REMOTE_ADDR']."'
    WHERE UserID='$userid'";
	mysql_query($sql);	
}

deshalb habe ich auch nachgefragt. sollte doch klappen? so wie ich das gemacht habe?
 
Zuletzt bearbeitet:
Wo rufst du die Funktion denn auf?

Könntest du vielleicht mal das ganze Skript posten, damit man sich einen Überblick verschaffen kann? Immer nur mit Schnipseln zu arbeiten ist ein wenig lästig.
 
OK.

Das ist die check_user.php

PHP:
<?
function connect()
{
    $con= mysql_connect('----','-----','-----') or die(mysql_error());
     mysql_select_db('outsk_login',$con) or die(mysql_error());
}
connect();
function check_user($email, $pwd)
{
    $sql="SELECT UserID
    FROM users
    WHERE email='".$email."' AND pwd=MD5('".$pwd."')
    LIMIT 1";
	connect();
    $result= mysql_query($sql) or die(mysql_error());
    if ( mysql_num_rows($result)==1)
    {
        $user=mysql_fetch_assoc($result);
        return $user['UserID'];
    }
    else
        return false;
}

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

function logged_in()
{
    $sql="SELECT UserID
    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);
}
function iplog($userid)
{
    $sql="UPDATE users
    SET IP = '".$_SERVER['REMOTE_ADDR']."'
    WHERE UserID='$userid'";
	  $result = mysql_query($sql);	
}
?>

und das ist die login.php

PHP:
<?php
session_start();
include('a.php');
include('check_user.php');
$userid = "UserID";
login($userid);
iplog($userid);
include('config.php');	
//Beim Absenden des Formulars
if(isset($_POST['submit']))
{
	$userid=check_user($_POST['email'], $_POST['pwd']);
    if ($userid!=false)
        login($userid);
	//Variablen werden aus dem Formular geholt
	$email = $_POST['email'];
	$pwd = $_POST['pwd'];
	
	//Wenn E-Mail/Passwort nicht deklariert wurden, gehe zur Login-Seite
	if ($email=="" || $pwd=="")
	{
		echo "<Script>alert('Bitte geben Sie Ihre Benutzerdaten ein!')</script>";
		echo "<Script>history.back()</script>";
		exit();
	}
	
	//Ansonsten vergleiche sie mit der Datenbank
	else
	{
		$pwd = md5($pwd);
		
		db_connect();
		$result = mysql_query("SELECT * FROM users WHERE (email='$email' ||
    UserID='$userid') && pwd='$pwd'");
		
		//Bei richten Daten, gehe zum Useraccount
		if(mysql_num_rows($result)===1)
		{
			//Visits erhöhen
			$sql="UPDATE users 
			SET visits='".($email['visits']+1)."' 
			WHERE (email='$email' || UserID='$userid') && pwd='$pwd'";
			mysql_query($sql) or die("update fails");
		
			$users = mysql_fetch_array($result);
			
			db_disconnect();
			$_SESSION['UserID'] = $users['UserID'];
			$_SESSION['email'] = $users['email'];
			$_SESSION['pwd'] = $users['pwd'];
			$_SESSION['allow_login'] ="yes";
			header("Location: ".BASEHREF."/cms.php");
			exit();
		}
		//Ansonten, zeige Fehlermeldung	
		else
		{
			db_disconnect();
			echo "<Script>alert('Ihr Benutzername oder Passwort ist falsch!')
      </script>";
			echo "<Script>history.back()</script>";
			exit();
		}
	}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "
http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo TITLE; ?></title>
</head>
<body>
<link href="<?php echo STYLESHEET_HREF; ?>" rel="stylesheet" type="text/css" />
<div class="promem_body">
<div class="promem_header">Login</div>
  <form action="#" method="post">
    <table class="promem_content">
      <tr>
        <td width="50%"><div class="promem_text">E-Mail-Adresse:</div></td>
        <td width="50%"><input type="text" name="email" /></td>
      </tr>
      <tr>
        <td width="50%"><div class="promem_text">Passwort:</div></td>
        <td width="50%"><input type="password" name="pwd" /></td>
      </tr>
      <tr>
        <td colspan="2"><div class="promem_text"><a href="<?php //echo BASEHREF;
         ?>/forgot.php"></a></div></td>
      </tr>
      <tr>
        <td colspan="2"><div class="promem_text"><a href="<?php //echo BASEHREF;
         ?>/signup.php"></a></div></td>
      </tr>
    </table>
    <div class="promem_button">
      <input type="submit" value="  Login  " name="submit" />
    </div>
  </form>
  <noscript><br />Sie m&uuml;ssen Javascript aktivieren, um fortfahren zu
  k&ouml;nnen!</noscript>
</div>
</body>
</html>


oder soll ich alles zippen und hochladen? :)
 
Ich benutz dabei garkeine Ticks^^
Reicht schon, dass ich ticke xD

Rischtisch Psy...
In dem Statement solltest dud ie IP mit eintragen lassen...
Also:
PHP:
function login($userid)
{
    $sql="UPDATE users
    SET UserSession='".session_id()."',
    IP = '".$_SERVER['REMOTE_ADDR']."'
    WHERE UserID='$userid'"; 
    mysql_query($sql);
}

Dann hatte ich diese Variante des Statements bei dir gelesen knuddel, aber falsch wieder gegeben... *schäm*
ABER...
PHP:
INSERT INTO
users
(IP
)
VALUES
('".$_SERVER['REMOTE_ADDR']."'
)

klappt aber auch^^
Sonst würde mich wundern, weshalb das in meinen Skripten klappt :D

[EDIT]

Post verspätet eingetragen, da ci hbeim schreiben 20min weg war...
Wegen Notfall afk gewesen ;)
 
Zurück