Event-Handler in PHP5

Hinweis vorab: Nein, in PHP gibt es kein „klick“ oder „mouseover“.
Sowas gehört zu JavaScript und somit zum Client (Browser).
Folgender Beitrag erklärt die Verwendung von eigenen Events die nur auf dem Server ausgeführt werden. Wer sich also erhofft hat auf dem Server irgendwie auf einen „klick“ zu reagieren ist hier falsch.

Jeder gute PHP-Programmierer kennt das Problem:

„Wie kann ich meine Applikationen dynamisch erweitern ohne am Quelltext des eigentlichen Programmes etwas zu ändern?“

Klar könnte man zu jedem Plugin eine Anleitung erstellen in der erklärt wird wo man welchen Code einfügen muss, doch nicht jeder kann PHP und für Kunden, welche sich dann für ein solches Plugin extra einen Programmierer besorgen müssten, macht das ganze keinen Sinn.
Event-Handler in PHP5 weiterlesen

VB bugfixing und Sechsämtertropfen

Joa heute morgen hab ich mal ein paar fixe in der BBCODE_CLASS.PHP gemacht, allerdings ist mir dort ein kleiner Fehler unterlaufen, der dazu führt das die Schriftgrößen nicht mehr gingen. Problem war ein Leerzeichen zwischen der ziffer und px. wurde aber gleich behoben.

ein weiterer Bug der bis jetzt noch nicht offiziell bekannt ist und bei uns gefixt wurde ist in der /include/cron/activation.php
dort befindet sich ein REPLACE INTO der fehlerhaft ist, komischerweise ist nie ein Fehler aufgetreten bis vor wenigen Tagen.
eine kleine ,0 angehängt behebt das ganze. Es fehlte einfach ein value für die letzte spalte.

Die Tage hab ich auch wieder ein paar Altlasten (gelöschte Posts) bereinigt (ca. 30k) und eine kleine Tabellen-Reinigung durchgeführt.
Alle Sechs Ämter sind durchlaufen, auf die Kälte nen Tropfen Frostschutz, ein schönen Samstag Nachmittag!

Keygen-GYSN decoden

Mir war grad fad, und ich hab zufällig „vBulletin.v3.6.8.UPDATED.GERMAN.PHP.NULLIFIED.Incl.Keygen-GYSN“ gefunden und dachte mir… hm der keygen ist doch unnutz? nja mal reingeschaut… bischen base64 und so. nja war aber nichts intressantes drin, den decoder post ich euch mal:

function gsb($str)
{
while (preg_match("|gzinflate\(str_rot13\(base64_decode|Usim",$str))
{
$str = str_replace("?><? eval(gzinflate(str_rot13(base64_decode('","",$str);
$str = str_replace("')) )); ?><?","",$str);
$str = gzinflate(str_rot13(base64_decode($str)));
}return $str;
}

function gb($str)
{
while (preg_match("|gzinflate(base64_decode|Usim",$str))
{
$str = str_replace("?><? eval(gzinflate(base64_decode('","",$str);
$str = str_replace("'))); ?><?","",$str);
$str = gzinflate(base64_decode($str));
}return $str;
}

for($x=1;$x<20;$x++)
{
$str = gsb($str);
$str = gb($str);
}
echo $str;

So jetzt wirds zeit fürs mittagessen, fische füttern, vögel füttern und mich füllen :D

DELETE oldpost JOIN putzwahn

Ja es ging gleich weiter, hab jetzt ca 15k soft-deleted Beiträge die schon etwas älter sind aus der DB gefegt, der Putzwahn nimmt kein ende *g*. Das erklärt auch die gelegentlichen „offline modes“ im Forum :D Allerdings hätte ich da doch paar mehr killen können. und das nächste mal mit LIMITS arbeiten damit er nicht wieder 130 Sekunden Tables Lookt. naaa aber etz ist erstmal schluss, morgen früh muss ich die vb1_post noch von den 200mb überhang befreien, da läuft die Optimierung sicher auch wieder gute 15 minuten.

Gelöschte Zeilen: 27642 (die Abfrage dauerte 122.4789 sek.)

DELETE d.*,p.* FROM vb1_deletionlog AS d
JOIN vb1_post AS p ON (d.primaryid = p.postid)
WHERE d.type='post' AND d.dateline<'1182006660' AND p.visible='2'

no LEFT JOIN and LIMIT on UPDATE

Gerade kleines Update gefahrn und die Anouncen sowie Stickys von Crack auf mich geschrieben, beim UPDATE auf 2 Tabellen vb1_post und vb1_thread hatte ich allerdings kleines problem festgestellt, dort ist kein LIMIT möglich und auch kein LEFT JOIN. Die Lösung hat sich allerdings dann doch noch gefunden:

UPDATE vb1_thread AS t JOIN vb1_post AS p
ON (t.firstpostid = p.postid)
SET p.userid='1', p.username='raid-rush', t.postuserid='1', t.postusername='raid-rush'
WHERE t.sticky='1' AND t.postuserid='12'

So mal sehn was ASSO aufm vierten noch so treibt ;D