4CMS

HTML - hr

<hr> (default)


Separator mit den üblichen Farben




Weiterlesen.

CSS - font-size

Beispiel Schriftgrößen
Schriftgröße.classname
font-size: 1.0rem.fs10
font-size: 1.1rem.fs11
font-size: 1.2rem (default).fs12
font-size: 1.3rem.fs13
font-size: 1.4rem.fs14
font-size: 1.5rem.fs15
font-size: 1.6rem.fs16
font-size: 1.7rem.fs17
font-size: 1.8rem.fs18
font-size: 1.9rem.fs19
font-size: 2.0rem.fs20

2022

2do, archiv & updates

Weiterlesen.

CSS - font-weight

Beispiel Schriftstärken
Schriftstärke.classname
font-weight: 100 (default).fw100
font-weight: 200.fw200
font-weight: 300.fw300
font-weight: 400.fw400
font-weight: 500.fw500
font-weight: 600.fw600
font-weight: 700.fw700
font-weight: 800.fw800
font-weight: 900.fw900

CSS Check Warnungen (xx)

Wenn der W3C CSS Validierungsdienst meldet:

Gratulation! Es wurden keine Fehler gefunden.

Weiter unten dann aber mehrere Warnungen kommen al´a:

Due to their dynamic nature, CSS variables are currently not statically checked

CSS - border-radius

:root {
 --radius: 3rem .7rem 2rem .7rem/.7rem 2rem .7rem 3rem;
}
.radius {
 border-radius: var(--radius);
}

WordPress 6.0

Das weltweit am häufigsten genutzte CMS (Codenamen Arturo) kann jetzt in der Version 6.0 herunter geladen werden.

Neuerungen sind unter anderem ein verbessertes Schreib-Interface und eine bessere Möglichkeit für die Anpassung des Seitenlayouts.

Download: https://de.wordpress.org/download (22.5MB)

NULL Datenbank

Der NULL Werte (nicht das Wort an sich) in einer SQL Datenbank ist ein Zeichen für schlechtes Datenbank-Design. Hier sollte ein adäquater Ersatz oder die leeren Zeichenfolge ' ' verwendet werden.

CSS - color

Textfarbe:
red orange yellow green blue purple white black

Hintergrundfarbe:
bg- bg- bg- bg- bg- bg- bg- bg-

Ramenfarbe:
border- border- border- border- border- border- border- border-

Bullet

CSS - animation

<i class="fas fa-bowling-ball fa-spin"></i>

JSON CRUD

Brauche ich zwar noch nicht, aber ich wollte mich Technisch schon mal mit JSON auseinander setzten. Also kurz eine JSON-Datei erstellt (brennholzverleih.json) und diese schnell via Textarea mit ein paar Daten befüllt.

Ein Datensatz sieht in etwa so aus:

Weiterlesen.

CSS - font-family

Ich habe die Google-Fonts gelöscht (kein berechtigte Interesse) und mit system-ui eine sehr gute Alternative gefunden.

Mit font-weight 100 hab ich ein sehr dünnes Schriftbild wie z.b. bei Roboto (100) und mit font-weight 900 ist der Text auch fett genug, so das ich auch die Schriftart Anton nicht mehr brauche.

Ein weiterer Schritt in Richtung die Ladezeit einer Seite zu verbessern.

IF Anweisungen

OperatorBedeutung
==gleich
!=ungleich
<kleiner
<=kleiner oder gleich
>größer
>=größer oder gleich

NFT Quarantäne

Quarantäne
Quarantäne

True = 1

echo 10 + true; // = 11

SQLite CRUD

Zu verschenken... eine voll funktionsfähige CRUD in PHP für SQLite3 in Simple 🙄

public function __construct($db) {
 $this->db = new SQLite3($db);
 $this->init();
}

ALTER TABLE

Die Position der neuen Spalte acht direkt hinter die bereits existierende Spalte sieben der SQL Tabelle hinzufügen.

ALTER TABLE zahl ADD acht varchar(191) AFTER sieben;

PHP file_exists

Erst mal gucken ob die Datei überhaupt existiert.

if (file_exists('/apps/rss.php')) {
 echo 'Ja, die Datei existiert!';
} 
else {
 echo 'Nein, existiert nicht!';
}

https://www.php.net/../function.file-exists.php

Eine Textdatei Lesen

Kompletten Inhalt ausgeben.

$flatfile = 'textdatei.txt';
$inhalt = file_get_contents($flatfile);
echo $inhalt;

Nur Zeile 3 ausgeben.

Weiterlesen.

spl_autoload_register

Gerade mal das Update auf die neue PHP Version 8.0.9 gemacht und direkt auch meine __autoload funktion durch die spl_autoload_register ersetzt.

https://www.php.net/../function.spl-autoload-register.php

CREATE TABLE

Eine weitere Tabelle für die Datenbank.

#primary #unique #auto_increment #index

Weiterlesen.

navbar-toggler

Zwei Zeilen CSS Code entfernen den Rahmen um das navbar-toggler-icon in der Navbar von Bootstrap 5 seiner Navigation.

.navbar-toggler:focus {
  box-shadow: none;
}
.navbar-toggler {
  border: 0;
}

#remove #hover #border #navbar #demo

CSS var

Variablen sind ein Teil der CSS Spezifikation und heißen CSS Custom Properties

:root {
--red: #f8312f;
}

Überall dort, wo ich wiederholend die Farbe "Rot" benötige, verwende ich diese CSS Klassen:

.red { color: var(--red); }
.bg-red { background-color: var(--red); }
.border-red { border: var(--border) var(--red); }

Free SVG Icons

634 Fully customizable free SVG icons. (MIT license)

Weiterlesen.

CSS Attribut-Selektor

Selektoren auf der Basis von Attributen werden in eckigen Klammern notiert.

h2[title^="H2 Titel"] { ... }
a[href^="https:"] { ... }
a[href^="tag/slug"] { ... }
input[type="password"] { ... }
img[alt~="Alt-Text"] { ... }
img[src~="bilder"] { ... }

Archiv2 v0.9

Alle Artikel nach Monat und Jahr gruppiert in einer Definitionsliste ausgeben.

SELECT Month(datum) 
AS Month, Year(datum) 
AS Year, titel, link 
FROM artikel 
WHERE status=1 
ORDER BY datum
DESC

Modul: Artikel Archive

PASSWORD_ARGON2ID

Durch das Updaten auf die PHP Version 7.4.4 funktionierten die User und die Password Class für mein 4CMS User Login nicht mehr.

Zwar war der password_hash den ich dort verwendet habe sehr sicher, aber veraltet.

Ich habe daher die Registrierung und den Login nun komplett neu geschrieben und verwende zum verschlüsseln des Passwortes jetzt den Algorithmus Argon2id.

password_hash()
password_verify()

Login Download: https://github.com/bUTschy/php-login

TinyMCE Image Upload

Auch dem neuen WYSIWYG HTML Editor TinyMCE in der aktuellen Version 5.2 kann man das hochladen von Bildern beibringen und das ganz ohne Plugin. 🧐

wysiwyg

Weiterlesen.

mySQL IN

Hole mir nur die Daten von ID 3 und 26 aus der Datenbank

SELECT * FROM `daten` WHERE `id` IN(3, 26)

Hole mir alle Daten, bis auf ID 7 und 14.

SELECT * FROM `daten` WHERE `id` NOT IN(7, 14)

hidden scrollbars

Den Scrollbalken deaktivieren in allen Browsern geht so:

body, html { 
 overflow: hidden;
}

Wer den Balken aber nur Verstecken bzw. Ausblenden will ohne dabei die Scroll-Funktionalität zu verlieren, muss Weiterlesen.

Weiterlesen.

Subdomain www Umleiten

Eine Subdomain wie z.b. www direkt auf die Hauptdomain https:// weiterleiten, bedarf nur dieser beiden Zeilen in der .htaccess

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Und so redirectet man von http auf https

Weiterlesen.

üöä-ÜÖÄ

ü -- Ü -- ö -- Ö -- ä -- Ä und er hier ß

Warum es mir wieder alle Umlaute in der Datenbank zerhaut ist mir ein Rätzel.

Update:  Mein PSPad war der Übeltäter.

p + p

add paragraph spacing without adding additional spacing after the last one

p + p {
 margin-top: 1rem;
}

Wie lange habe ich danach gesucht, es kann so einfach sein.

Verzeichnis Schutz

Homepage Ordner vor fremden Zugriff schützen.

.htpasswd

demo:$apr1$pXf/oPk7$5zkM3P9yYVSwvsvJWQHks1

Weiterlesen.

Meme Generator

Quelle: Mein Online Meme Generator

Unicode 2 Textarea

Kann man Unicode (Dezimal) via Click in eine Textarea einfügen ?

Ja, mit einer kleinen PHP-Funktion und etwas JS-Code ist das alles kein Problem. Hier in meiner Box demonstriere ich das mit einigen Emoji´s. ?

#unicode #textarea #emoji #onclick #insert #function

WEIß

all you need is white

{ color: #fff; } /* hexadezimale */
{ color: white; } /* farbname */
{ color: rgb(255, 255, 255); } /* rgb */
{ color: rgba(255, 255, 255, 1); } /* rgba */
{ color: hsl(0, 0%, 100%); } /* hsl */
{ color: hsla(0, 0%, 100%, 1); } /* hsla */

#weiss #weiß #white #color #css #rgb

WYSIWYG Images Upload

bye bye .. vor / heul doch

relative_urls: false;

Sitemap

Ich generiere hier mal eine dynamische Sitemap mit PHP und MySQL.

https://butschy.de/seo/

sitemap

Der Inhalt dieser Sitemap ist für das menschliche Auge ungeeignet, klicken und glotzen nur auf eigene Gefahr. ?

CENTER

Ein Element horizontal und vertikal positionieren mit so wenig Code wie möglich und so viel wie nötig.

body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}

Weiterlesen.

utf8mb4

General error: 1366 Incorrect string value: '\xF0\x9F\x98\x81'

Nach dem ich den charset für meine Datenbankverbindung von utf8 auf utf8mb4 umgestellt habe, kann ich jetzt Unicode in meine Datenbank schreiben, ohne diese Fehlermeldung da oben. ?

Externe Datensammler

Beim Besuch dieser Homepage sollen keinerlei personenbezogene Daten gesammelt und an externe Dienste weitergeleitet werden. Daher werde ich jetzt alle externen Dienste verbannen und durch eigene Funktionen ersetzen.

Externe Datensammler waren unter anderem:

Weiterlesen.

Werden Cookies gespeichert?

Ob eine oder Deine Homepage Cookies speichert, kannst du ganz einfach selber herausfinden.

Mit Firefox geht das z.b. so:

  1. Besuche die Seite Deiner Wahl.
  2. Klicke mit der rechten Maustaste irgendwo auf dieser Seite.
  3. Wähle: Seiteninformation anzeigen.
  4. Dann oben im Menu auf Sicherheit.

Weiterlesen.

CSS - style scoped

style scoped ist wieder raus

Formular

HTML - details - summary

Ich mach mir das <details> [...] wie es mir gefällt.

Klicke hier für mehr Details!

Hier könnte nun jeder erdenkliche Inhalt angezeigt werden.

Link: https://www.w3schools.com/tags/tag_details.asp

HTML - dialog

Hey, ich bin der Inhalt des dialog1 HTML Tag.

Geht man in den Artikel, wird hier via open="" automatisch eine Dialog-Box geöffnet.

Weiterlesen.

YouTube iFrame Code in Valide

  1. Einbett-Code generieren
  2. Den Teil frameborder="0" aus dem Code entfernen
  3. Fertig -> Check

Ein komplett tiny und valider iframe Code sehe dann in etwa so aus:

Weiterlesen.

Unicode Emoji

🙂

😀😉😏😅😎🥰🙄🥱😕😡

😀 😁 😂 🤣 😃 😄 😅 😆 😉 😊 😋 😎 😍 😘 🥰 😗 😙 😚 🙂 🤗 🤩 🤔 🤨 😐 😑 😶 🙄 😏 😣 😥 😮 🤐 😯 😪 😫 🥱 😴 😌 😛 😜 😝 🤤 😒 😓 😔 😕 🙃 🤑 😲 🙁 😖 😞 😟 😤 😢 😭 😦 😧 😨 😩 🤯 😬 😰 😱 🥵 🥶 😳 😳 🤪 😵 🥴 😠 😡 🤬 😷 🤒 🤕 🤢 🤮 🤧 😇 🥳 🥺 🤠 🤡 🤥 🤫 🤭 🧐 🤓 😈 👿

Flexbox 1

Bis ich es kann, war doch mit z.b. margin: x x x x; auch nicht so schwer ;)

.flex-item {
 flex-grow: 1; /* Wachstumsfaktor */
 flex-shrink: 1; /* Schrumpffaktor */
 flex-basis: 25em; /* Basisbreite */
}

Oder das gleich in Kurz:

.flex-item {
 flex: 1 1 25em;
}

Ich nenne es mal WSB.

Weiterlesen.

Form ::placeholder Color

Eine andere Farbe für den Formular "placeholder" in allen Browsern

::-webkit-input-placeholder { color: red; }
:-ms-input-placeholder { color: red; }
::-moz-placeholder { color: red; opacity: 1; }

Und mit opacity: 1; ist der Text im Firefox auch gleich etwas besser Lesbar.

TinyMCE 4.3

Es gibt wieder einige Neuerungen im TinyMCE, aber immer noch kein Images-Upload bzw. einen File-Manager.

Ein bischen JS und man bekommt wenigstens ein Images-Upload ganz ohne Plugin hin.

Weiterlesen.

Mobile First Testseite

Ein Hamburger Menu, eine fixe Navigation im Header beim Scrollen (position: sticky;) alles Responsive und nach dem "Mobile First" Prinzip.

Weiterlesen.

CRUD - Aus 4 wird 1

Die Administration meiner PHP-Module bestand bisher immer aus 4 PHP-Dateien, eine view-x.php, eine edit-x.php, eine del-x.php und eine new-x.php.

Weiterlesen.

PHP Mini PDO CRUD

Diese kleine Datenbank besteht aus nur einer einzigen Datei (index.php) in der wird alles gesteuert und sieht momentan so aus.

Lust zu Basteln ? dann lade dir das Script hier runter und mach es Schick, Schlank, Sicher, nur lass es in einer einzigen Datei, alles andere gibt es schon in Geiler ;)

Weiterlesen.

Unicode vs. Latin-1

Wenn Daten als UTF-8 (Unicode) gespeichert wurde, aber als ISO 8859-1 (Latin-1) interpretiert werden, sieht das so aus:

ä ö ü

Weiterlesen.

deny from IP

Eine einfache IP-Sperre via .htaccess

order allow,deny
allow from all
deny from 146.xxx.xxx.xxx

Da gibt es eine IP, die seit Monaten beinah täglich versucht irgend etwas in die BOX zu schreiben, scheitert aber immer wieder an meinem Spamschutz und landet jedes mal auf meiner Spamliste.

Ich kann diese IP einfach nicht mehr sehen, nun wird diese "Geblockt / Ausgesperrt".

Font Awesome 4.5

Das Icon-Font und CSS Toolkit Font Awesome ist aktuell in Version 4.5 erschienen und bringt wieder 20 neue Icons mit.

Darunter auch das für den Edge . Zudem wurden auch diverse Google Icons auf den neusten Stand gebracht.

Satz des Pythagoras

function pythagorean ($a, $b) {
 $sum = pow ($a , 2 ) + pow ($b , 2);
 $c = sqrt ($sum);
 return $c;
}
echo 'Der Satz des Pythagoras lautet: ' , pythagorean(17 , 4);

NOT NULL DEFAULT

Wenn nun in der Datenbank-Tabelle:

`hits` int(11) NOT NULL DEFAULT '0',

Und im Script:

$hits = isset($_POST['hits']) ? trim($_POST['hits']) : 0;

Dann schreibt er auch eine 0 ?

Incorrect integer value

Wo kommt der denn schon wieder her ?

General error: 1366 Incorrect integer value: 'hits' for column at row 1

[Erledigt!]

Weiterlesen.

To-Don´t Liste

ungeordnete Liste ohne alles.

Weiterlesen.

Datum auf Deutsch in PHP

Ich wollte gerade das Archiv-Modul und deren Blöcke überarbeiten und was muss ich da sehen [...] Alle Wochentage und Monate in englischer Sprache ?? Trotz strftime und setlocale(LC_ALL, 'de_DE); in meiner config.php.

Weiterlesen.

Logsfiles über 6GB ?

Heute Morgen und das ab jetzt jede Stunde bekomme ich eine Mail von meinem Hoster.

Sie haben bereits 6524.78 MB von Ihren insgesamt 1450 MB Speicherplatz verbraucht. Dies sind mehr als 90%.

Vielen Dank,
Ihr Administrator

Auf nachfragen welche Datei bzw. Dateien denn so viel Speicher belegen würden, bekam ich diese Antwort.

Weiterlesen.

allow_url_fopen

Und ich wundere mich warum ich mit der neuen PHP-Version auf meinem Server nicht mehr auf das vorhanden sein externer Dateien prüfen konnte. Tja, die Funktion allow_url_fopen war mal eben auf OFF.

Ein kurzes Tickes an meinem Hoster und die Funktion ist wieder ON, thx Speicherzentrum ;)

Maginon IPC 100 AC

Eine neue (alte) IP-Kamera wurde in meinem IP-Cam Dasboard aufgenommen und zeigt irgendeine Terrasse in Norderstedt in 640x480 VGA.

Auch die Maginon IPC-100 AC von Supra lässt sich ganz Easy via

https://[DEINEIP]:[PORT]/videostream.cgi?user=[USERNAME]&pwd=[PASSWORT]

in das Dashboard einbinden.

.htaccess

War ja klar, das die Zeile AddHandler x-httpd-php54 .php die mir mein Hoster gegeben hat, in meiner .htaccess nicht gleich auf anhieb funktioniert.

Denn aktuell gibt es einen Error 500 und der geht so:

Weiterlesen.

Code

<!-- html -->
<!doctype html>
<meta charset="utf-8">
<title>Titel</title>
<meta name="theme-color" content="black">
<!-- img -->
<img src="..." loading="lazy" alt="">
<!-- link -->
<a href="https://www.link.de">https://www.link.de</a>

Weiterlesen.

Zufallbild Nr. 2

Holen wir uns ein zufälliges Bild aus einer array().

$bilder = array('bild1.jpg', 'bild2.jpg', 'bild3.jpg');
 echo '<img src="/ordner/'.$bilder[rand(0, (count($bilder)-1))].'" loading="lazy" alt="">';

Zufallbild Nr. 1

Lassen wir uns ein zufälliges Bild mit glob() aus einem bestimmten Ordner anzeigen.

$bilder = glob('../ordner/*.jpg');
shuffle($bilder);
$bildinfo = getimagesize($bilder[0]);
echo '<img src="'.$bilder[0].'" '.$bildinfo[3].'" loading="lazy" alt="">';

4CMS Passwörter

Wo wir gerade bei Sicherheit sind, ich habe hier im 4CMS eben mein Passwort in "demo" geändert und in der Datenbank sieht das Passwort "natürlich verschlüsselt (nicht mit md5 / sha1)" so aus:

$2y$10$JJbolR9cjToadUN87Mop0eEhjdq.Hm4/xzwG.4e7KnzVezYsW5.kG

Jetzt ändere ich das Passwort erneut und nenne es wieder einfach nur "demo" und speichere es ab und jetzt achtet mal auf den Hash:

Weiterlesen.

PHP Weiterleitung

Eine Weiterleitung via header();

if (!$user->eingeloggt()) {
 header('Location: login.php');
 exit;
}

CSS xxx-of-type

Um z.b. nur dem letzten "p" Element in einem Container eine CSS-Eigenschaft zuzuordnen, kann man folgenden Code verwenden.

article p:last-of-type {
padding-bottom: 1rem;
}

Oder nur dem ersten.

article p:first-of-type {
padding-top: 2rem;
}

CSS Schlagschatten

Alle Boxen haben einen "Schatten"

article, aside, section { 
 box-shadow: 0 0 1rem rgba(0, 0, 0, .3);
}

Lotto mit PHP

Gibt 6 unterschiedliche Zahlen aus 49 unsortiert aus.

$ziehung = range(1, 49);
shuffle($ziehung);
for($zahl = 1; $zahl <= 6; $zahl++){
echo $ziehung[$zahl];
}

Noch kürzer ?

Weiterlesen.

Morse Alphabet

Das Morse Alphabet | var | samp | sos

UmlauteMorsecode
ä● − ● −
ö− − − ●
ü● ● − −

Weiterlesen.

Icon Spin

Mit .fa-spin

Ich find´s Cool, braucht nur kein Mensch 🙄

COUNT und GROUP BY

Für eine Top 5 Liste brauche ich nur ein COUNT(*) und GROUP BY() an die Datenbank senden.

SELECT `buser`, COUNT(*) AS `zahl` FROM `box` GROUP BY `buser` ORDER BY `zahl` DESC LIMIT 5

Und schon habe ich die Top 5 Einträge und die Summe deren Einträge in einer Liste.

Hab ich in der Form schon für einige Blöck gebraucht.

Ein Forum v2

Ein einfaches kleines PHP Forum Modul wollte gebaut werden.

So schnappe ich mir eines meiner Content-Module, bediene mich an den Kommentar-Funktionalitäten des Artikel-Moduls und Clone die Datenbank-Tabelle vom Box-Modul (die besteht ja auch nur aus einer Tabelle) Tätäää, das kleinste und sicherste PDO Forum der Welt ist fertig.

Weiterlesen.

index.php

Wir bauen uns eine einfache dynamische PHP-Seite in nur einer einzigen Datei (index.php) und Navigieren (switchen) durch die Seite mit Links al´ a:

index.php?action=news

Los geht es.

Weiterlesen.

Das neuste Bild

Zeige mir doch bitte nur ein einziges Bild aus dem Verzeichnis "img" und zwar nur das neuste.

$array = array();
foreach(glob('./img/*.jpg', GLOB_NOSORT) as $datei)
$array[$datei] = filemtime($datei);
arsort($array); $pic_array = array_keys($array);

In $pic_array[0] haben wir jetzt den vollständigen Link.

Weiterlesen.

PHP include

Nie wieder include al´a Verzeichnis xyz ../../../

Denn:

define('MAINDIR',dirname(__DIR__) . '/');
define('INC_DIR',MAINDIR . 'includes/');

Dann:

require_once(INC_DIR.'header.php');

März sein Umlaut

Gut das ich heute den Kram mit der Foscam geschrieben habe, denn sonst wäre mir der Fehler mit dem M�rz nicht aufgefallen.

setlocale(LC_ALL, 'de_DE.UTF-8');

Unicode und ASCII

¯ \ _ (ツ) _ / ¯

Unicode Zeichen die auf allen Geräten und Browsern gleich aussehen und sich mit CSS einfärben lassen.

Und das geht so.

Weiterlesen.

PHP Zeitgesteuert

Eine Aktion je nach Tageszeit

$zeit = date('H');

if ($zeit < 12){
 $gruss = 'Guten Morgen';
}
else if ($zeit >= 12 && $zeit < 18) {
 $gruss = 'Guten Tag';
}
else if ($zeit >= 18 && $zeit < 22) {
 $gruss = 'Guten Abend';
}
else { 
 $gruss = 'Gute Nacht';
}
          
echo $gruss;

Progress

Wie sieht es denn nun mit dem progress Balken hier im 4CMS aus?

<!-- progress -->
<progress max="100" value="50"></progress>

10% = red 10%

20% = orange 20%

30% = yellow 40%

40% = green 40%

50% = blue 50%

60% = purple 60%

70% = white 70%

80% = black 80%

90% = dark 90%

100% = darkest 100%

Grid Raster

Diese Homepage liegt in einem Flex Grid, ein Raster aus maximal 12 Zellen.

Diese 12 Zellen lassen sich beliebig aufteilen.

only class="flex"

Weiterlesen.

CSS Webfont Icons

Ich wollte auch mal solche Webicons für das 4CMS.

Warum nicht das Icon-Set von Font Awesome.

Hier stehen 479 unterschiedliche Icons zur Auswahl die sich leicht einbauen lassen.

Weiterlesen.

Ein Box-Block

Die neusten bzw. letzten Einträge aus der Box-Tabelle in einem Block.

$stmt = $db->query('SELECT `x` FROM `y` ORDER BY `z` DESC LIMIT 3');
while($row = $stmt->fetch()) {
 echo $row['x'];
}

CSS - button

/ .btn


Textfarbe


Hintergrundfarbe


Ramenfarbe


Text und Ramenfarbe


Hintergrundfarbe + Icon


Buttons mit Textfarbe-Icons


Dropdown Menu

Klicke hier auf Weiterlesen und wenn ich alle richtig gemacht habe, bekommst man dort ein horizontales "only CSS" Dropdown-Menu zu sehen.

Weiterlesen.

In Datei schreiben

Mal eben etwas in ein Datei schreiben.

$inhalt = 'was auch immer';
file_put_contents('datei.txt', $inhalt, FILE_APPEND | LOCK_EX);

Guckst du hier: php.net/.../function.file-put-contents.php

Wenn die Überschrift doch mal etwas länger wird.

Manchmal gibt es Überschriften auf der Homepage deren Zeichenlänge so lang ist, das es sich ungünstig auf das Layout der Seite auswirkt.

Da macht es auch mal Sinn, diese zu kürzen, aber bitte dann auch in "Schön" soll heißen, nicht mitten in einem Wort.

Eine PHP Funktion muss her die das elegant Löst.

Weiterlesen.

CSS Panel

Geben wir den Panel Boxen mal etwas Farbe.

red
orange
yellow
green
blue
purple

Zufall aus der Datenbank

Einen zufälligen Eintrag aus der Datenbank auslesen und Anzeigen.

$stmt = $db->query('SELECT `titel` FROM `tabelle` ORDER BY RAND() LIMIT 1');
while ($row = $stmt->fetch()) {
 echo $row['titel'];
}

Schon schlimm wenn man das nur mit einer Funktion RAND() erledigen kann.

.scrollTop

Beim runterscrollen auf dieser Seite, guck mal unten Rechts in die Ecke.

Weiterlesen.

HTML Gerüst

Also, ich fange mal an:

<!-- html -->
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="black">
<title>TITLE</title>
</head>
<body>

<h1>Hallo Welt!</h1>

</body>
</html>

Fertig.. ne ne, das war es schon ;)

DELETE mit PDO

Einen Eintrag aus der SQL Datenbank löschen, die kürzest mögliche Schreibweise:

$stmt = $db->prepare('DELETE FROM `tabelle` WHERE `id` = :id');
$stmt->execute(array(':id' => $_GET['id']));

So verwende ich es hier im 4CMS.

CSS3 und :valid

Nun meckert der W3C CSS Validierungsdienst von wegen:

Entschuldigung! Es wurden die folgenden Fehler gefunden

  1. Unbekanntes Pseudoelement oder Pseudoklasse: :required
  2. Unbekanntes Pseudoelement oder Pseudoklasse: :valid

Momentan stehe ich echt auf dem Schlauch und finde keine valide Lösung.

Weiterlesen.

mysql_ ist veraltet

mysql_*

Warnung: Diese Erweiterung ist seit PHP 5.5.0 als veraltet markiert und wird in der Zukunft entfernt werden. Verwenden Sie stattdessen die Erweiterungen MySQLi oder PDO.

MySQLi
PDO.

config.php Nr. 2

Wir wollen eine Datenbank Verbindung mit einer MySQL-Datenbank herstellen.

Unsere Daten tragen wir hier ein:

define('DBTYPE','mysql');
define('DBHOST','localhost');
define('DBNAME','dein_datenbankname');
define('DBCHAR','utf8mb4');
define('DBUSER','dein_db_username');
define('DBPASS','dein_db_passwort');

Diese übergeben wir dann an unsere Verbindung:

Weiterlesen.

Umlaute ÄÖÜäöü

Ich schreibe Umlaute mit TinyMCE und Tiny schreibt diese auch so in die Datenbank.

Weiterlesen.

Archiv Block

Viel Code für so ein simplen Archiv-Block, geht aber nicht kürzer :(

SELECT Month(adatum) AS Month, Year(adatum) AS Year, 
COUNT(*) AS eintraege 
FROM artikel 
WHERE astatus=1 
GROUP BY Month(adatum), Year(adatum) 
ORDER BY adatum 
DESC

viel Code

codeicon

Das wird mir langsam zu viel Code für ein mini, micro, macro, nano, einfaches simple Blog Script... alleine die CSS bläht sich schon auf 5k auf.

Ich glaube ich mach ein Downgrade auf das wesendliche und alles andere via Plugin, Modul what ever...

pre Zeilenumbruch

Durch die Kombination von CSS white-space und word-wrap gibt es auch innerhalb eines pre-Tags einen Zeilenumbruch.

Weiterlesen.

mySQL RAND()

Einen zufälligen Datensatz mit RAND() aus der Datenbank holen.

$stmt = $db->query('SELECT `titel` FROM `tabelle` ORDER BY RAND() LIMIT 1');
while ($row = $stmt->fetch()) {
 echo $row['titel'];
}

HTML & CSS

HTML5 Tags!


code q em strong cite samp var u s del ins span small abbr math sub sup mark kbd #link Extern. Intern. orange style 🄬️ fs20 Icon


Für mein 4CMS das ich hier auf butschy.de verwende, versuche ich ein möglichst schlankes und klassenloses (classless) CSS Framework zu bauen.

Für eine Live Vorschau nutze ich ein Pen auf Codepen,

Weiterlesen.

mySQL SUM

Klickt man hier auf einen der Artikel, wird dieser Klick in die Zelle aklicks in die Datenbank geschrieben und der Wert dort um einen erhöht.

Weiterlesen.

TinyMCE Emoticons

plugins: ["emoticons"],

Weiterlesen.

bbcode für atext2

Ein paar wenige bbcode´s Testen.

Weiterlesen.

if rowCount 0 else

Was ist, wenn es noch keinen Daten in der Datenbank gibt, muss man es Petzen ? Und wenn ja, wie ?

Weiterlesen.

Framework

HTML, CSS und JavaScript Testseite.

Classless...

TinyMCE Selector

Will man nur eine bestimmte textarea mit TinyMCE ansprechen, muss man seiner textarea eine ID zuweisen.

Weiterlesen.

TinyMCE eigene CSS Datei einbinden.

Nette Sache, da läßt sich im TinyMCE Editor eine eigene CSS Datei einbinden.

content_css : "../css/style.css",

Artikel Style CSS

Jeder Artikel kann via CSS ein individuelles Design bekommen.

<article class="aid_'.$row['aid'].'">

Formular Spam

Heute Morgen um 01:18 Uhr der erste Spam-Eintrag hier in den Kommentaren.

Der Eintrag kam laut IP Locator irgendwo aus Tailand, es wurde ein Name eingetragen aber keine eMail und als Kommentar wurden nur Links gepostet.

Weiterlesen.

Daten von Heute

Für die schnelle Übersicht zwischendurch.

SELECT * FROM `tabelle` WHERE DATE_FORMAT(`datum`, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d')

Zeigt dir alle Einträge von Heute.

Admin Kommentare

Fertig, die übersieht der Kommentare im Adminmenu.

Anzahl Kommentare

Gibt es denn schon Kommentare für diesen oder jenen Artikel und wenn ja, wieviele ? Lassen wir es uns Anzeigen.

$stmt = $db->prepare('SELECT alink 
FROM kommentare WHERE alink = :alink');
$stmt->execute(array(':alink' => $row['alink']));

Jetzt kommen wir mit rowCount() an die Zahl.

Weiterlesen.

Kommentare

Ich hab mal eben die Box geclone´t und daraus eine Kommentar-Script gebastelt.

Ein blöder Schreibfehler (Eine fehlende Klammer) hat mich bestimmt eine Stunde lang auf Fehlersuche geschickt.

Weiterlesen.

Tabelle kommentare

In phpMyAdmin die Datenbank auswählen in dem unsere Tabelle kommentare hinzugefügt werden soll

SQL -> SQL-Befehl(e) in Datenbank DEINEDATENBANK ausführen.

Weiterlesen.

Admin Box

So, die Administration für die Box ist nun auch soweit fertig, die übersicht mal eben in einem Screenshot gezeigt.

Weiterlesen.

BOX v1.0

Box, die erste App für das 4CMS darf getestet werde.

Besucher können Feedback bzw. ein Kommentar auf der Seite hinterlassen.

Weiterlesen.

4CMS PDO Crud

SELECT, INSERT, UPDATE und DELETE wie ich es hier im 4CMS verwende.

Wenn ich einen Parameter an ein Prepared Statement binde, muss ich ihn nicht escapen.

Weiterlesen.

Tabelle artikel 2

Ich hab die Tabelle artikel um die Spalte aklicks erweitert.

Weiterlesen.

Admin User

Screenshots -> User Erstellen, Bearbeiten oder Auflisten

Weiterlesen.

Admin Kategorie

Screenshots -> Kategorien Erstellen, Bearbeiten oder Auflisten

Weiterlesen.

Admin Artikel

Screenshots -> Artikel Erstellen, Bearbeiten oder Auflisten

Weiterlesen.

Adminmenu

So sieht die Adminseite (Backend) nach dem Login aus.

Weiterlesen.

SIUD

Hier nur kurz mein SIUD mit PDO!

Weiterlesen.

config.php

In dem Verzeichnis "includes" liegt eine Datei mit dem Namen "config.php" in dieser Datei tragen wir unsere Daten für die Datenbank Verbindung ein.

Weiterlesen.

Tabelle userliste

In phpMyAdmin die Datenbank auswählen in dem unsere Tabelle userliste hinzugefügt werden soll

SQL -> SQL-Befehl(e) in Datenbank DEINEDATENBANK ausführen.

Weiterlesen.

Tabelle kategorie

In phpMyAdmin die Datenbank auswählen in dem unsere Tabelle kategorie hinzugefügt werden soll

SQL -> SQL-Befehl(e) in Datenbank DEINEDATENBANK ausführen.

Weiterlesen.

Tabelle artikel

Weiterlesen.