Ik ben momenteel bezig met het maken van een scriptje waarmee je gebruikers kunt bannen, voor een niet nader te noemen populair PHP/MySQL forumpakket. Nu wil ik ook IP adressen kunnen bannen en die worden door de forumsoftware op twee plaatsen opgeslagen:
1) In de tabel 'setting' in een veld banip;
2) In de tabel 'datastore', waar een geserializede versie van alle rijen uit 'setting' te vinden is.
Die laatste is het probleem. Ik kan het IP makkelijk toevoegen aan de banlijst:
Maar dan werkt het natuurlijk nog niet, omdat de forumsoftware zijn informatie in eerste instantie uit de datastore-tabel haalt en die is nog niet geüpdatet. De datastore is in feite een geserializede array met daarin alle opties zoals die in de setting-tabel staan. De setting-tabel heeft verschillende kolommen, waarvan ik "varname" en "value" moet hebben en al die rijen wil ik in een array proppen zodat ik uiteindelijk zoiets krijg (tussen blokhaken staat dus varname en dat is de index voor value):
(maar dan veel langer natuurlijk) zodat ik dat door serialize() kan halen en in de datastore-tabel kan proppen. Mijn probleem is echter: hoe krijg ik zo'n mooie array? Ik kan d.m.v. deze code alles wel uitlezen:
Maar ja, daar heb ik niet zoveel aan. Het moet een array worden.
Iemand die uitkomst kan bieden?
1) In de tabel 'setting' in een veld banip;
2) In de tabel 'datastore', waar een geserializede versie van alle rijen uit 'setting' te vinden is.
Die laatste is het probleem. Ik kan het IP makkelijk toevoegen aan de banlijst:
PHP:
1
2
| $banlist = mysql_fetch_array(mysql_query("SELECT value FROM setting WHERE varname = 'banip'")); $addban = "$ipaddress"." ".$banlist[value]; |
Maar dan werkt het natuurlijk nog niet, omdat de forumsoftware zijn informatie in eerste instantie uit de datastore-tabel haalt en die is nog niet geüpdatet. De datastore is in feite een geserializede array met daarin alle opties zoals die in de setting-tabel staan. De setting-tabel heeft verschillende kolommen, waarvan ik "varname" en "value" moet hebben en al die rijen wil ik in een array proppen zodat ik uiteindelijk zoiets krijg (tussen blokhaken staat dus varname en dat is de index voor value):
PHP:
1
| Array ( [forumhome] => index [ratefunc] => none [ratescore] => 0.5 [viewfunc] => none [viewscore] => 0.01 |
(maar dan veel langer natuurlijk) zodat ik dat door serialize() kan halen en in de datastore-tabel kan proppen. Mijn probleem is echter: hoe krijg ik zo'n mooie array? Ik kan d.m.v. deze code alles wel uitlezen:
PHP:
1
2
3
4
5
6
7
| $settingq = mysql_query("SELECT varname, value FROM setting"); while ($setting = mysql_fetch_array($settingq)) { echo $setting['varname']; echo $setting['value']; } |
Maar ja, daar heb ik niet zoveel aan. Het moet een array worden.
Iemand die uitkomst kan bieden?
[ Voor 5% gewijzigd door NNF op 13-11-2007 10:52 ]