anpera.net https://anpera.dyndns.org/phpbb3/ |
|
user.php - Behebung des Fehlers mit der Sortfunktion. https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=3777 |
Seite 1 von 1 |
Autor: | adminator [ Fr 06 Jul, 2007 09:46 ] |
Betreff des Beitrags: | user.php - Behebung des Fehlers mit der Sortfunktion. |
Ich habe bei mir die Userliste in der Admingrotte ein wenig umgemoddet, weil mir auffiel das die Sortfuntion in jener garnicht so recht funktionierte: Es passierte nix, was schade aber nicht tragisch war (der Rest ging ja). Weiß nicht mehr woher ich die hatte oder ob es meine Schusseligkeit war oder aber der Fehler überall drinsteckt (Testet einfach mal die Überschriftenlinks über der Liste z.B. IP, Name etc. ob die Liste sortiert wird). Da die Fummelei relativ groß war, poste ich hier den ganzen Teil der dafür zuständig ist, wenn ich was vergessen habe dann Bescheid sagen, denn kommt die ganze Datei. Macht euch ne Sicherheitskopie! Ich weiß nicht, ob diese user.php fürchterlich original ist, da ich anfangs recht viel und wahllos umgebaut habe. Eine Feinheit noch: Ich habe einige Buttons für unterschiedliche SU Level eingerichtet, wenn ihr die nicht habt dann sucht oder ändert: [php] if ($session[user][superuser]>=5){ output("[<a href='user.php?op=edit&userid=$row[acctid]'>Edit</a>|". "<a href='user.php?op=del&userid=$row[acctid]' onClick=\"return confirm('Willst du diesen User wirklich löschen?');\">Del</a>|". "<a href='user.php?op=setupban&userid=$row[acctid]'>Ban</a>|". "<a href='user.php?op=debuglog&userid=$row[acctid]'>Log</a>]",true); }elseif ($session[user][superuser]>=4){ output("[<a href='user.php?op=edit&userid=$row[acctid]'>Edit</a>|". "`7Del`0|". "`7Ban`0|". "<a href='user.php?op=debuglog&userid=$row[acctid]'>Log</a>]",true); }elseif ($session[user][superuser]>=3){ output("[`7Edit`0|". "`7Del`0|". "`7Ban`0|". "<a href='user.php?op=debuglog&userid=$row[acctid]'>Log</a>]",true); } if ($session[user][superuser]>=4) addnav("","user.php?op=edit&userid=$row[acctid]"); if ($session[user][superuser]>=5) addnav("","user.php?op=del&userid=$row[acctid]"); if ($session[user][superuser]>=5) addnav("","user.php?op=setupban&userid=$row[acctid]"); if ($session[user][superuser]>=3) addnav("","user.php?op=debuglog&userid=$row[acctid]"); [/php] und ersetzt ggf. mit: [php] output("[<a href='user.php?op=edit&userid=$row[acctid]'>Edit</a>|". "<a href='user.php?op=del&userid=$row[acctid]' onClick=\"return confirm('Willst du diesen User wirklich löschen?');\">Del</a>|". "<a href='user.php?op=setupban&userid=$row[acctid]'>Ban</a>|". "<a href='user.php?op=debuglog&userid=$row[acctid]'>Log</a>]",true); addnav("","user.php?op=edit&userid=$row[acctid]"); addnav("","user.php?op=del&userid=$row[acctid]"); addnav("","user.php?op=setupban&userid=$row[acctid]"); addnav("","user.php?op=debuglog&userid=$row[acctid]"); [/php] Admins: Bitte in Mods hochladen und mir evtl. auch mal die Rechte geben: sucht also: [php] }elseif ($_GET[op]=="search"){ addnav("N?Neue Suche","user.php?op="); [/php] ..... bis: [php] ?> [/php] und ERSETZT alles mit: [php] }elseif ($_GET[op]=="search"){ addnav("N?Neue Suche","user.php?op="); $sql = "SELECT acctid FROM accounts WHERE "; $where=" login LIKE '%{$_POST['q']}%' OR acctid LIKE '%{$_POST['q']}%' OR name LIKE '%{$_POST['q']}%' OR emailaddress LIKE '%{$_POST['q']}%' OR lastip LIKE '%{$_POST['q']}%' OR uniqueid LIKE '%{$_POST['q']}%' OR gentimecount LIKE '%{$_POST['q']}%' OR level LIKE '%{$_POST['q']}%'"; $result = db_query($sql.$where); if (db_num_rows($result)<=0){ output("`\$Keine Ergebnisse gefunden`0"); $_GET[op]=""; $where=""; }elseif (db_num_rows($result)>100){ output("`\$Zu viele Ergebnisse gefunden. Bitte Suche einengen.`0"); $_GET[op]=""; $where=""; }elseif (db_num_rows($result)==1){ //$row = db_fetch_assoc($result); //redirect("user.php?op=edit&userid=$row[acctid]"); $_GET[op]="search"; $_GET['page']=0; }else{ $_GET[op]="search"; $_GET['page']=0; } if (isset($_GET['page'])){ $order = "acctid"; if ($_GET[sort]!="") $order = $_GET[sort]; $offset=(int)$_GET['page']*100; $sql = "SELECT acctid,login,name,level,laston,gentimecount,lastip,uniqueid,emailaddress FROM accounts ".($where>""?"WHERE $where ":"")."ORDER BY \"$order\" LIMIT $offset,100"; $result = db_query($sql) or die(db_error(LINK)); output("<table>",true); output("<tr> <td>Ops</td> <td><a href='user.php?op=search&sort=login'>Login</a></td> <td><a href='user.php?op=search&sort=name'>Name</a></td> <td><a href='user.php?op=search&sort=level'>Lev</a></td> <td><a href='user.php?op=search&sort=laston'>Zuletzt da</a></td> <td><a href='user.php?op=search&sort=gentimecount'>Treffer</a></td> <td><a href='user.php?op=search&sort=lastip'>IP</a></td> <td><a href='user.php?op=search&sort=uniqueid'>ID</a></td> <td><a href='user.php?op=search&sort=emailaddress'>E-Mail</a></td> </tr>",true); addnav("","user.php?op=search&sort=login"); addnav("","user.php?op=search&sort=name"); addnav("","user.php?op=search&sort=level"); addnav("","user.php?op=search&sort=laston"); addnav("","user.php?op=search&sort=gentimecount"); addnav("","user.php?op=search&sort=lastip"); addnav("","user.php?op=search&sort=uniqueid"); $rn=0; for ($i=0;$i<db_num_rows($result);$i++){ $row=db_fetch_assoc($result); $laston=round((strtotime(date("c"))-strtotime($row[laston])) / 86400,0)." Tage"; if (substr($laston,0,2)=="1 ") $laston="1 Tag"; if (date("Y-m-d",strtotime($row[laston])) == date("Y-m-d")) $laston="Heute"; if (date("Y-m-d",strtotime($row[laston])) == date("Y-m-d",strtotime(date("c")."-1 day"))) $laston="Gestern"; if ($loggedin) $laston="Jetzt"; $row[laston]=$laston; if ($row[$order]!=$oorder) $rn++; $oorder = $row[$order]; output("<tr class='".($rn%2?"trlight":"trdark")."'>",true); output("<td>",true); if ($session[user][superuser]>=5){ output("[<a href='user.php?op=edit&userid=$row[acctid]'>Edit</a>|". "<a href='user.php?op=del&userid=$row[acctid]' onClick=\"return confirm('Willst du diesen User wirklich löschen?');\">Del</a>|". "<a href='user.php?op=setupban&userid=$row[acctid]'>Ban</a>|". "<a href='user.php?op=debuglog&userid=$row[acctid]'>Log</a>]",true); }elseif ($session[user][superuser]>=4){ output("[<a href='user.php?op=edit&userid=$row[acctid]'>Edit</a>|". "`7Del`0|". "`7Ban`0|". "<a href='user.php?op=debuglog&userid=$row[acctid]'>Log</a>]",true); }elseif ($session[user][superuser]>=3){ output("[`7Edit`0|". "`7Del`0|". "`7Ban`0|". "<a href='user.php?op=debuglog&userid=$row[acctid]'>Log</a>]",true); } if ($session[user][superuser]>=4) addnav("","user.php?op=edit&userid=$row[acctid]"); if ($session[user][superuser]>=5) addnav("","user.php?op=del&userid=$row[acctid]"); if ($session[user][superuser]>=5) addnav("","user.php?op=setupban&userid=$row[acctid]"); if ($session[user][superuser]>=3) addnav("","user.php?op=debuglog&userid=$row[acctid]"); output("</td><td>",true); output($row[login]); output("</td><td>",true); output($row[name]); output("</td><td>",true); output($row[level]); output("</td><td>",true); output($row[laston]); output("</td><td>",true); output($row[gentimecount]); output("</td><td>",true); output($row[lastip]); output("</td><td>",true); output($row[uniqueid]); output("</td><td>",true); output($row[emailaddress]); output("</td>",true); $gentimecount+=$row[gentimecount]; $gentime+=$row[gentime]; output("</tr>",true); } output("</table>",true); output("Treffer gesamt: $gentimecount`n"); output("CPU-Zeit gesamt: ".round($gentime,3)."s`n"); output("Durchschnittszeit für Seitenerzeugung: ".round($gentime/max($gentimecount,1),4)."s`n"); } } page_footer(); ?> [/php] Ich hoffe das war der Code, ist schon ein paar Tage her ... aber ich hab viel um die Ohrn. LG Uwe |
Autor: | Bill Tür [ Mo 09 Jul, 2007 11:58 ] |
Betreff des Beitrags: | |
afaik arbeitet die Sortierung in der user.php zeitverzögert. Also erst Klick auf "xy", dann Klick auf Seite1 und es wird nach "xy" sortiert. aber wirklich taugen tut das nicht, das is schon richtig. Von daher, gute Sache, werd ich wohl bei Gelegenheit ma einbaun. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |