|
Wheeman :
| 26.03.2004 23:32 |
Hi,
Ich war letzte Woche auf der Suche nach ein paar Schnipseln für ein Login System, da hab ich e-xoops gefunden. Und um ehrlich zu sein: es ist genau das was ich brauchte. So kam's dann, dass ich mir nicht weiter viel Mühe gemacht hab und gleich E-xoops benutze.
Nun aber zum Thema: Ich brauch für meine Commu ein neues Script.
In diesem Script wird ausgewertet wie oft ein User auf einer bestimmten Page war und für die Besuch bekommt er dann Punkte.
Jetzt folgendes Problem:
Ich habe in der tabelle e_xoops_users noch 3 extra felder angelegt:
lasthit (wann der letzte besuch auf der bestimmten page war) lastip (mit welcher ip) punkte (wie viele punkte der user hat)
jetzt will ich, dass php lastip und lasthit auswertet.
Wenn lastip nicht existiert oder lasthit länger als 30 min her ist soll das script einen text ausgeben.
...mein problem ist halt nur: wie kann ich genau die daten von dem user auswerten der auch angemeldet ist? Bitte....Bitte helft mir
greetz Wheeman |
|
|
bama :
| 27.03.2004 12:42 |
ganz versteh ich dich nicht und zwar:
Zitat:In diesem Script wird ausgewertet wie oft ein User auf einer bestimmten Page war und für die Besuch bekommt er dann Punkte.
die bestimmte Page ist deine Community ??? |
|
|
Wheeman :
| 27.03.2004 13:35 |
nein, das ist nur eine seite. nicht die ganze commu sondern nur eine page davon. |
|
|
bama :
| 27.03.2004 13:49 |
die Felder hast du ja schon in der DB angelegt
nimm dir die /class/xoopsuser.php
hier fügst du deine felder entsprechende ein
vor allem ganz unter auch bei den functionen
dann kannst du z.B. über $xoopsUser->lasthit(); $xoopsUser->lastip(); $xoopsUser->punkte();
$xoopsUser->last_login(); steht dir auch zur Verfügung
auswerten, beachte noch, dass in evtl. function $xoopsUser global gesetzt ist
Gruß Hans |
|
|
Wheeman :
| 27.03.2004 14:49 |
danke, das hat mir ein bischen weitergeholfen. Trotzdem kenn ich mich mit Exoops nicht so richtig aus. Bitte...bitte, bitte erklär's nochmal ausführlich.
Oder könntest du mir sogar das script anpassen? Das ist das was ich bis jetzt hab:
(die scriptdatei liegt als anlage bei)
das ist zur Zeit halt auch nur der verbindungsaufbau und nichtmal der vollständig. Kann mir dieses script jemand anpassen...BITTE  |
|
|
Wheeman :
| 29.03.2004 18:01 |
ok, hab schon ein bischen mehr raus (@bame thx^^)
trotzdem kapier ich es noch nicht so ganz. Hab jetzt die daten in der exoopsuser.php eingefügt, nun muss ich aber noch das script selber bewältigen.
Zitat:<?php include("http://mitglied.lycos.de/moneymaking/mainfile.php"); $lastip = "$xoopsUser->lastip()"; $lasthit = "$xoopsUser->lasthit()"; $punkte = "$xoopsUser->punkte()"; $time = time() - 3600; $ip = $REMOTE_ADDR;
if ($xoopsUser->lasthit <= $time){ $edituser = "new XoopsUser($uid)"; "$edituser->setVar("lastip", $ip)"; "$edituser->setVar("lasthit", $time)"; "$edituser->setVar("punkte", $punkte++)"; echo "Das ist ein Testscript"; if ( !$edituser->store() ) { echo "Es ist ein Fehler aufgetreten"; // hier kannst du noch eine Fehlermeldung einbauen } }?>
wer weiß was daran (alles) falsch ist? |
|
|
bama :
| 29.03.2004 19:51 |
Hi Wheeman,
hab dich doch extra gefragt, ob du bei lasthit nicht besser time abspeicherst
jetzt vergleichst du datetime (aus der user DB) mit time() das kann nicht funktionieren
dann darfst du: $edituser = "new XoopsUser($uid)";
nicht in " stellen, muss so heissen: $edituser = new XoopsUser($xoopsUser->uid());
auch die anderen Hochkomma sind nicht richtig
Gruß Hans |
|
|
|
bama :
| 30.03.2004 00:39 |
habe dir eine Mail geschickt
Gruß Hans
NB: wenn noch jemand das Testscript haben möchte, um zu sehen, wie man Felder in die xoopsuser.php einfügt, melden, dann schick ich euch diese |
|
|
Wheeman :
| 30.03.2004 16:29 |
BIG THX! funktioniert jetzt. Muss noch die Funktionen anpassen, aber das bekomm ich denk ich mal alleine hin. Wollte ja nur wissen wie man die Verbindung hinbekommt. DANKE!
@Nobse: Ich hätte keinen besseren Mod wählen können
THX...wenn ich noch was hab frag ich nochmal ...war nurn scherz *freu*
EDIT: lasthit funktioniert nicht. Steht immer der wert in der db: 838:59:59 und die reloadsperre klappt auch nicht. trotzdem THANKS!
[ Geändert von Wheeman an 30.03.2004 17:33 ] |
|
|
bama :
| 30.03.2004 16:56 |
Zitat:Steht immer der wert in der db: 838:59:59
da speicherst du falsch ab, time hat keinen Wert mit : time ist eine 10stellige Zahl, genau die Sekunden seit Einführung der Unixzeit (01.01.1970)
verarbeite diesen Wert mit date oder wie ich dir im Testscript gezeigt habe mit formatTimestamp($t_last_hit, "l", $xoopsUser->timezone());
die function findest du in der /include/functions.php von exoops
Gruß Hans |
|
|
Wheeman :
| 30.03.2004 21:41 |
hmmm ich glaub das leigt an der db.
ich hatte bei lasttime type= time
das hab ich umgeändert zu timestamp, jetzt bekomm ich folgendes:
20001221192014
kann irgendwie nich sein oder? |
|
|