Content Management System - CMS : eXV2 
Home
News
Forum
Downloads
Download Module
Sitemap
Partnerseiten
RSS News
Kontakt/Info
Sprache
EnglishFrench
Suchen
Login
Nickname
Passwort

Registrieren?
Passwort?
Navigation
 Home News  Forum Neueste Beiträge  Downloads Download Module eXV² Themes  Weblinks Tutorial Changelog 2.3.1 Jobcenter Gebrauchtmarkt OSMap  Sponsor Kalendersystem Sitemap Partnerseiten RSS News Kontakt/Info Webseiten Wetter
Willkommen im Free Web CMS : eXV² Forum!
  Forenarchiv
     Scripte
  schwierig frage! bitte antwortet

Forum : Scripte

Titel : schwierig frage! bitte antwortet

© 2004-2012 www.exv2.de
http://www.exv2.de

URL dieser Diskussion
http://www.exv2.de/modules/newbb_plus/viewtopic.php?topic_id=1126&forum=13


 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 Sad Sad

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 Sad

 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

 Wheeman :

29.03.2004 20:18
 jep, das mit "" weglassen hab ich mal gemacht, gab ne deftige fehlermeldung.

called for an undefinied function oder sowas. das war aber schon bei $lastip = $xoopsUser->lastip();

deshalb hab ich auch da "" davorgesetzt. Das ist sicher auch falsch oder? Ich werd gleich nochmal alles ausprobieren. Thx, hab aber nicht so viele Hoffnungen, dass ich's gleich hinbekomme..wie gesagt ich bin ein e-xoops noob. Smile



EDIT:

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($xoopsUser->uid());
$edituser->setVar("lastip", $lastip);
$edituser->setVar("lasthit", $lasthit);
$edituser->setVar("punkte", $punkte);
echo "test.";

if ( !$edituser->store() ) {
echo "Es ist ein Fehler aufgetreten"; // hier kannst du noch eine Fehlermeldung einbauen
}

}?>


datetime in der db hab ich zu time geändert. folgender fehler tritt auf:

Fatal error: Cannot instantiate non-existent class: xoopsuser in /data/members/free/tripod/de/m/o/n/moneymaking/htdocs/test/script.php on line 11


Confused Confused Confused

[ Geändert von Wheeman an 29.03.2004 21:45 ]

 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 Very Happy

THX...wenn ich noch was hab frag ich nochmal Wink ...war nurn scherz Very Happy *freu* Smile




EDIT: lasthit funktioniert nicht. Steht immer der wert in der db: 838:59:59
und die reloadsperre klappt auch nicht. trotzdem THANKS! Razz

[ 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?
Partnerseiten
http://www.en.exv2.eu/

Vote für eXV2
php
Kontakt/Info
  Kontakt
  Impressum
  Link zu uns
  AGB
  Datenschutzhinweis
Downloads
  eXV² Core
  Core Sprachfiles
eXV² Filecenter
  Downloads
  Download Module
  eXV² Themes
  Multilanguage Module
  Sprachfiles eXV² Module
eXV² Support
  France