Ubuntu 16.04: phpMyAdmin zeigt PHP-Code an

Dieses Wochenende habe ich mir einen neuen Rechner zusammengebaut. Nach der Installation von phpMyAdmin zeigte dieses allerdings nur PHP-Code an.

Das Beheben des Problems ist eigentlich ganz einfach. Man muss nur mit dem folgenden Befehl ein fehlendes Paket installieren:

sudo apt-get install libapache2-mod-php7.0

Spam unter WordPress ohne Plugins verhindern!

Ich habe bei einem meiner Projekte das Problem, dass ich WordPress verwende, allerdings keine Plugins oder Themes verwenden kann. Wie verhindert man also bei so einem Projekt Kommentar-Spam?

Es ist eigentlich ganz einfach: Man baut in die functions.php ein paar neue Funktionen gegen Spam ein:

1. Webseiten-Feld entfernen!

Spammer / Spam-Bots wollen ihre Webseite bekannter machen, gibt es kein -Webseiten-Feld ist das Risiko niedriger, dass Spam gepostet wird.

PHP-Code:

function remove_comment_fields($fields) {
    unset($fields['url']);
    return $fields;
}
add_filter('comment_form_default_fields','remove_comment_fields');
 
function rkv_url_spamcheck( $approved , $commentdata ) {
   return ( strlen( $commentdata['comment_author_url'] ) > 1 ) ? 'spam' : $approved;
}
 
add_filter( 'pre_comment_approved', 'rkv_url_spamcheck', 99, 2 );

Diese Funktion entfernt das Webseiten-Feld und markiert Kommentare mit Webseite automatisch als Spam. (Quelle: catswhocode.com)

2. Kommentare mit Links entfernen

Als Nächstes weist man die Besucher des Blogs darauf hin, dass Links in den Kommentaren verboten sind und baut die folgende von mir erstellte Funktion ein, die Kommentare mit Links erkennt.

PHP-Code:

// BBCodes und HTML-Links erkennen - Wronnay.net
function wy_link_on_comment() {
if(stristr($_POST['comment'],"[link=") || stristr($_POST['comment'],"[url=") || stristr($_POST['comment'],"a href=") || stristr($_POST['comment'],"http://")){
wp_die( __('Bitte keine Links posten!') );
}
}
add_action('pre_comment_on_post', 'wy_link_on_comment');

Die Funktion erkennt sogenannte BBCodes, die eigentlich gar nicht in WordPress verwendet werden und normale HTML-Links und weist den Autor darauf hin, dass Links nicht erlaubt sind.

Update (23.04): Ich habe jetzt „ || stristr($_POST[‚comment‘],“http://“)“ hinzugefügt. Der Code erkennt jetzt alle Links.

Funktion gegen Cross-Site-Scripting …

Da ich eben noch ein Problem mit Cross-Site-Scripting hatte, möchte ich hier Posten, wie ich es gelöst hab: Ich habe eine neue PHP-Funktion erstellt:

<?php
function nocss($nocss) {
  $nocss = mysql_real_escape_string($nocss);
  $nocss = strip_tags($nocss);
  $nocss = htmlspecialchars($nocss);
  return $nocss;
}
?>

Aufgerufen wird sie so:

<?php
nocss($TEXT);
?>

ForenSoftware veröffentlicht

Downloade diese ForenSoftware jetzt kostenlos und erlebe die unzähligen Features. (Website: ForenSoftware.tk)

Features:

Gravatar Unterstützung
Anti-Spam Funktion
BBCodes
Smilies
Admin-Bereich
Moderator-Bereich
Kategorien erstellen / löschen
Unterkategorien erstellen / löschen
Suche
RSS-Feeds
Nachrichtensystem
Userprofile
Verschiedene Designs möglich
Logo möglich
Favicon möglich
Weiterleitung möglich
Untertitel möglich
Moderatoren ernennen / löschen
User löschen
Beiträge löschen
Themen löschen
Einfache Installation

Mehr Details

Alternativer Server (PHP Tut)

<?php
error_reporting(0);
ob_start();
function pingSite($webserver) 
{ 
   foreach ($webserver as $key => $host) 
    { 
        $fp = curl_init($host['url']);
        curl_setopt($fp,CURLOPT_TIMEOUT,10);
        curl_setopt($fp,CURLOPT_FAILONERROR,1);
        curl_setopt($fp,CURLOPT_RETURNTRANSFER,1);
        curl_exec($fp);
        if (curl_errno($fp) != 0)  
        { 
            $webserver[$key]['status'] = false;
        } 
        else  
        { 
            $webserver[$key]['status'] = true;
        } 
        curl_close($fp);
    }
    return $webserver;
} 
$webserver[0]['name'] = 'lima-city';
$webserver[0]['url'] = 'http://webfreclan.lima-city.de';
$webserver = pingSite($webserver);
?>
<html>
<head>
<title>Server Check</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?PHP
foreach ($webserver as $key => $host) 
{ 
   if(!$host['status'])
   {
    echo 'Die Server sind zurzeit offline!';
	Header("Location: http://www3.wronnay.tk");
   }
   else
   {
    echo 'Die Server sind zurzeit online!';
    Header("Location: http://webfreclan.lima-city.de");
   }
}  
?>
</body>
</html>
<?php
ob_end_flush();
?>

Dieser Code überprüft, ob der Server „http://webfreclan.lima-city.de“ online ist und leitet im Fall, dass er offline ist, auf http://www3.wronnay.tk weiter.