{"id":1291,"date":"2018-06-21T16:48:29","date_gmt":"2018-06-21T14:48:29","guid":{"rendered":"http:\/\/evileu.de\/zum-schwarzen-pinguin\/?p=1291"},"modified":"2018-11-09T06:23:47","modified_gmt":"2018-11-09T05:23:47","slug":"php-5-6-forever","status":"publish","type":"post","link":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/2018\/06\/21\/php-5-6-forever\/","title":{"rendered":"PHP 5.6 forever? Und kleine Auswertung des Rezeptecounters"},"content":{"rendered":"<p>Also, ich geb zu das hat mit WordPress nur am Rande was zu tun, aber ich denke mir dass andere Leute vor dem selben Dilemma stehen und werde deswegen ein paar Worte zu dem Thema verlieren.<\/p>\n<p>Man ist ja mittlerweile bei PHP 7.x angelangt, und es hat sich seit den 5er Versionen einiges getan, besonders in Sachen Datenbankzugriff. PDO und mysqli hat mysql abgel\u00f6st, und wir sind nicht abw\u00e4rtskompatibel. Das w\u00fcrde mir noch nicht mal viel ausmachen, weil ich auf meiner evileu.de kaum PHP-Skripte f\u00fcr den Datenbankzugriff benutze, das l\u00e4uft eigentlich alles \u00fcber WordPress. Aber an manchen Stellen kneifts dann doch, und besonders f\u00fcr meine kleinen SEO-Statistiken h\u00e4tt ich dann doch das eine oder andere PHP-Script gebraucht. Lokal (XAMPP) arbeite ich schon lang mit PHP 7 und hab eigentlich gar nicht mehr dar\u00fcber nachgedacht ob ich die 5er Version nochmal brauchen k\u00f6nnte.<\/p>\n<p>Aber die Live-Seite evileu de l\u00e4uft bei meinem Provider (Strato) noch auf PHP 5.6, und das wird wohl auch so bleiben. Ein Anruf bei der Hotline hat ergeben, da\u00df von einer Umstellung auf PHP 7.x dringendst abgeraten wird, weil es keine Garantie daf\u00fcr gibt, dass vorhandene Webseiten dann noch laufen. Der Hotliner meinte sogar, dass in den meisten F\u00e4llen die Webseiten neu aufgesetzt werden m\u00fcssten&#8230; Vielleicht bin ich da auch nur \u00fcbervorsichtig, WordPress sollte ja eigentlich mit den neuesten PHP-Versionen klarkommen, aber &#8222;der Teufel ist ein Oachkatzl&#8220; &#8211; weiss man&#8217;s genau?<\/p>\n<p>Jedenfalls r\u00e4t Strato von einer Umstellung dringend ab, und ich bekam auch die Auskunft dass bei denen noch 99,9% aller Webseiten auf PHP 5.6 laufen. Tscha, da werde ich mich wohl der Mehrheit anschliessen, schon auch weil es bei Umstellungsproblemen der PHP-Version von Strato keinen Support gibt, jedenfalls nicht an der kostenfreien Hotline. Bin bloss gespannt wie lange WordPress die Gr\u00e4tsche noch mitmacht &#8211; irgendwann wird es eine Version geben, die nur noch auf PHP 7.x l\u00e4uft, und dann wirds echt spannend.<\/p>\n<p>Was mach ich bis dahin? Plugins und Shortcodes statt PHP-Scripte nutzen, wo immer es m\u00f6glich ist, weil ich beim Programmieren Knoten in die Tippfinger kriege, wenn ich st\u00e4ndig zwischen PHP 5 und 7 wechseln muss. Gefallen tut mir das nicht, aber ich hab ja etwa ein Dutzend WordPress-Blogs am Laufen, und da will ich nicht das geringste Risiko eingehen. Also, PHP 5.6 forever &#8211; obs mir gef\u00e4llt oder nicht.<\/p>\n<h2>PHP-5-Script f\u00fcr die Auswertung des Rezeptecounters<\/h2>\n<p>F\u00fcr alle, die es auch nicht mehr parat haben, wie das mit dem mysql_connect damals so ging, hier ein kleines Script zur Auswertung der counter-Tabelle (<a href=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/2018\/06\/02\/alternative-zum-besucherzaehler\/\">siehe dieser Beitrag zum Rezeptecounter<\/a>) Die Tabelle ist ja recht einfach aufgebaut:<\/p>\n<div id=\"attachment_1206\" style=\"width: 532px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-1206\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1206\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/06\/tabelle_counter.jpg\" alt=\"tabelle_counter\" width=\"522\" height=\"174\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/06\/tabelle_counter.jpg 522w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/06\/tabelle_counter-300x100.jpg 300w\" sizes=\"(max-width: 522px) 100vw, 522px\" \/><p id=\"caption-attachment-1206\" class=\"wp-caption-text\">tabelle_counter<\/p><\/div>\n<p>Fehlte eigentlich nur noch die Aufsummierung der Gesamtzahl der Aufrufe, das erledigen wir hier gleich in einem Aufwasch:<\/p>\n<pre>$dbh = mysql_connect(\"[hostname]\", \"[db user]\", \"[password]\");\r\n$query = \"[db name]\";\r\nif (!mysql_query($query, $dbh)) die(\"Fehler bei der Datenbankverbindung.\");\r\n\r\n\/\/Gesamtaufrufe summieren***********************\r\n$abfrage = \"select <span style=\"color: #008000;\">sum(zaehler) as summe<\/span> from counter\";\r\n$ergebnis = mysql_query($abfrage,$dbh);\r\n\r\nwhile($row = mysql_fetch_assoc($ergebnis))\r\n{\r\necho \"&lt;h2&gt;Seitenaufrufe seit 20.6.2018: \".<span style=\"color: #008000;\">$row['summe']<\/span>.\"&lt;\/h2&gt;\";\r\n}\r\n\r\n\/\/*********************\r\n\r\n$sql = \"SELECT * FROM counter ORDER BY zaehler DESC\";\r\n\r\n$result = mysql_query($sql);\r\n\r\nwhile ($row = mysql_fetch_assoc($result)) {\r\n\u00a0\u00a0\u00a0 echo $row[\"cid\"].\" \";\r\n\u00a0\u00a0\u00a0 echo $row[\"rezeptid\"].\" \";\r\n\u00a0\u00a0\u00a0 echo $row[\"titel\"].\" \";\r\n\u00a0\u00a0 \u00a0echo \"Z&amp;auml;hler: \".$row[\"zaehler\"].\"&lt;br&gt;\";\r\n}\r\n\r\nmysql_free_result($result);\r\n?&gt;<\/pre>\n<p>Das liefert einen ganz netten \u00dcberblick, hier die Zahlen von hier im Bistro seit gestern:<\/p>\n<div id=\"attachment_1293\" style=\"width: 691px\" class=\"wp-caption alignnone\"><img aria-describedby=\"caption-attachment-1293\" decoding=\"async\" loading=\"lazy\" class=\"size-full wp-image-1293\" src=\"http:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/06\/ausgabe_rezeptecounter.jpg\" alt=\"ausgabe_rezeptecounter\" width=\"681\" height=\"538\" srcset=\"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/06\/ausgabe_rezeptecounter.jpg 681w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/06\/ausgabe_rezeptecounter-300x237.jpg 300w, https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-content\/uploads\/2018\/06\/ausgabe_rezeptecounter-624x493.jpg 624w\" sizes=\"(max-width: 681px) 100vw, 681px\" \/><p id=\"caption-attachment-1293\" class=\"wp-caption-text\">ausgabe_rezeptecounter<\/p><\/div>\n<p>Ich gebe zu man k\u00f6nnte es sch\u00f6ner formatieren, aber mir langt das f\u00fcr einen groben \u00dcberblick. Ist echt eine Alternative zum Visitor Counter, der ja leider wegen der DSGVO weg musste.<\/p>\n<h2>Der Shortcode f\u00fcr die Rezepthitparade<\/h2>\n<p>&#8230; musste auch nur um zwei Zeilen erg\u00e4nzt werden, damit er die Gesamtzahl der Aufrufe mit ausgibt:<\/p>\n<pre>function el_rezepthitparade(){\r\n\u00a0\u00a0 \u00a0global $wpdb;\r\n\u00a0\u00a0 \u00a0echo \"&lt;h2&gt;Die 10 beliebtesten Rezepte&lt;\/h2&gt;\";\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0<span style=\"color: #008000;\">$gesamt = $wpdb-&gt;get_var(\"SELECT SUM(zaehler) FROM counter\");<\/span>\r\n<span style=\"color: #008000;\">\u00a0\u00a0 \u00a0echo $gesamt.\" Rezeptaufrufe seit Beginn der Z\u00e4hlung Juni 2018&lt;br&gt;\";<\/span>\r\n\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0$alleposts = $wpdb-&gt;get_results( \"SELECT * FROM counter \r\n    ORDER BY zaehler DESC LIMIT 10\");\r\n\u00a0\u00a0 \u00a0foreach ($alleposts as $einpost){\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0$pfad = get_the_permalink($einpost-&gt;rezeptid);\r\n\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0echo \"&lt;a href = '\".$pfad.\"'&gt;\".$einpost-&gt;titel.\"&lt;\/a&gt; (\".$einpost-&gt;zaehler.\")&lt;br&gt;\";\r\n\u00a0\u00a0 \u00a0}\r\n}\r\nadd_shortcode('hitparade','el_rezepthitparade');<\/pre>\n<p>Den get_var kann man hier einwandfrei nutzen, weil nur ein Wert von der Query zur\u00fcckgegeben wird, den kann man dann auch gleich direkt mit echo ausgeben.<\/p>\n<h2>Nachtrag f\u00fcr Z\u00e4hlung der <span style=\"color: #008000;\"><em>Seiten<\/em><\/span>aufrufe<\/h2>\n<p>Mein Rezeptecounter ist schon fleissig im Einsatz, und ich bin mit den aussagekr\u00e4ftigen Ergebnissen sehr zufrieden. Nur noch eine kleine Erg\u00e4nzung: in meinem Handarbeitsblog ist es f\u00fcr mich auch interessant zu wissen, welche statischen Seiten wie oft aufgerufen werden. Die kommen mit einer ganz kleinen Erg\u00e4nzung der Z\u00e4hler-Function mit in die counter-Tabelle. Statt nur if (is_single())&#8230; frage ich ab if(is:single() or is_page()), und schon sind die statischen Seiten auch mit in der Statistik.<\/p>\n<h2>Noch&#8217;n Nachschlag: Aufrufe pro Tag<\/h2>\n<p>Ich hab in meinem Archiv gekramt und <a href=\"http:\/\/www.selfphp.de\/kochbuch\/kochbuch.php?code=11\">eine Funktion aus dem Selfphp-Forum<\/a> ausgebuddelt, mit der man die exakte Anzahl von Tagen zwischen zwei gegebenen Tagesdaten ermitteln kann. Die nutzen wir doch gleich mal um einen Tagesdurchschnitt auszurechnen. Das Startdatum der Z\u00e4hlung wird einfach fest eingegeben, das Enddatum (aktueller Tag) mit der date()-Funktion erzeugt, die Gesamtzahl der Aufrufe haben wir ja aus der Query, die liegt auf der Variablen $gesamt.<\/p>\n<pre>$gesamt = $row['summe'];\r\n$timeA = '20.06.2018'; \r\n $timeB = date(\"d.m.Y\"); \r\n\r\n $differenz = seDay($timeA,$timeB,\"dmY\",\".\"); \r\n \r\necho '&lt;h3&gt;In ' . $differenz . ' Tagen '.$gesamt.\r\n\" Aufrufe, das macht im Durchschnitt \".round(($gesamt\/$differenz)).\" Aufrufe pro Tag&lt;\/h3&gt;\";<\/pre>\n<p>Die Funktion seDay k\u00f6nnt ihr hier nachschlagen:\u00a0 <a href=\"http:\/\/www.selfphp.de\/kochbuch\/kochbuch.php?code=11\">http:\/\/www.selfphp.de\/kochbuch\/kochbuch.php?code=11<\/a><\/p>\n<p>Viel Spa\u00df beim Nachbauen!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Also, ich geb zu das hat mit WordPress nur am Rande was zu tun, aber ich denke mir dass andere Leute vor dem selben Dilemma stehen und werde deswegen ein paar Worte zu dem Thema verlieren. Man ist ja mittlerweile bei PHP 7.x angelangt, und es hat sich seit den 5er Versionen einiges getan, besonders [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1,4,2,59],"tags":[],"_links":{"self":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1291"}],"collection":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/comments?post=1291"}],"version-history":[{"count":8,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1291\/revisions"}],"predecessor-version":[{"id":1302,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/posts\/1291\/revisions\/1302"}],"wp:attachment":[{"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/media?parent=1291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/categories?post=1291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/evileu.de\/zum-schwarzen-pinguin\/wp-json\/wp\/v2\/tags?post=1291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}