|
|
Latest News |
Latest Threads |
|
|
55.289 Posts & 4.945 Themen in 78 Foren |
|
|
|
|
Forensuche |
|
Suchbegriff |
Benutzerauswahl |
Ergebnisse anzeigen |
|
|
Gästebuch Spam löschen 28 Beiträge in diesem Thema |
|
|
|
|
|
21.08.2017 - 19:07 Uhr |
|
|
|
Moin moin,
im Gästebuch haben sich 2.450 Seiten mit ca. 48.980 Einträgen Spam angesammelt - puh Ich habe die Spamschutzeinstellungen schon etwas optimiert - hoffe ich zumindest. ^^ Allerdings sind nicht alle Einträge Spam. Gibt es eine Möglichkeit die Beitäge anders als einzeln zu löschen? Zum Beispiel so wie im Scrrenshot im Anhang über "Alle Threads markieren"?
Greetz, mono
|
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von mono - 21.08.2017 - 19:11 Uhr |
|
|
|
|
|
|
|
|
|
|
23.08.2017 - 18:53 Uhr |
|
|
|
Nabend,
hatte erst geguckt, ob schon irgendetwas in dieser Richtung existiert. Hatte bei den üblichen Verdächtigen geguckt - sah aber nicht gut aus.
Hab dann mal kurzerhand ein kleines Script mit ein paar Filter-Optionen geschrieben. Das sollte ganz gut helfen
Ich werd wie üblich den kompletten Code hier im Post einmal posten, und der Einfachheit als Anhang mit Bildern etc. setzen.
Bilder
Änderungen Bevor der eigentliche Code für das Script kommt müssen zwei Dateien bearbeitet werden:
Vorhandene Dateien bearbeiten- pkinc/lang/de/admin.php
- Öffne o.g. Datei und suche das:
| PHP-Quelltext return array( | |
Und füge darunter das ein:
| PHP-Quelltext # GBookMultiDelete - Start
'gbook' => 'Gästebuch',
# GBookMultiDelete - End | |
- pkinc/cfg/adminnavigation.php
- Öffne o.g. Datei und suche das:
| PHP-Quelltext 'comments' => array(
'id' => 'comments',
'pid' => 'misc',
'sorting' => 1,
'lkey' => 'comments',
'lscope' => '',
'target' => '',
'lnkpath' => 'comment',
'lnkmode' => '',
'lnkadd' => '',
'permission' => '',
), | |
Und füge darunter das ein:
| PHP-Quelltext # GBookMultiDelete - Start
'gbook' => array(
'id' => 'gbook',
'pid' => 'misc',
'sorting' => 8,
'lkey' => 'gbook',
'lscope' => '',
'target' => '',
'lnkpath' => 'gbook',
'lnkmode' => '',
'lnkadd' => '',
'permission' => '',
),
# GBookMultiDelete - End | |
Script Jetzt kommt das eigentliche Script:
Das eigentliche Script- pkinc/admintpl/gbook.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | | Quellcode <script language="Javascript" src="fx/main.js"></script>
<form name="myform" method="post" action="?path=gbook">
<table class="standard" cellspacing="1" cellpadding="4" width="100%">
<tr>
<td class="heads">$lang[gbook]</td>
</tr>
</table>
<br />
<table cellspacing="1" cellpadding="4" width="100%">
<tr>
<td width="25%" valign="top">
<table class="standard" cellspacing="1" cellpadding="4" width="100%">
<tr>
<td class="heads">Filter</td>
</tr>
<tr>
<td class="standard">
Einträge pro Seite:
<br />
<input type="text" name="pEPP" value="$pEPP" size="4" /><span style="color: red;">$eEPP</span>
</td>
</tr>
<tr>
<td class="standard">
nach IP filtern:
<br />
<select name="pIP[]" size="5" class="w90" multiple>
<option value="NoSelect">keine Auswahl</option>
$fmIPTpl
</select>
</td>
</tr>
<tr>
<td class="standard">
nach Usern filtern:
<br />
<select name="pUserID[]" size="5" class="w90" multiple>
<option value="NoSelect">keine Auswahl</option>
$fmUserIDTpl
</select>
</td>
</tr>
<tr>
<td class="standard">
nach Zeitraum filtern:
<br />
<table cellspacing="1" cellpadding="4">
<tr>
<td></td>
<td>Jahr</td>
<td>Monat</td>
<td>Tag</td>
</tr>
<tr>
<td>Start:</td>
<td><input type="text" name="pTimeSY" value="$pTimeSY" size="4" /><span style="color: red;">$eTimeSY</span></td>
<td><input type="text" name="pTimeSM" value="$pTimeSM" size="2" /><span style="color: red;">$eTimeSM</span></td>
<td><input type="text" name="pTimeSD" value="$pTimeSD" size="2" /><span style="color: red;">$eTimeSD</span></td>
</tr>
<tr>
<td>Ende:</td>
<td><input type="text" name="pTimeEY" value="$pTimeEY" size="4" /><span style="color: red;">$eTimeEY</span></td>
<td><input type="text" name="pTimeEM" value="$pTimeEM" size="2" /><span style="color: red;">$eTimeEM</span></td>
<td><input type="text" name="pTimeED" value="$pTimeED" size="2" /><span style="color: red;">$eTimeED</span></td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="heads" align="center">
<input type="submit" name="pSubmitFilter" value="Filter anwenden" />
<input type="submit" name="pSubmitReset" value="Filter reseten" />
</td>
</tr>
</table>
<font class="small">* Ausgewählte Einträge werden samt zugehörigen Kommentaren ohne eine weitere Sicherheitsabfrage gelöscht!</font>
</td>
<td width="75%" valign="top">
<table class="standard" cellspacing="1" cellpadding="4" width="100%">
<tr>
<td class="standard">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td>
<input class="checkbox" type="checkbox" onClick="checkall(this.checked,'pGBookID')" />
<input type="submit" name="pSubmitDelete" value="$lang[delete]*" class="highlight" />
</td>
<td align="right">
<font class="small">$PageLink</font>
</td>
</tr>
</table>
</td>
</tr>
$gbook_row
<tr>
<td class="standard">
<table cellspacing="0" cellpadding="0" width="100%">
<tr>
<td>
<input class="checkbox" type="checkbox" onClick="checkall(this.checked,'pGBookID')" />
<input type="submit" name="pSubmitDelete" value="$lang[delete]*" class="highlight" />
</td>
<td align="right">
<font class="small">$PageLink</font>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form> | | |
- pkinc/admintpl/gbook_filter_ip.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
| Quellcode <option value="$fmIPKey">$fmIPValue</option> | |
- pkinc/admintpl/gbook_filter_ip_select.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
| Quellcode <option value="$fmIPKey" selected="selected">$fmIPValue</option> | |
- pkinc/admintpl/gbook_filter_userid.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
| Quellcode <option value="$fmUserIDKey">$fmUserIDValue</option> | |
- pkinc/admintpl/gbook_filter_userid_select.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
| Quellcode <option value="$fmUserIDKey" selected="selected">$fmUserIDValue</option> | |
- pkinc/admintpl/gbook_row.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
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 33 34 | | Quellcode <tr>
<td class="$row" width="100%">
<table border="0" cellspacing="0" cellpadding="2" width="100%">
<tr>
<td rowspan="3" valign="top">
<input class="checkbox" type="checkbox" name="pGBookID[]" value="$gbID" />
</td>
<td width="100%">
<font class="small">
<b>Eintrag-ID: $gbID</b>
|
$gbTime
|
<b>IP:</b> $gbIP
|
Kommentare: $gbComments
|
geschrieben von: $gbAutor
</font>
</td>
</tr>
<tr>
<td colspan="2"><img border="0" height="1" width="100%" src="../images/black.gif" alt="" /></td>
</tr>
<tr>
<td colspan="2">
$gbText
<br />
<br />
</td>
</tr>
</table>
</td>
</tr> | |
- pkinc/admintpl/gbook_row_empty.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
| Quellcode <tr>
<td class="highlight" align="center" width="100%">
<br />
Es wurden keine Einträge gefunden.
<br />
<br />
</td>
</tr> | |
- pkinc/admintpl/gbook_row_user_link.htm
- Erstelle o.g. Datei ( vorhandene .htm-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
| Quellcode <a href="?path=useredit&editid=$gbUserID" target="_blank">$gbUserNick</a> | |
- pkinc/admin/gbook.php
- Erstelle o.g. Datei ( vorhandene .php-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 | | PHP-Quelltext <?PHP
If (!Defined('pkFRONTEND') || pkFRONTEND!='admin')
{
Die('Direct access to this location is not permitted.');
}
If(!AdminAccess('gbdelete'))
{
pkEvent('access_forbidden');
Return;
}
pkLoadClass($BBCODE,'bbcode');
$Entries
=
(
IsSet ($_GET['entries'])
&& Intval($_GET['entries']) > 0
)
? Intval($_GET['entries'])
: 0
;
$SQLCommand =Array();
# FILTER-OPTION - START
If (IsSet($_POST) && !Empty($_POST))
{
$pSubmitFilter =IsSet($_POST['pSubmitFilter']) ? TRUE : NULL;
$pSubmitReset =IsSet($_POST['pSubmitReset']) ? TRUE : NULL;
$pSubmitDelete =IsSet($_POST['pSubmitDelete']) ? TRUE : NULL;
If ($pSubmitReset===TRUE)
{
UnSet($_SESSION['GBOOK']);
pkHeaderLocation('gbook');
}
#--
If ($pSubmitFilter===TRUE)
{
# EPP - START
$_SESSION['GBOOK']['pEPP']
=
IsSet($_POST['pEPP'])
&& Trim ($_POST['pEPP'])!=''
? Trim ($_POST['pEPP'])
: NULL
;
# EPP - END
#--
# IP - START
$_SESSION['GBOOK']['pIP']
=
IsSet($_POST['pIP'])
? $_POST['pIP']
: NULL
;
# IP - END
#--
# USER - START
$_SESSION['GBOOK']['pUserID']
=
IsSet($_POST['pUserID'])
? $_POST['pUserID']
: NULL
;
# USER - END
#--
# TIME - START
# START
# [p]ostTime[S]tart[Y]ear
# [p]ostTime[S]tart[M]onth
# [p]ostTime[S]tart[D]ay
$_SESSION['GBOOK']['pTimeSY'] =IsSet($_POST['pTimeSY']) && Trim($_POST['pTimeSY'])!='' ? Trim($_POST['pTimeSY']) : NULL;
$_SESSION['GBOOK']['pTimeSM'] =IsSet($_POST['pTimeSM']) && Trim($_POST['pTimeSM'])!='' ? Trim($_POST['pTimeSM']) : NULL;
$_SESSION['GBOOK']['pTimeSD'] =IsSet($_POST['pTimeSD']) && Trim($_POST['pTimeSD'])!='' ? Trim($_POST['pTimeSD']) : NULL;
# END
# [p]ostTime[E]nd[Y]ear
# [p]ostTime[E]nd[M]onth
# [p]ostTime[E]nd[D]ay
$_SESSION['GBOOK']['pTimeEY'] =IsSet($_POST['pTimeEY']) && Trim($_POST['pTimeEY'])!='' ? Trim($_POST['pTimeEY']) : NULL;
$_SESSION['GBOOK']['pTimeEM'] =IsSet($_POST['pTimeEM']) && Trim($_POST['pTimeEM'])!='' ? Trim($_POST['pTimeEM']) : NULL;
$_SESSION['GBOOK']['pTimeED'] =IsSet($_POST['pTimeED']) && Trim($_POST['pTimeED'])!='' ? Trim($_POST['pTimeED']) : NULL;
# TIME - END
pkHeaderLocation('gbook');
}
#--
# DELETE ENTRIES - START
If ($pSubmitDelete===TRUE)
{
If (IsSet($_POST['pGBookID']) && Is_Array($_POST['pGBookID']) && Count($_POST['pGBookID']) > 0)
{
$rGBookID =NULL;
$qGBook =NULL;
$qComment =NULL;
ForEach ($_POST['pGBookID'] As $rGBookID)
{
If ($qGBook)
{
$qGBook.=' OR ';
}
If ($qComment)
{
$qComment.=' OR ';
}
$qGBook .="gbook_id='".Intval($rGBookID)."'";
$qComment .="comment_subid='".Intval($rGBookID)."'";
}
UnSet($rGBookID);
If ($qGBook!==NULL)
{
$SQLDeleteGBook =' WHERE '.$qGBook;
}
If ($qComment!==NULL)
{
$SQLDeleteComment =" WHERE comment_cat='gb' AND (".$qComment.")";
}
UnSet($qGBook);
UnSet($qComment);
$SQLDeleteGBook ="DELETE FROM ".pkSQLTAB_GUESTBOOK." ".$SQLDeleteGBook;
$SQLDeleteComment ="DELETE FROM ".pkSQLTAB_COMMENT." ".$SQLDeleteComment;
$SQL->query($SQLDeleteGBook);
$SQL->query($SQLDeleteComment);
pkHeaderLocation('gbook');
}
}
# DELETE ENTRIES - END
}
#--
# EPP - START
$pEPP
=
IsSet ($_SESSION['GBOOK']['pEPP'])
? $_SESSION['GBOOK']['pEPP']
: Intval($config['gbook_epp'])
;
If ($pEPP!==NULL)
{
$rEPP=Intval($pEPP);
$eEPP=NULL;
If (!Preg_Match('#^[0-9]+$#', $pEPP)) {$eEPP='Eingabe ungültig.';}
ElseIf (StrLen($pEPP) > 4) {$eEPP='Eingabe zu lang.';}
ElseIf (StrLen($pEPP) < 1) {$eEPP='Eingabe zu kurz.';}
}
# EPP - END
#--
# IP - START
$pIP
=
IsSet($_SESSION['GBOOK']['pIP'])
? $_SESSION['GBOOK']['pIP']
: NULL
;
If ($pIP!==NULL && Is_Array($pIP) && Count($pIP) > 0)
{
$pIPFlip=Array_Flip($pIP);
$rIPSQL =NULL;
$rIPRow =NULL;
ForEach ($pIP As $rIPRow)
{
If ($rIPRow=='NoSelect')
{
Continue;
}
If ($rIPRow=='none')
{
$rIPRow='';
}
If ($rIPSQL)
{
$rIPSQL.=' OR ';
}
$rIPSQL.="gbook_ip='".$rIPRow."'";
}
If ($rIPSQL!==NULL)
{
$SQLCommand[]='('.$rIPSQL.')';
}
UnSet($rIPRow);
UnSet($rIPSQL);
}
# IP - END
#--
# USER - START
$pUserID
=
IsSet($_SESSION['GBOOK']['pUserID'])
? $_SESSION['GBOOK']['pUserID']
: NULL
;
If ($pUserID!==NULL && Is_Array($pUserID) && Count($pUserID) > 0)
{
$pUserIDFlip =Array_Flip($pUserID);
$rUserIDSQL =NULL;
$rUserIDRow =NULL;
$rUserIDValue =NULL;
ForEach ($pUserID As $rUserIDRow)
{
If ($rUserIDRow=='NoSelect')
{
Continue;
}
If (Preg_Match('#^[0-9]+$#', $rUserIDRow) > 0)
{
$rUserIDValue=Intval($rUserIDRow);
}
If ($rUserIDSQL)
{
$rUserIDSQL.=' OR ';
}
If (!Preg_Match('#^[0-9]+$#', $rUserIDRow))
{
$rUserIDSQL.="gbook_autor='".$SQL->f($rUserIDRow)."'";
}
Else
{
$rUserIDSQL.="gbook_userid='".$rUserIDValue."'";
}
}
If ($rUserIDSQL!==NULL)
{
$SQLCommand[]='('.$rUserIDSQL.')';
}
UnSet($rUserIDValue);
UnSet($rUserIDRow);
UnSet($rUserIDSQL);
}
# USER - END
#--
# TIME - START
# START
$pTimeSY=IsSet($_SESSION['GBOOK']['pTimeSY']) ? $_SESSION['GBOOK']['pTimeSY'] : NULL;
$pTimeSM=IsSet($_SESSION['GBOOK']['pTimeSM']) ? $_SESSION['GBOOK']['pTimeSM'] : NULL;
$pTimeSD=IsSet($_SESSION['GBOOK']['pTimeSD']) ? $_SESSION['GBOOK']['pTimeSD'] : NULL;
# [r]awTime [..]
# [e]ventTime[..]
If ($pTimeSY!==NULL)
{
$rTimeSY=Intval($pTimeSY);
$eTimeSY=NULL;
If (!Preg_Match('#^[0-9]+$#', $pTimeSY)) {$eTimeSY='Eingabe ungültig.';}
ElseIf (StrLen($rTimeSY) > 4) {$eTimeSY='Eingabe zu lang.';}
ElseIf (StrLen($rTimeSY) < 1) {$eTimeSY='Eingabe zu kurz.';}
ElseIf ($rTimeSY < 1990 || $rTimeSY > 9999) {$eTimeSY='Eingabe kein Jahr.';}
}
If ($pTimeSM!==NULL)
{
$rTimeSM=Intval($pTimeSM);
$eTimeSM=NULL;
If (!Preg_Match('#^[0-9]+$#', $pTimeSM)) {$eTimeSM='Eingabe ungültig.';}
ElseIf (StrLen($rTimeSM) > 2) {$eTimeSM='Eingabe zu lang.';}
ElseIf (StrLen($rTimeSM) < 1) {$eTimeSM='Eingabe zu kurz.';}
ElseIf ($rTimeSM < 1 || $rTimeSM > 12) {$eTimeSM='Eingabe kein Monat.';}
}
If ($pTimeSD!==NULL)
{
$rTimeSD=Intval($pTimeSD);
$eTimeSD=NULL;
If (!Preg_Match('#^[0-9]+$#', $pTimeSD)) {$eTimeSD='Eingabe ungültig.';}
ElseIf (StrLen($rTimeSD) > 2) {$eTimeSD='Eingabe zu lang.';}
ElseIf (StrLen($rTimeSD) < 1) {$eTimeSD='Eingabe zu kurz.';}
ElseIf ($rTimeSD < 1 || $rTimeSD > 31) {$eTimeSD='Eingabe kein Tag.';}
}
$pTimeS
=
$eTimeSY===NULL
&& $eTimeSM===NULL
&& $eTimeSD===NULL
? pkMkTime(0,0,0,$rTimeSM,$rTimeSD,$rTimeSY)
: NULL
;
# START
# END
$pTimeEY=IsSet($_SESSION['GBOOK']['pTimeEY']) ? $_SESSION['GBOOK']['pTimeEY'] : NULL;
$pTimeEM=IsSet($_SESSION['GBOOK']['pTimeEM']) ? $_SESSION['GBOOK']['pTimeEM'] : NULL;
$pTimeED=IsSet($_SESSION['GBOOK']['pTimeED']) ? $_SESSION['GBOOK']['pTimeED'] : NULL;
# [r]awTime [..]
# [e]ventTime[..]
If ($pTimeEY!==NULL)
{
$rTimeEY=Intval($pTimeEY);
$eTimeEY=NULL;
If (!Preg_Match('#^[0-9]+$#', $pTimeEY)) {$eTimeSD='Eingabe ungültig.';}
ElseIf (StrLen($rTimeEY) > 4) {$eTimeEY='Eingabe zu lang.';}
ElseIf (StrLen($rTimeEY) < 1) {$eTimeEY='Eingabe zu kurz.';}
ElseIf ($rTimeEY < 1990 || $rTimeEY > 9999) {$eTimeEY='Eingabe kein Jahr.';}
}
If ($pTimeEM!==NULL)
{
$rTimeEM=Intval($pTimeEM);
$eTimeEM=NULL;
If (!Preg_Match('#^[0-9]+$#', $rTimeEM)) {$eTimeSD='Eingabe ungültig.';}
ElseIf (StrLen($rTimeEM) > 2) {$eTimeEM='Eingabe zu lang.';}
ElseIf (StrLen($rTimeEM) < 1) {$eTimeEM='Eingabe zu kurz.';}
ElseIf ($rTimeEM < 1 || $rTimeEM > 12) {$eTimeEM='Eingabe kein Monat.';}
}
If ($pTimeED!==NULL)
{
$rTimeED=Intval($pTimeED);
$eTimeED=NULL;
If (!Preg_Match('#^[0-9]+$#', $rTimeED)) {$eTimeSD='Eingabe ungültig.';}
ElseIf (StrLen($rTimeED) > 2) {$eTimeED='Eingabe zu lang.';}
ElseIf (StrLen($rTimeED) < 1) {$eTimeED='Eingabe zu kurz.';}
ElseIf ($rTimeED < 1 || $rTimeED > 31) {$eTimeED='Eingabe kein Tag.';}
}
$pTimeE
=
$eTimeEY===NULL
&& $eTimeEM===NULL
&& $eTimeED===NULL
? pkMkTime(0,0,0,$rTimeEM,$rTimeED,$rTimeEY)
: NULL
;
# END
If ($pTimeS > 0 && $pTimeE > 0)
{
$SQLCommand[]="(gbook_time BETWEEN '".$pTimeS."' AND '".$pTimeE."')";
}
ElseIf ($pTimeS > 0)
{
$SQLCommand[]="gbook_time='".$pTimeS."'";
}
ElseIf ($pTimeE > 0)
{
$SQLCommand[]="gbook_time='".$pTimeE."'";
}
# TIME - END
#--
# SQL-COMMAND - START
If (IsSet($SQLCommand) && Is_Array($SQLCommand) && Count($SQLCommand) > 0)
{
$Query =NULL;
$Command=NULL;
ForEach ($SQLCommand As $Command)
{
If ($Query)
{
$Query.=' AND ';
}
$Query.=$Command;
}
UnSet($Command);
If ($Query!==NULL)
{
$SQLCommand=' WHERE '.$Query;
}
UnSet($Query);
}
# SQL-COMMAND - END
# FILTER-OPTION - END
#--
# FILTER-MENU::IP - START
$fmIPKey =NULL;
$fmIPValue =NULL;
$fmIPSelect =NULL;
$fmIPData =NULL;
$fmIPQuery
=
$SQL->Query("
SELECT
DISTINCT
gbook_ip
FROM
".pkSQLTAB_GUESTBOOK."
ORDER BY
gbook_ip ASC
");
While($fmIPData=$SQL->Fetch_Array($fmIPQuery))
{
$fmIPKey =pkEntities($fmIPData['gbook_ip']);
$fmIPValue =$fmIPKey;
If (Trim($fmIPKey)=='')
{
$fmIPKey ='none';
$fmIPValue ='(ohne)';
}
$fmIPSelect
=
IsSet($pIPFlip[$fmIPKey])
? 'gbook_filter_ip_select'
: 'gbook_filter_ip'
;
Eval("\$fmIPTpl.= \"".pkTpl($fmIPSelect)."\";");
}
UnSet($pIPFlip);
UnSet($fmIPData);
UnSet($fmIPQuery);
UnSet($fmIPSelect);
UnSet($fmIPValue);
UnSet($fmIPKey);
# FILTER-MENU::IP - END
#--
# FILTER-MENU::User - START
$fmUserIDCount =Array();
$fmUserIDKey =NULL;
$fmUserIDValue =NULL;
$fmUserIDSelect =NULL;
$fmUserIDData =NULL;
$fmUserIDQuery
=
$SQL->Query("
SELECT
gbook_userid,
gbook_autor
FROM
".pkSQLTAB_GUESTBOOK."
ORDER BY
gbook_userid ASC
");
While($fmUserIDData=$SQL->Fetch_Array($fmUserIDQuery))
{
$fmUserIDKey =Intval($fmUserIDData['gbook_userid']);
$fmUserIDValue =pkEntities($fmUserIDData['gbook_autor']);
$UserInfo =NULL;
$UserID =NULL;
$UserNick =NULL;
If ($fmUserIDKey > 0)
{
If (IsSet($fmUserIDCount[$fmUserIDKey]))
{
Continue;
}
$fmUserIDCount[$fmUserIDKey]=TRUE;
$UserInfo
=
$SQL->Fetch_Array(
$SQL->Query("
SELECT
user_id,
user_nick
FROM
".pkSQLTAB_USER."
WHERE
user_id='".$fmUserIDKey."'
LIMIT
1
"));
$UserID =Intval($UserInfo['user_id']);
$UserNick =pkEntities($UserInfo['user_nick']);
$fmUserIDValue =$UserNick.' (ID: '.$UserID.')';
}
Else
{
$fmUserIDKey =$fmUserIDValue;
$fmUserIDValue ='('.$lang['guest'].') '.$fmUserIDValue;
}
If (Trim($fmUserIDKey)=='')
{
$fmUserIDKey ='none';
$fmUserIDValue ='(ohne)';
}
$fmUserIDSelect
=
IsSet($pUserIDFlip[$fmUserIDKey])
? 'gbook_filter_userid_select'
: 'gbook_filter_userid'
;
Eval("\$fmUserIDTpl.= \"".pkTpl($fmUserIDSelect)."\";");
}
UnSet($pUserIDFlip);
UnSet($UserNick);
UnSet($UserID);
UnSet($UserInfo);
UnSet($fmUserIDData);
UnSet($fmUserIDQuery);
UnSet($fmUserIDSelect);
UnSet($fmUserIDValue);
UnSet($fmUserIDKey);
UnSet($fmUserIDCount);
# FILTER-MENU::User - END
#--
# OVERVIEW - START
$gbCounter =$SQL->Fetch_Array($SQL->Query("SELECT COUNT(*) FROM ".pkSQLTAB_GUESTBOOK));
$gbCounter =$gbCounter[0];
$PageLink
=
SideLinkFull(
$gbCounter,
$pEPP,
$Entries,
'?path=guestbook',
'small'
);
$row =NULL;
$gbID =NULL;
$gbTime =NULL;
$gbAutor =NULL;
$gbAutorID =NULL;
$gbUserID =NULL;
$gbUserNick =NULL;
$gbIP =NULL;
$gbTitle =NULL;
$gbText =NULL;
$gbComments =NULL;
$gbook_row =NULL;
$gbData =NULL;
$gbQuery
=
$SQL->Query("
SELECT
gbook_id,
gbook_time,
gbook_autor,
gbook_title,
gbook_text,
gbook_ip,
gbook_userid
FROM
".pkSQLTAB_GUESTBOOK."
".$SQLCommand."
ORDER BY
gbook_time DESC
LIMIT
".$Entries.", ".$pEPP
);
While($gbData=$SQL->Fetch_Array($gbQuery))
{
$row=rowcolor($row);
$gbID =Intval($gbData['gbook_id']);
$gbTime =FormatTime($gbData['gbook_time']);
$gbAutor =pkEntities($gbData['gbook_autor']);
$gbAutorID =Intval($gbData['gbook_userid']);
$gbUserID =NULL;
$gbUserNick =NULL;
If ($gbAutorID > 0)
{
$getUser
=
$SQL->Fetch_Array(
$SQL->Query("
SELECT
user_id,
user_nick
FROM
".pkSQLTAB_USER."
WHERE
user_id='".$gbAutorID."'
LIMIT
1
"));
$gbUserID =Intval($getUser['user_id']);
$gbUserNick =pkEntities($getUser['user_nick']);
Eval("\$gbAutor= \"".pkTpl('gbook_row_user_link')."\";");
}
$gbIP =pkEntities($gbData['gbook_ip']);
$gbIP
=
$gbIP==''
? '(ohne)'
: $gbIP
;
$gbTitle=pkEntities($gbData['gbook_title']);
$gbText
=
$BBCODE->parse(
$gbData['gbook_text'],
0,
pkGetConfig('gbook_ubb'),
pkGetConfig('gbook_smilies'),
pkGetConfig('gbook_images'),
1,
pkGetConfig('guestbook_imageresize'),
pkGetConfig('guestbook_textwrap')
);
$gbComments
=
$SQL->Fetch_Array(
$SQL->Query("
SELECT
COUNT(*)
FROM
".pkSQLTAB_COMMENT."
WHERE
comment_cat='gb'
AND
comment_subid='".$gbID."'
LIMIT
1
"));
$gbComments=$gbComments[0];
Eval("\$gbook_row.= \"".pkTpl('gbook_row')."\";");
}
If ($gbook_row===NULL)
{
Eval("\$gbook_row= \"".pkTpl('gbook_row_empty')."\";");
}
UnSet($gbComments);
UnSet($gbUserNick);
UnSet($gbUserID);
UnSet($gbQuery);
UnSet($gbData);
UnSet($gbText);
UnSet($gbTitle);
UnSet($gbIP);
UnSet($gbAutorID);
UnSet($gbAutor);
UnSet($gbTime);
UnSet($gbID);
UnSet($row);
Eval("\$site_body.= \"".pkTpl('gbook')."\";");
UnSet($gbook_row);
# OVERVIEW - END
?> | | |
Sollte noch irgendetwas sein - eine Frage, ein Vorschlag, Fehler etc - einfach sagen ^^""
|
|
|
|
|
|
|
|
|
|
23.08.2017 - 23:24 Uhr |
|
|
|
Hallo k!r!ka,
wow - danke dir! Ich werde das morgen (bzw. heute ^^) einbauen und dann Bescheid sagen ob alles geklappt hat!
LG, mono (:
|
|
|
|
|
|
|
|
|
|
24.08.2017 - 16:18 Uhr |
|
|
|
Kurzer Zusatz zu obigen Post die mir im heutigen Verlauf des Tages noch eingefallen sind:
- Der Bereich von oben ist hier zu finden:
AdminCenter > Sonstiges > Gästebuch
- Filter-Funktionen erklärt:
- Einträge pro Seite:
--
Normalerweise ist hier der Standard-Eintrag aus AdminCenter > Konfiguration > Gästebucheinstellungen drin.
Dieser kann aber umgestellt werden. Bei 40.000 Einträgen sind 8 Einträge pro Seite echt lästig ^^"
Die Eingabe erlaubt nur Zahlen,
mind. 1 Stelle,
max. 4 Stellen.
Also zwischen 1-9999 alle Zahlen möglich.
- nach IP filtern:
--
Der Eintrag (ohne) ist für den Fall das eine IP nicht korrekt, oder Aufgrund eines Fehlers nicht gespeichert wurde.
Es sind keine doppelten Einträge in der Liste zu finden.
Der Eintrag keine Auswahl ist das selbe wie wenn nach keiner IP gefiltert werden soll.
Die Einträge in der Liste sind mehrfach auswählbar. Je nach Browser / Betriebssystem unterschiedlich auswählbar. In Windows-System via STRG + linker Mausklick.
- nach Usern filtern:
--
Es sind keine doppelten Einträge in der Liste zu finden.
Der Eintrag keine Auswahl ist das selbe wie wenn nach keinen User gefiltert werden soll.
Beiträge von Gästen sind am Anfang mit einen (Gast) gekennzeichnet.
Beiträge von reg. Usern sind am Ende mit einen (ID: ***) gekennzeichnet.
Die Einträge in der Liste sind mehrfach auswählbar. Je nach Browser / Betriebssystem unterschiedlich auswählbar. In Windows-System via STRG + linker Mausklick.
- nach Zeitraum filtern:
--
Wert für Jahr:
Die Eingabe erlaubt nur Zahlen,
genau 4 Stellen,
mind. das Jahr 1990,
max. das Jahr 9999.
Wert für Monat:
Die Eingabe erlaubt nur Zahlen,
mind. 1 Stelle,
max. 2 Stellen,
genau 2 Stellen,
mind. den Monat 1,
max. den Monat 12.
Wert für Tag:
Die Eingabe erlaubt nur Zahlen,
mind. 1 Stelle,
max. 2 Stellen,
genau 2 Stellen,
mind. den Tag 1,
max. den Tag 31.
Es folgt keine extra Prüfung ob der angegebene Monat 28 / 29 / 30 / 31 Tage hat. Dies macht, wenn überhaupt, PHP in der Funktion mktime().
Nach Möglichkeit immer ein genaues Datum angeben.
Nur einen Tag oder Monat wird nicht viel bringen, da die Berechnung des Zeitraumes nicht darauf augelegt ist ( kA ob das so einfach bei dieser Zeitspeicherform möglich ist - hab das nie probiert ).
Besser wäre erst das Jahr ( und ggf. einen Monat ) im Start / Ende anzugeben.
Auch gilt bei beiden Zeiträumen:
Es wird immer vom Anfang eines Zeitraumes gerechnet.
Wenn ich z.B. das Start-Jahr 2017 eingebe, gilt 01.01.2017.
Dasselbe gilt beim Ende-Jahr 2017: 01.01.2017
Wenn also das ganze Jahr 2017 als Zeitraum gemeint sein soll muss man das ganz klar einstellen.
Z.B. Start-Jahr 2017, Ende-Jahr 2018 ( oder Ende-Jahr 2017, Ende-Monat 12, Ende-Tag 31 ).
- Kleiner Fix:
- pkinc/admin/gbook.php
- Öffne o.g. Datei und suche das:
| PHP-Quelltext $PageLink
=
SideLinkFull(
$gbCounter,
$pEPP,
$Entries,
'?path=guestbook',
'small'
); | |
Und mache daraus das:
| PHP-Quelltext $PageLink
=
SideLinkFull(
$gbCounter,
$pEPP,
$Entries,
'?path=gbook',
'small'
); | |
- Hinweis beim löschen:
--
Dies steht zwar in der Übersicht unterhalb des Filtern-Block - aber ich sage das nochmal hier:
Ausgewählte Einträge werden samt zugehörigen Kommentaren ohne eine weitere Sicherheitsabfrage gelöscht!
Einmal gelöscht - immer gelöscht.
Also genau aufpassen welche Beiträge markiert sind
|
|
|
|
|
|
|
|
|
|
25.08.2017 - 11:47 Uhr |
|
|
|
Hallo k!r!ka,
ich habe den GBookMultiDelete Hack eingebaut, unter "AdminCenter > Sonstiges > Gästebuch" wird mir das Tool jedoch nicht angezeigt
|
|
|
|
|
|
|
|
|
|
25.08.2017 - 12:15 Uhr |
|
|
|
Nachtrag:
Ich habe gerade mal ausprobiert ob ich den Pfad dazu finde und siehe da, direkt über die URL kann ich darauf zugreifen. Die Installation war also erfolgreich, es fehlt nur der Menüpunkt (:
Die Filteroptionen sind ein Traum! Ich habe gerade versucht nach Zeitraum zu Filtern, da nach einem bestimmten Datum nur noch Spam kommt und das in meinem Fall die einfachste Methode wäre, allerdings funktioniert das Eintragen des Zeitrums nur sehr zeitverzögert und ich werde beim Versuch den Suchfilter anzuwenden immer aus dem Admin-Breich geschmissen. Es kann sein, dass es an meiner Verbindung liegt da ich momentan noch im Urlaub bin und nur über das mobile Datennetz darauf zugreifen kann.
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mono - 25.08.2017 - 12:16 Uhr |
|
|
|
|
|
|
|
|
|
|
25.08.2017 - 14:11 Uhr |
|
|
|
Nabend,
ich hatte schon fast damit gerechnet. Wusste nicht wie das PHPKIT die Navigation im AdminCenter lädt. Jetzt weiss ich es ^^""
Damit ist die Änderung in der Datei pkinc/cfg/adminnavigation.php hinfällig und kann im Grunde weg - je nachdem ob die Lust besteht das zu tun
Allerdings muss dann doch eine kleine Install-Datei gemacht werden:
- pkinc/public/Install_GBookMultiDelete.php
- Erstelle o.g. Datei ( vorhandene .php-Datei kopieren und wie oben unbenennen ) und füge folgende Code ein:
Hier klicken zum aufklappen 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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | | PHP-Quelltext <?PHP
If (!Defined('pkFRONTEND') || pkFRONTEND!='public')
{
Die('Direct access to this location is not permitted.');
}
If (Intval(pkGetUservalue('id'))!==1)
{
pkEvent('page_not_found');
Return;
}
$AdminNav
=
Array(
'id' =>'gbook',
'pid' =>'misc',
'sorting' =>0,
'lkey' =>'gbook',
'lscope' =>'',
'target' =>'',
'lnkpath' =>'gbook',
'lnkmode' =>'',
'lnkadd' =>'',
'permission'=>'',
);
$Public['Install'] =NULL;
$Public['DeInstall']=NULL;
$SQLQueryIsInstall =NULL;
$SQLQueryLastSort =NULL;
If (IsSet($_POST) && !Empty($_POST))
{
$SQLQueryIsInstall
=
$SQL->Fetch_Assoc(
$SQL->Query("
SELECT
id
FROM
".pkSQLTAB_ADMIN_MENU."
WHERE
id='gbook'
AND
pid='misc'
"));
# Install
If (IsSet($_POST['Install']))
{
If ($SQLQueryIsInstall===FALSE)
{
$SQLQueryLastSort
=
$SQL->Fetch_Assoc(
$SQL->Query("
SELECT
sorting
FROM
".pkSQLTAB_ADMIN_MENU."
WHERE
pid='misc'
ORDER by
sorting DESC
"));
$AdminNav['sorting']=Intval($SQLQueryLastSort['sorting']) + 1;
$Public['Install']
=
$SQL->Query("REPLACE INTO ".pkSQLTAB_ADMIN_MENU." (".Implode(',', Array_Keys($AdminNav)).") VALUES ('".Implode("','", Array_Values($AdminNav))."')")
? TRUE
: FALSE
;
}
Else
{
$Public['Install']='';
}
}
# DeInstall
If (IsSet($_POST['DeInstall']))
{
If ($SQLQueryIsInstall!==FALSE)
{
$Public['DeInstall']
=
$SQL->Query("DELETE FROM ".pkSQLTAB_ADMIN_MENU." WHERE id='gbook' AND pid='misc' LIMIT 1")
? TRUE
: FALSE
;
}
Else
{
$Public['DeInstall']='';
}
}
UnSet($SQLQueryLastSort);
UnSet($SQLQueryIsInstall);
UnSet($AdminNav);
}
?>
<Table Class="standard" Border="0" CellSpacing="1" CellPadding="4" Width="100%">
<TR>
<TD Class="heads">PHPKIT ( 1.6.6. ) » GBookMultiDelete » De/Installation</TD>
</TR>
<TR>
<TD Class="standard" align="center">
<Form Action="?path=<?PHP Echo $path; ?>" Method="Post">
<Input Type="Submit" Name="Install" Value="Installieren" />
<Input Type="Submit" Name="DeInstall" Value="Deinstallieren" />
</Form>
<BR />
<?PHP If (IsSet($Public['Install'])): ?>
Installation:
<BR />
<?PHP If ($Public['Install']===TRUE): ?>
<Span Style="Color: Green;">Die Tabelle "<?PHP Echo pkSQLTAB_ADMIN_MENU; ?>" wurde erfolgreich abgeändert.</Span>
<?PHP ElseIf ($Public['Install']===FALSE): ?>
<Span Style="Color: Red;">Die Tabelle "<?PHP Echo pkSQLTAB_ADMIN_MENU; ?>" wurde nicht abgeändert.</Span>
<BR />
<?PHP $SQL->error(); ?>
<?PHP Else: ?>
<Span Style="">Die Tabelle "<?PHP Echo pkSQLTAB_ADMIN_MENU; ?>" wurde bereits abgeändert.</Span>
<?PHP EndIf; ?>
<BR />
<?PHP EndIf; ?>
<?PHP If (IsSet($Public['DeInstall'])): ?>
Deinstallation:
<BR />
<?PHP If ($Public['DeInstall']===TRUE): ?>
<Span Style="Color: Green;">Die Tabelle "<?PHP Echo pkSQLTAB_ADMIN_MENU; ?>" wurde erfolgreich abgeändert.</Span>
<?PHP ElseIf ($Public['DeInstall']===FALSE): ?>
<Span Style="Color: Red;">Die Tabelle "<?PHP Echo pkSQLTAB_ADMIN_MENU; ?>" wurde nicht abgeändert.</Span>
<BR />
<?PHP $SQL->error(); ?>
<?PHP Else: ?>
<Span Style="">Die Tabelle "<?PHP Echo pkSQLTAB_ADMIN_MENU; ?>" wurde bereits abgeändert.</Span>
<?PHP EndIf; ?>
<BR />
<?PHP EndIf; ?>
</TD>
</TR>
</Table> | | |
Rufe dann deine Seite so auf:
| Quellcode http://teamtapert.de/hp/?path=Install_GBookMultiDelete | |
Es folgt ein kleines Menu für die De- und Installation. Einfach auf den entsprechenden Button klicken.
Dabei wird ein Datensatz in der Tabelle {DBPräfix}_admin_menu hinzugefügt / entfernt - ist nur für die Navigation im AdminCenter ( deswegen entfällt die Änderung in der Datei adminnavigation.php von weiter oben ).
Je nach Erfolg / Misserfolg kommt eine Meldung.
Der Navigationspunkt im AdminCenter sollte dann nach der Installation als letzter Punkt erscheinen.
Die Datei Install_GBookMultiDelete.php kann gelöscht, umbenannt, verschoben oder einfach im Ordner bleiben. Sofern kein Unbefugter Zugriff stattfindet ( z.B. übern FTP ) sollte keiner außer der User mit der ID 1 ( Hauptadmin ) Zugriff haben. Jeder andere kriegt eine "Seite nicht gefunden - hier klicken für Weiterleitung auf Startseite"-Meldung.
--
Was den Nachtrag angeht:
Ich sag mal so:
Je höher der Wert für die Einträge pro Seite ist umso länger dauert die Auswertung der Datenbank mit den Daten. Ist also eine Frage wie schnell der Server das verarbeiten kann.
Das du dabei aus den AdminCenter fliegst könnte direkt mit der Datenbank zusammenhängen. Der Login ins AdminCenter wird ja in der DB gespeichert - bei Zugriffsproblemen ( z.B. die Verarbeitung für die Einträge ) könnte das PHPKIT denken das du ja gar nicht eingelogt bist. Ist aber nur eine Vermutung - hatte mir das nie genauer angeguckt
|
|
|
|
|
|
|
|
|
|
25.08.2017 - 18:43 Uhr |
|
|
|
Hallo k!r!ka,
danke dir. Ich habe die Datei Install_GBookMultiDelete.php erstellt und ins Verzeichnis public_html/hp/pkinc/public hochgeladen, aber ich kann sie über http://teamtapert.de/hp/?path=Install_GBookMultiDelete nicht aufrufen
|
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von mono - 25.08.2017 - 18:45 Uhr |
|
|
|
|
|
|
|
|
|
|
25.08.2017 - 20:34 Uhr |
|
|
|
Zitat Original geschrieben von k!r!ka
[..] Sofern kein Unbefugter Zugriff stattfindet ( z.B. übern FTP ) sollte keiner außer der User mit der ID 1 ( Hauptadmin ) Zugriff haben. Jeder andere kriegt eine "Seite nicht gefunden - hier klicken für Weiterleitung auf Startseite"-Meldung. |
Hab das extra geschrieben ( rot und dick markiert )
Um das anzupassen gehe wie folgt vor:
- pkinc/public/Install_GBookMultiDelete.php
- Öffne o.g. Datei und suche das:
| PHP-Quelltext If (Intval(pkGetUservalue('id'))!==1) | |
Und mache aus der 1 ganz rechts die Zahl mit der du auf der Seite registriert bist. Nach der Teamseite müsste das die 2 sein
|
|
|
|
|
|
|
|
|
|
25.08.2017 - 23:05 Uhr |
|
|
|
Hallo k!r!ka,
da habe ich nicht aufmerksam genug gelesen, sorry. Hat natürlich alles so geklappt wie du geschrieben hast. Ich hoffe die Datenbankabfrage funktioniert im heimischen W-Lan besser, aber dass kann ich erst nächste Woche herausfinden. Ansonsten kann ich mich auch wirklich sehr gut mit kleineren Einheiten zufriedengeben - viel besser als alles einzeln zu löschen! Vielen Dank für deine Hilfe!
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mono - 25.08.2017 - 23:47 Uhr |
|
|
|
|
|
|
|
|
|
|
26.08.2017 - 04:04 Uhr |
|
|
|
Ach kein Ding. Bei großen Texten besteht ja immer die Gefahr das man was überliest
Und wenn noch was sein sollte - Fehler oder so - einfach sagen. Vielleicht kann man ja ( noch ) helfen ;o
|
|
|
|
|
|
|
|
|
|
26.08.2017 - 08:46 Uhr |
|
|
|
Moin moin,
ich werde mich mit Sicherheit melden - selbst wenn hier alles klappt finde ich als ahnungsloser PhpKit-Admin immer etwas neues (;
Schön das es euch noch gibt.
|
|
|
|
|
|
|
|
|
|
26.08.2017 - 22:29 Uhr |
|
|
|
Und hier kommt schon die nächste Anschlussfrage
Nachdem ich jetzt die knapp 50.000 Einträge in 200er-Schritten gelöscht habe, sind schon wieder einige neue Spam-Einträge dazu gekommen. Zum Ende hin hat sich die Datenbankabfrage merklich verkürzt, die ganzen Einträge haben die Seite anscheinend etwas ausgebremst. Bevor das Gästebuch wieder zum Umschlagplatz für Viagra verkommt, würde ich es gerne besser schützen. Wir haben im Gästebuch schon einen Captcha-Schutz, aber der ist nicht sehr effektiv. Ich würde das Gästebuch wenn es geht gerne für Gäste offen halten, aber Gästebucheinträge zu löschen wird nicht mehr zu einer meiner neuen Lieblingsbeschäftigungen... habt ihr noch eine Idee was man da verbessern müsste?
|
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von mono - 26.08.2017 - 22:43 Uhr |
|
|
|
|
|
|
|
|
|
|
29.08.2017 - 15:43 Uhr |
|
|
|
Schon mal diese Erweiterungen probiert?
pK ASCE PHPKIT 1.6.6 - KC feat. Rödie | Security Module V1.2.2c
--
*Link entfernt*/include.php?path=download&contentid=647
pK ASCE PHPKIT 1.6.6 - Captcha Extend V1.0F
--
*Link entfernt*/include.php?path=download&contentid=590
Beide sind für das ASCE von DustFireSky ( Download-Seite ) geschrieben. Sofern nicht installiert geht es auch auf altmodische Weiße - per Hand
Finde nur gerade nicht den Beitrag wo ich das mal grob Erklärt versucht habe
|
|
|
|
|
|
|
|
|
|
30.08.2017 - 23:59 Uhr |
|
|
|
Hallo k!r!ka,
ASCE habe ich und Captcha Extend V1.0 ist aktiv. Das Security Module V1.2.2c wollte ich installieren, aber ich kann per ASCE keine Datein mehr hochladen... der Button zum Dateien auswählen fehlt einfach. ^^' Falls du noch die manuelle Anleitung dafür findest wäre das super!
|
|
|
|
|
|
|
|
Ähnliche Themen |
|
|
|
|
|
|
|
|