mit sessions einen eintrag in die db nach reload verhidern?

Transmitter

Erfahrenes Mitglied
hi!

ich habe jetzt endlich meine session verwaltung hinbekommen :) ..

das läuft und die wird auch übergeben usw. ..

jetzt hätte ich da nur ein kleines "problem":

ich speichere jeden user mit ip in der db.
wie kann ich es denn dann in abhängigkeit von der session id anstellen, dass die ip nach nem reload nicht mehr in die db geschrieben wird?

thx schon mal!

cu - transmitter
 
regestrie doch einfach die ip mit session_register("ip");

"ip" für den namen der variable $ip, bei $test dann also "test"

dann kannste mit
PHP:
if(session_is_registered("ip")){
  // keine Speicherung der IP
}
else { 
  // speicherung der ip
}
 
ja, das ist irgendwie .. simpel einfach gut :) ...

thx :)


aber jetzt will ich nur noch bestimmte sachen in die tabelle schreiben ...

also die ip nur beim ersten mal, und dann fortlaufend $PHP_SELF .. wie kann ich denn da jedes mal in die gleiche tab schreiben??

die SID auch in die db und dann mysql_query(WHERE SID = $current_sid? oder so was?

oder kann ich mit mysqlnumrows auch die aktuelle zeile für den user über mehrere sites hinweg mit sessions saven?
 
Zuletzt bearbeitet:
sorry, erklärs nochmal für jemanden der kurz vorm einnicken ist =)

hab deine frage jetzt ganz und garnicht geschnallt
 
die SID des users wird in die Datenbank bei der übergabe der IP gespeichert.

du liest mit nem script die SID aus der datenbank und vergleichst sie mit der aktuell verwendeten SID also

aktuelle SID: $SID = session_id();

if($dbSID == $SID){
// ...
}
else {
// ...
}

oder so:

SELECT SID,username FROM usertabelle WHERE SID = '$SID'

damit suchst du nach der SID und dem Usernamen der die aktuelle SID trägt, wenn ein treffer gefunden wurde (es kann nur einen geben, da die SID's unikate sind) kannst du username ganz leicht hiermit bestimmen:

if(mysql_num_rows($result)>0){
echo "Du bist ".mysql_result($result,0,"username");
}
 
Zurück