DB speichert INT-Werte nur bis 10 und fängt neu an zu zaehlen... |
Sheeky
Mitglied
Dabei seit: 27.10.12
Beiträge: 5
|
|
Hallo Forum!
Forens.: WBBlite 1.0.2
Ich habe mal eine Frage zu einem kleinen Mini-Code, den ich geschrieben habbe. Da ich kein 'Kiss-Hack' o.V. mehr gefunden habe und ohnehin einen wollte, der sofort '+1' zaehlt, wenn man im Profil auf 'Kissen' klickt, habe ich eben selber einen geschrieben.
Die PHP Datei sieht so aus:
<?php
$filename="kiss.php";
require("./global.php");
if(!$wbbuserdata['userid']) access_error();
$action=$_REQUEST['action'];
$userid=$_REQUEST['userid'];
if($wbbuserdata['userid'] == "$userid"){
$error_msg="Sie können sich nicht selbst küssen.";
eval("\$tpl->output(\"".$tpl->get("error")."\");");
exit();
}
$kiss=$db->query_first("SELECT * FROM bb".$n."_users WHERE userid='".$userid."'");
$kiss=$kiss['user_kiss'];
if($action == "send"){
$kiss=$kiss['user_kiss']+1;
$db->query("UPDATE bb".$n."_users SET user_kiss='$kiss' WHERE userid='".$userid."'");
$url = "../profile.php?userid=$userid";
header("Location: " . $url);
}
else
{
$error_msg="Es ist ein Fehler aufgetreten. Bitte wende dich an einen Administrator.";
eval("\$tpl->output(\"".$tpl->get("error")."\");");
exit();
}
?>
Mein Problem: Soweit funktioniert alles. Nur wenn ein User nun 10 Kiss erhalten hat und dann noch einmal geküsst wird, faengt die Datenbank wieder von 1 an zu zaehlen.
Die Spalte ist in der Datenbank normal unter bb*_users angelegt, wie z.B. andere Funktionen auch, die augenscheinlich genauso funktionieren und auch gehen. (Typ: INT, Standard: 0)
Vll. kann mir dabei ja wer helfen!
|
|
02.11.12 17:49 |
E-Mail
Finden
Als Freund hinzufügen
|
|
Beckebans
Alternativ Mitglied
Dabei seit: 10.07.05
Beiträge: 481
Fähigkeiten: WBB Lite 1 Fortgeschritten Herkunft: Paderborn Forenversion: Lite 1.0
|
|
Ich würde noch dieses:
php: |
1:
|
if($kiss_max_db['user_kiss_max'] == 0) { |
|
durch dies ersetzen:
php: |
1:
|
if($kiss_max_db['user_kiss_max'] <= 0) { |
|
und dieses:
php: |
1:
|
$kiss_max=$kiss_max_db['user_kiss_max']-1; |
|
durch dies ersetzen:
php: |
1:
2:
|
if($kiss_max_db['user_kiss_max'] >= 1) $kiss_max=$kiss_max_db['user_kiss_max']-1;
else $kiss_max=0; |
|
Als Cronjob kannste mal dies testen, das sollte reichen:
php: |
1:
2:
3:
4:
5:
6:
7:
|
<?php
$filename="kiss_cronjob.php";
require("./global.php");
$db->query("UPDATE bb".$n."_users SET user_kiss_max='100'");
?> |
|
Allerdings setzt die Datei den Wert bei jedem Aufruf auf 100 zurück. Die musste noch irgendwo hinpacken (und Pfad zur global.php anpassen), dass die keiner zufällig findet und aufruft.
__________________ Meine Hacks:
- Userpage
- Geburtstagsliste
- Beitrag bedanken
- User verlinken
- PHP-Fehler anzeigen
- Umfragedauer
- Neue Beiträge während Eigenem
- Gruppenspezifische Mitgliederliste
- und weitere...
|
|
02.11.12 21:46 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
Sheeky
Mitglied
Dabei seit: 27.10.12
Beiträge: 5
Themenstarter
|
|
Uh. Sehr schoen! Funktioniert super. Sowohl der Code, als auch mein Cronjob. - Hab die Datei einfach etwas kryptischer genannt.
Dankeee.
|
|
02.11.12 22:06 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|