Von Profil zu Listenerstellungshack |
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
Welchen nun genau?
den?->
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
|
if($action=="character_edit") {
$result = $db->query_first("SELECT birthday FROM bb".$n."_characters WHERE userid='$wbbuserdata[userid]'");
if(isset($_POST['send'])) {
if(isset($_POST['cr_day'])) $cr_day = trim($_POST['cr_day']);
if(isset($_POST['cr_month'])) $cr_month = trim($_POST['cr_month']);
if(isset($_POST['cr_year'])) $cr_year = trim($_POST['cr_year']);
if($cr_day && $cr_month) $birthday=ifelse(strlen($cr_year)==4,$cr_year,ifelse(strlen($cr_year)==2,"19$cr_year","0000"))."-".ifelse($cr_month<10,"0$cr_month",$cr_month)."-".ifelse($cr_day<10,"0$cr_day",$cr_day);
else $birthday = "0000-00-00";
if($result) $db->query("UPDATE bb".$n."_characters SET birthday='".addslashes(htmlspecialchars_old($birthday))."' WHERE userid = '$wbbuserdata[userid]'");
else $db->query("INSERT INTO bb".$n."_characters (userid,birthday) VALUES ('".intval($wbbuserdata[userid])."','".addslashes(htmlspecialchars_old($birthday))."')");
header("Location: usercp.php?action=character_edit&sid=$session[hash]");
exit();
}
else {
$birthday=explode("-",$result['birthday']);
$cr_day = $birthday[2];
$cr_month = $birthday[1];
$cr_year = ifelse($birthday[0],$birthday[0],"");
}
for($i=1;$i<=31;$i++) $day_options.=makeoption($i,$i,$cr_day);
for($i=1;$i<=12;$i++) $month_options.=makeoption($i,getmonth($i),$cr_month);
eval("\$tpl->output(\"".$tpl->get("usercp_character_edit")."\");");
} |
|
|
|
26.01.14 18:19 |
Finden
Als Freund hinzufügen
|
|
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
Okay, passt alles wirklich suuuuuuper <3
soooo :3 jetzt wäre es schön, wenn eben an der Stelle in der temp das Alter des 'Charas' ausgespuckt werden könnte im Bezug auf ein voreingestelltes Jahr :3
ooooh gott ich bin dir so voll dankbar dass du dir hierfür so viel Zeit nimmst
|
|
26.01.14 18:27 |
Finden
Als Freund hinzufügen
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
Dazu musst du nur eine "Differenz" bilden.
Die schnellste Variante wäre das ganze Datum in einen Timestamp umzuwandeln.
Also mittels "mktime()".
Sollte so aussehen:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
|
if($action=="character_edit") {
$result = $db->query_first("SELECT birthday FROM bb".$n."_characters WHERE userid='$wbbuserdata[userid]'");
if(isset($_POST['send'])) {
if(isset($_POST['cr_day'])) $cr_day = trim($_POST['cr_day']);
if(isset($_POST['cr_month'])) $cr_month = trim($_POST['cr_month']);
if(isset($_POST['cr_year'])) $cr_year = trim($_POST['cr_year']);
if($cr_day && $cr_month) $birthday=ifelse(strlen($cr_year)==4,$cr_year,ifelse(strlen($cr_year)==2,"19$cr_year","0000"))."-".ifelse($cr_month<10,"0$cr_month",$cr_month)."-".ifelse($cr_day<10,"0$cr_day",$cr_day);
else $birthday = "0000-00-00";
if($result) $db->query("UPDATE bb".$n."_characters SET birthday='".addslashes(htmlspecialchars_old($birthday))."' WHERE userid = '$wbbuserdata[userid]'");
else $db->query("INSERT INTO bb".$n."_characters (userid,birthday) VALUES ('".intval($wbbuserdata[userid])."','".addslashes(htmlspecialchars_old($birthday))."')");
header("Location: usercp.php?action=character_edit&sid=$session[hash]");
exit();
}
else {
$birthday=explode("-",$result['birthday']);
$cr_day = $birthday[2];
$cr_month = $birthday[1];
$cr_year = ifelse($birthday[0],$birthday[0],"");
$currentdate = mktime(0,0,0,date('m'),date('j'),date('Y'));
$birthdaydate = mktime(0,0,0,$birthday[1],$birthday[2],$birthday[0]);
$age = intval(($currentdate-$birthdaydate)/(3600*24*365));
}
for($i=1;$i<=31;$i++) $day_options.=makeoption($i,$i,$cr_day);
for($i=1;$i<=12;$i++) $month_options.=makeoption($i,getmonth($i),$cr_month);
eval("\$tpl->output(\"".$tpl->get("usercp_character_edit")."\");");
} |
|
Mit "$age" im Template wird das Alter angezeigt.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Schrimm: 26.01.14 18:50.
|
|
26.01.14 18:47 |
Finden
Als Freund hinzufügen
|
|
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
statt dem m, j und Y natürlich das spieledatum eingeben nicht?
und einfügen muss ich das im php vermutlich hier:
php: |
1:
2:
3:
4:
5:
6:
|
else {
$birthday=explode("-",$result['birthday']);
$cr_day = $birthday[2];
$cr_month = $birthday[1];
$cr_year = ifelse($birthday[0],$birthday[0],"");
} |
|
also dass es dann final so aussieht:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
else {
$birthday=explode("-",$result['birthday']);
$cr_day = $birthday[2];
$cr_month = $birthday[1];
$cr_year = ifelse($birthday[0],$birthday[0],"");
$currentdate = mktime(0,0,0,date('m'),date('j'),date('Y'));
$birthdaydate = mktime(0,0,0,$birthday[1],$birthday[2],$birthday[0]);
$age = intval(($currentdate-$birthdaydate)/(3600*24*365));
} |
|
oder?
#Edit ich war dir zu schnell XDDD
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Raylan: 26.01.14 18:52.
|
|
26.01.14 18:51 |
Finden
Als Freund hinzufügen
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
Hallo,
Ich hab oben schon die "Vollversion" gepostet.
Was das "m", "j" und "Y" betrifft:
Wenn das Spieledatum sich vom "normalen Datum" unterscheidet, dann musst du es ersetzen.
Um die "Gleichheit" der Daten zu garantieren, aber mit führenden Nullen.
In dieser Form:
php: |
1:
|
$currentdate = mktime(0,0,0,Monat,Tag,Jahr); |
|
Monat 1 - 9 so eintragen: 01,02,03,04...
Tag 1 - 9 so eintragen: 01,02,03,04...
Ich würde aber eine Umrechnung durchführen.
Beispiel:
Unterschied von "Heute" zum "Spieledatum" 4 Tage und 5 Jahre.
php: |
1:
|
$currentdate = mktime(0,0,0,date('m'),date('j'),date('Y')) - ((3600*24*365*5) + (3600*24*4)); |
|
edit:
Außer dein "Spieledatum" ist nicht "dynamisch" oder hat einen anderen Zeitablauf, als es in Wirklichkeit ist.
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Schrimm: 26.01.14 19:05.
|
|
26.01.14 18:55 |
Finden
Als Freund hinzufügen
|
|
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
hmmmm :/ ich hab das nu so eingefügt und bekomme ne fehlermeldung?
Zitat: |
Parse error: syntax error, unexpected '/', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/cwcity/hosting/u/m/umbrasolem/htdocs/wbblite/usercp.php(43) : eval()'d code on line 42 |
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
|
if($action=="character_edit") {
$result = $db->query_first("SELECT birthday FROM bb".$n."_characters WHERE userid='$wbbuserdata[userid]'");
if(isset($_POST['send'])) {
if(isset($_POST['cr_day'])) $cr_day = trim($_POST['cr_day']);
if(isset($_POST['cr_month'])) $cr_month = trim($_POST['cr_month']);
if(isset($_POST['cr_year'])) $cr_year = trim($_POST['cr_year']);
if($cr_day && $cr_month) $birthday=ifelse(strlen($cr_year)==4,$cr_year,ifelse(strlen($cr_year)==2,"19$cr_year","0000"))."-".ifelse($cr_month<10,"0$cr_month",$cr_month)."-".ifelse($cr_day<10,"0$cr_day",$cr_day);
else $birthday = "0000-00-00";
if($result) $db->query("UPDATE bb".$n."_characters SET birthday='".addslashes(htmlspecialchars_old($birthday))."' WHERE userid = '$wbbuserdata[userid]'");
else $db->query("INSERT INTO bb".$n."_characters (userid,birthday) VALUES ('".intval($wbbuserdata[userid])."','".addslashes(htmlspecialchars_old($birthday))."')");
header("Location: usercp.php?action=character_edit&sid=$session[hash]");
exit();
}
else {
$birthday=explode("-",$result['birthday']);
$cr_day = $birthday[2];
$cr_month = $birthday[1];
$cr_year = ifelse($birthday[0],$birthday[0],"");
$currentdate = mktime(0,0,0,08,15,2025);
$birthdaydate = mktime(0,0,0,$birthday[1],$birthday[2],$birthday[0]);
$age = intval(($currentdate-$birthdaydate)/(3600*24*365));
}
for($i=1;$i<=31;$i++) $day_options.=makeoption($i,$i,$cr_day);
for($i=1;$i<=12;$i++) $month_options.=makeoption($i,getmonth($i),$cr_month);
eval("\$tpl->output(\"".$tpl->get("usercp_character_edit")."\");");
} |
|
Dateianhang: |
usercp.php (36 KB, 0 mal heruntergeladen)
|
|
|
26.01.14 19:09 |
Finden
Als Freund hinzufügen
|
|
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
Hab sie dir einfach mal angehängt
|
|
26.01.14 19:19 |
Finden
Als Freund hinzufügen
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
Dazu müsstest du genau beschreiben, wie dies aussehen soll bzw. funktionieren soll, damit man da auch "vernünftig" arbeiten kann.
|
|
26.01.14 19:29 |
Finden
Als Freund hinzufügen
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
Wieder "ganz" einfach, nur benötigen wir dazu nun eine eigene "php"-Datei samt Templates.
Das wäre die Grundstruktur:
php: |
1:
2:
3:
4:
5:
6:
7:
|
<?php
$filename="characters.php";
require("./global.php");
eval("\$tpl->output(\"".$tpl->get("characters")."\");");
?> |
|
Somit brauchst du eine "characters.tpl", die deinen Aufbau der Seite beschreibt.
Weiter gehts mit dem Auslesen der Daten:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
<?php
$filename="characters.php";
require("./global.php");
$charactersbit='';
$result = $db->query("SELECT birthday FROM bb".$n."_characters ORDER BY birthday ASC");
while($characters = $db->fetch_array($result)) {
$birthday=explode("-",$characters['birthday']);
$currentdate = mktime(0,0,0,08,15,2025);
$birthdaydate = mktime(0,0,0,$birthday[1],$birthday[2],$birthday[0]);
$age = intval(($currentdate-$birthdaydate)/(3600*24*365));
eval ("\$charactersbit .= \" ".$tpl->get("characters_charactersbit")."\";");
}
eval("\$tpl->output(\"".$tpl->get("characters")."\");");
?> |
|
Diese benötigt nun eine "characters_charactersbit.tpl", die den Aufbau des Datensatzes(Der Charaktere) beschreibt, der in die Seite eingefügt wird.
Wichtig ist, dass du die Variable "$charactersbit" auch in deiner "characters.tpl" hast.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Schrimm: 26.01.14 19:50.
|
|
26.01.14 19:49 |
Finden
Als Freund hinzufügen
|
|
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
Okay.... gehen wir ganz langsam vor
dieser aufbau macht sinn. allerdings muss ich ja dann den aufbau der daten so wie ich sie haben will shcon in meiner charactersbit.tpl festlegen?
und da liegt mein problem, was genau leg ich nun fest..... :/ also die variablen ich will ja erst das datum, dann den Namen und das so geordnet :3
|
|
26.01.14 19:56 |
Finden
Als Freund hinzufügen
|
|
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
aber ich kann die nun nicht so sortieren wie in dem beispiel dass ich dir gezeigt habe, also grundsätzlich nach monaten und mit dem Charanamen dazu?
|
|
26.01.14 20:10 |
Finden
Als Freund hinzufügen
|
|
Raylan
Mitglied
Dabei seit: 02.06.13
Beiträge: 63
Fähigkeiten: WBB Lite 1 Anfänger Forenversion: Lite 1.0
Themenstarter
|
|
Entschuldige XD ich bin nu einfach verwirrt. ich muss doch nun in den Templates festlegen was angezeigt wird, nicht?
ich will das so haben:
Datum | User | Alter
$birthday[2].$birthday[1].$birthday[0] | ??? | $age
Aber jetzt hab ich das ja noch lange nicht in so einer schönen Tabelle?^^° *steht vermutlich gerade vollends auf dem schlauch^^*
|
|
26.01.14 20:15 |
Finden
Als Freund hinzufügen
|
|
|