|
Wheeman :
| 19.04.2004 20:44 |
e-xoops scripting ist schwer...so viele neue befehle...
bama hat mir geholfen und mir gezeigt wie man ganz einfach daten in eine datenbank einfügt:
$edituser->setVar("lasthit", time());
wie kann man nun die daten von usern in der datenbank erweitern?
beispiel
[19.4.04 20:44] 182.34.179.65 //das wird zuerst eingefügt [20.4.04 13:12] 198.205.21.98 //das kommt später
usw..... |
|
|
Nobse :
| 19.04.2004 21:06 |
da ich dein script nicht kenne weis ich nicht so richtig wie ich helfen soll einträge in die datenbank mit insert und datensätze überschreiben mit update |
|
|
Wheeman :
| 19.04.2004 21:37 |
$temp_time = time(); $t_last_ip = $xoopsUser->lastip(); $t_last_hit = $xoopsUser->lasthit(); $t_last_punkte = $xoopsUser->punkte(); if ( $t_last_hit < ($temp_time - 3600) OR $t_last_ip != $REMOTE_ADDR){ include_once(XOOPS_ROOT_PATH."/header.php"); OpenTable(); echo "Um vergütet zu werden lass dieses Fenster bitte 20 Sekunden lang auf.
"; CloseTable(); OpenTable(); //inhalt.... CloseTable();
include_once(XOOPS_ROOT_PATH."/footer.php"); //Die Funktion usleep() wird auf einem Windows-System nichts bewirken, da sie dort nicht unterstützt wird. $edituser = new XoopsUser($xoopsUser->uid()); $edituser->setVar("lastip", _REMOTE_ADDR); $edituser->setVar("lasthit", time()); flush(); sleep(20); $edituser->setVar("punkte", $t_last_punkte + 1); $result = $edituser->store(); }else{...............
und ich muss in der spalte allip [time] $REMOTE_ADDR einfügen.
also z.B: [15.2.04 19:23] 136.248.12.148
[ Geändert von Wheeman an 19.04.2004 21:40 ] |
|
|
Nobse :
| 19.04.2004 21:55 |
Ach so du hast keine eigene Tabelle da musst du erst die user tabelle um deine spalte erweitern und dann die classe xoopsuer.php um diese funktion erweitern. also doch ganzschön aufwand |
|
|
Wheeman :
| 19.04.2004 22:06 |
schon gemacht sind in der xoopsuser.php ja nur 3 dinge die man ergänzen musste....ich glaub aber ich habs flasch gemacht, weil als ich das script ausgeführt hab kam nur ein weißer bildschirm.  |
|
|
Nobse :
| 20.04.2004 10:30 |
Das Tabellenfeld in der Tabelle Users hast du auch angelegt ?? |
|
|
Wheeman :
| 20.04.2004 19:00 |
jep, habs aber als longblob gespeichert, da ja weitaus mehr als 255 zeichen in das feld müssen. kannst ja mal die xoops user angucken, liegt als anlange bei
greetz wheeman |
|
|
Wheeman :
| 20.04.2004 21:15 |
k, hatte schonmal nen fehler in der xoopsuser.php ;)
den hab ich behoben..in der xoopsuser müsste jetzt alles gehen. jetzt hab ich in meim script folgendes:
$t_allips = $xoopsUser->allips(); $newallip = $xoopsUser->allips(); $newallip .= "["; $newallip .= formatTimestamp($t_last_hit, "l", $xoopsUser->timezone()); $newallip .= "] "; $newallip .= $REMOTE_ADDR; $newallip .= "br";
[....] $edituser->setVar("allip", $newallip);
in der datenbank passiert aber gar nix. Hab ich die Attribute falsch gesetzt? br ist html, geht hier aber leider nicht einzufügen
 |
|
|
Nobse :
| 20.04.2004 21:26 |
Schalte doch mal unter sysadmin/einstellungen die datenbankabfragen zu da kannst du dann sehen wie die sql abfrage aussieht und den fehler sehen. So sehe ich da keine fehler. |
|
|
Wheeman :
| 20.04.2004 22:27 |
wert 0 wird übermittelt  |
|
|
Nobse :
| 21.04.2004 19:52 |
Also ist in der insert anweisung allip= 0
dann lasse dir doch mal $newallip mit echo vor dem speichern ausgeben ausgeben. |
|
|
Wheeman :
| 21.04.2004 23:34 |
langsam kapier ichs nicht mehr. Hatte davor ein s übertragen, deswegen hats keinen wert eingeschrieben und 0 war vorgegeben, was auch nicht sein darf. naja jetzt hat ich das gefixt. als ich datenbankverbindung anzeigen gemacht hab bekam ich folgendes:
12: UPDATE e_xoops_users SET uname='BlackFish', name='Florian Vogel', email='hatschiman@gmx.de', url='http://www.moneymaking.de.ms', user_avatar='034.gif', user_icq='193792807', user_from='Milchstraße', user_sig='', user_viewemail='1', user_aim='SchokoladenBimbo', user_yim='', user_msnm='hatschiman@gmx.de', pass='ed290a5959a25eb38af7cb02a2f1e146', attachsig='0', rank='7', theme='ac3blue', timezone_offset='1', umode='flat', uorder='0', user_occ='', bio='', user_intrest='', user_mailok=1, lastip='217.226.189.253', lasthit=1082583069, punkte=9, allips=[20.04.2004 21:06] 217.226.189.253 WHERE uid=2
schön und gut eigentlich, allips=[20.04.2004 21:06]217.226.189.254 wird doch übertragen......aber in der datenbank steht nichts..was soll ich machen  |
|
|
Nobse :
| 22.04.2004 09:38 |
allips='[20.04.2004 21:06]217.226.189.254'
als was hast du das feld in der Datenbank deklariert? |
|
|
Wheeman :
| 22.04.2004 17:44 |
longblob, da es länger als 255 zeichen werden muss. |
|
|
Nobse :
| 22.04.2004 20:10 |
Dann schau doch mal in deine datenbank und editiere einen datensatz und schau dir an was da zu feld allips steht
nimm mal mediumtext |
|
|
Wheeman :
| 22.04.2004 21:09 |
glaub hab den fehler jetzt gefunden:
$this->initVar("allips", "textarea", 0, false);
das steht in meiner xoopsuser.php...hab aber keine ahnung wies richtig wär, bzw was das alles bedeutet. |
|
|
Nobse :
| 22.04.2004 22:34 |
Schick mir mal bitte alle geänderten Dateien aber bitte deine änderungen in kommentarzeilen und alle datenbank felder die du neu angelgt hast |
|
|
Wheeman :
| 22.04.2004 22:47 |
k, datei als anhang
hoffes reicht |
|
|
Nobse :
| 24.04.2004 21:26 |
Versuche mal die hier |
|
|