ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / PHP / MySQL Probleme / access logging - Probleme mit meinem Code :/


Seite 1 von 1

hevtig schrieb am 09.11.2006 um 17:36 Uhr

Hallo,
ich habe vor einiger Zeit in meinem Forum eine kleine logging Funktion eingebaut.
Sie funktioniert ansich auch ganz gut, allerdings wollte ich das Ganze jetzt erweitern, bekomme allerdings Probeme. Habe auch schon einige zeit keine PHP mehr"angefasst" ;)

Was macht das Ganze?
Das Skript nimmt die Daten, die in "benutzername" beim Anmelden eingetragen wurden und schreibt sie mit einem timestamp in eine eigene tabelle.
Somit kann ich sehen, wie sehr mein Forum genutzt wird. Die User sind nebenbei informiert!
Da ich hauptsächlich User aus 2 handvoll Firmen habe, wollte ich jetzt zur leichteren Unterscheidung neben username und timestamp die Emailadresse in meine Tabelle schreiben lassen.
Das Ganze sieht nun so aus:
do_login.php vorletzte Zeile

##########################ACCESS LOG####################################
$time= time ();
$r_useremail = thwb_query ("SELECT  useremail FROM ".$pref."user WHERE username='$login_name'") ;
        while( $useremail = mysql_fetch_array($r_useremail) )
        {
                $a_useremail[]=$useremail;
        }
//mysql_result($useremail1) ;

thwb_query("INSERT INTO ".$pref."accesslog (username, accesstime, useremail)
                VALUES(
                '".addslashes($login_name)."',
                '$time',
                '$useremail'");
#############################################################################

Der query ansich funktioniert. Da macht mich ja so wahnsinnig, daß ich den Wert nicht in die variable bekomme und diesen dann in eine andere Tabelle geschrieben bekomme!

Fehlermeldung kommt:

ThWboard ErrorMySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
Query: INSERT INTO tb_accesslog (username, accesstime, useremail)
VALUES(
'Benutzer 1',
'1163089831',
''

Vielleicht kann mir da ja jemand weiterhelfen..

Ach ja, version 2.81, php 4.4 mysql 5, IIS 6

Narodnaja schrieb am 09.11.2006 um 22:52 Uhr

ehm. Sollte da in den insert-query nicht der $a_useremail[0] rein ? Die $useremail ist doch nur für die while-Schleife gültig ... aber warum eigentlich ein array ? Wird doch nur eine.

while( $useremail = mysql_fetch_array($r_useremail) )
        {
                $loginemail=$useremail;
        }

und dann in den insert-query $loginemail. Hab auch schon länger nix mehr geschrieben, aber probiers doch mal so.

/edit:
Oder gleich mit mysql_fetch_row arbeiten, du holst ja wirklich nur einen Eintrag pro Login.

hevtig schrieb am 21.11.2006 um 13:52 Uhr

Vielen Dank,

letztendlich hat es hingehauen

##########################ACCESS LOG #########################################
$time= time ();
$r_useremail = thwb_query ("SELECT  useremail FROM ".$pref."user WHERE username='$login_name'") ;
        while( $useremail = mysql_fetch_row($r_useremail) )
        {
                $loginemail=$useremail[0];
        }

thwb_query("INSERT INTO ".$pref."accesslog (username, accesstime, useremail)
                VALUES(
                '".addslashes($login_name)."',
                '$time',
                '$loginemail')");
#############################################################################

Seite 1 von 1