Sprung zum Inhalt

Webdesign nach Maß von webdesign weisshart

Mein Blog

RSS Feed AbonnementRSS 2.0 Feed

zum Archiv und den Kategorien

Push Benachrichtigung von PHP an Smartphones

Sonntag, 2. Oktober 2016

Die Aufgabe:

Eine Website soll im Anschluss an eine bestimmte Aktion (Beispiel: User betritt einen Support-Chat) eine Push Benachrichtigung ans Smartphone senden.

Eine Lösungsmöglichkeit:

Man schickt per PHP eine Nachricht an einen Messenger, und lässt diesen die Push Benachrichtigung erledigen.
Als Messenger hierfür bietet sich Telegram an. Telegram bietet, anders als beispielsweise WhatsApp, eigens zu diesem Zweck eine Bot API.

Screenshot
Die Push Meldung auf dem iPhone:
"[Uhrzeit] [Username] hat den Chat betreten."

Eine kurze Anleitung zur Einrichtung eines Telegram Bots

tl;dr weiterlesen…


Bildergröße automatisch serverseitig skalieren - Responsive Layout

Donnerstag, 3. Mai 2012

360 Grad Panorama der alten Holzbrücke in Bassano del Grappa
Das obige Panoramafoto der alten Holzbrücke in Bassano del Garda ist im Original 4096 px breit und 1.3 MB schwer. Genau so liegt es auch auf dem Server. Auf meinem PC wiegt es aber nur noch 92 kB, auf dem iPhone noch deutlich weniger (13 kB), ohne dass ich mehrere Versionen des Bildes erzeugt und auf den Server geladen hätte.
Dieses "Wunder" wird von einem pfiffigen Script namens Adaptive Images vollbracht. Das Einbinden dieses Scripts ist wirklich so einfach wie beschrieben.

Vorteil: Das mühselige Erzeugen mehrerer Bildgrößen, sowie die Auswahl des jeweils entsprechend der Monitorgröße geeigneten Bildes erledigt der Server. Fürs schnelle Bloggen also ideal.

Nachteil: Vielleicht die Dateigröße, die auf dem Server liegt. Ach ja, da nur abhängig von der verfügbaren Monitorgröße skaliert wird, muss unter Umständen doch noch der Browser entsprechend einer eventuellen CSS Anweisung weiter skalieren. Das Optimum der Dateigröße wird dadurch natürlich bei weitem nicht erreicht.

Nachtrag 13.04.2016

Das <picture> Tag, das ja inzwischen von allen aktuellen Browsern unterstützt wird, ist meines Erachtens die bessere Variante. Weil es individuell je nach Bedarf eingesetzt werden kann. Ich denke darüber nach, Adaptive Images auf meiner Site in den Ruhestand zu schicken. Da ich natürlich nicht alle alten Beiträge daraufhin abklappern will, ob dort eventuell zu große Originalbilder eingebunden sind, müsste ich in Kauf nehmen, dass auch mal schwergewichtige Bilder in älteren Artikeln herunter geladen werden. Ich denke nach.


Ein eigenes CSS für das iPad?

Dienstag, 14. September 2010

Seit langem bediene ich mobile Geräte (Handys usw.) mit einem eigenen CSS, um der Bildschirmgröße Rechnung zu tragen. Siehe z. B. diesen Beitrag. Auch das iPhone fällt nach meinem Dafürhalten darunter, obwohl das auch mit Standard-CSS und einigem Gepfriemel seitens des Benutzers noch einigermaßen klar kommt.

Für die Unterscheidung setze ich folgende PHP-Funktion ein:
function check_mobile() {
$agents = array(
'Windows CE', 'Pocket', 'Mobile',
'Portable', 'Smartphone', 'SDA',
'PDA', 'Handheld', 'Symbian',
'WAP', 'Palm', 'AvantGo', 'iPhone', 'BlackBerry', 'MOT-',
'cHTML', 'BlackBerry', 'Opera Mini',
'Nokia', 'Palm', 'Blazer', 'SonyEricsson', 'Minimo'
);

for ($i=0; $i<count($agents); $i++) {
if(isset($_SERVER["HTTP_USER_AGENT"])
&& strpos($_SERVER["HTTP_USER_AGENT"], $agents[$i]) !== false
)
return true;
}
return false;
}

Ja, ich weiß: Der String 'iPhone' im array ist redundant. Weil das iPhone ohnehin schon 'Mobile' im User Agent String mitschickt:
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3

Jetzt zum iPad:
Auch das iPad trägt das 'Mobile' im User Agent String:
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10
Aber dem iPad ein 'mobiles CSS' liefern? Nein! Und den String 'Mobile' will ich aus meinem array nicht herausnehmen. Daher wird die Abfrage jetzt erweitert zu:

for ($i=0; $i<count($agents); $i++) {
if(isset($_SERVER["HTTP_USER_AGENT"])
&& strpos($_SERVER["HTTP_USER_AGENT"], $agents[$i]) !== false
&& strpos($_SERVER["HTTP_USER_AGENT"], 'iPad') === false)
return true;
}

und das iPad erhält das, was ihm zu Gesicht steht: nämlich mein 'normales' CSS.


Banner aus Zufallsbildern generieren

Sonntag, 19. April 2009

Demobanner
Ein Banner aus Zufallsbildern. Nein, kein Zufallsbanner, und auch keine Bannerrotation.
Die Aufgabenstellung lautete vielmehr: Aus allen Bildern in einem Verzeichnis zufällige Bilder auswählen, und zu einem Banner zusammensetzen. Panorama-Bild nennen dies verschiedene Grafikprogramme.
Das Ergebnis ist ein kleines PHP Script, das diese Aufgabe "on the fly" erledigt.

Konfigurierbar: Bannergröße, Grafikformate u. a.

Sollte jemand Verwendung für ein solches Script haben: Einfach hier downloaden

25.04.: noch schnell ein paar Details im Script verbessert:
Hintergrundfarbe konfigurierbar. Das ist nötig, wenn transparente Einzelbilder zur Verwendung kommen.
Trennlinie (in Hintergrundfarbe) zwischen den Einzelbildern konfigurierbar.


Deine erste Homepage - ein barrierefreies Tutorial

Donnerstag, 19. Februar 2009

"Dreimal klicken - und Sie haben eine eigene Homepage, ohne programmieren zu müssen."

So oder so ähnlich lauten die Anpreisungen vieler Webhosting-Anbieter.
Mag ja sein, dass es tatsächlich möglich ist, dieses Versprechen einzuhalten.
Aber das Ergebnis kann nur Spielerei sein, und ist nicht ausbaufähig.
Viele angehende Webmaster haben dies früher oder später festgestellt.

Die Kunst, eine Homepage zu erstellen

Die übliche Auszeichnungssprache für eine Homepage ist HTML (Hypertext Markup Language). Wenn du also ernsthaft an die Sache heran gehen willst, dann bleibt dir nichts anderes übrig, als diese Sprache zu lernen. Das klingt nach viel Arbeit - und ist es auch!

Wenn du dir diese Mühe machen willst, dann gibt es hier ein Tutorial, das dich in wenigen Schritten, und ohne theoretischen Ballast, zu deiner ersten mit HTML erstellten Seite führt. Du erwirbst Grundkenntnisse in den wichtigsten Techniken. Grundkenntnisse, auf die du nach Abschluss des Tutorials systematisch aufbauen kannst.

Hier geht es zum Tutorial


Negerboxkampf im Tunnel - oder: weißer Adler auf weißem Grund

Montag, 24. März 2008

Beim Erstellen von Anwendungen steht man hin und wieder vor dem Problem, die Lesbarkeit von Schrift zu gewährleisten, wenn der User Schrift- oder Hintergrundfarben frei wählen kann.

Ein Beispiel ist der Credit-Link in meinem Suchscript. Der Webmaster will das Script an die Farben seines Seitendesigns anpassen. Wenn ich ihm aber die freie Wahl bei der farblichen Gestaltung auch des Credit-Links gebe, dann gibt es halt immer wieder pfiffige Zeitgenossen, die genau für diesen Zweck schwarze Schrift auf ihrem schwarzen Seitenhintergrund schön finden.

Das wiederum passt mir nicht.

Ich sorge also mit ein wenig PHP dafür, dass zur Anpassung an die Zielseite beliebige Hintergrundfarbe gewählt werden können, und dennoch mein Link optimal lesbar bleibt.

Der PHP Code dazu ist gar nicht so schwer zu verstehen:
if (preg_match('/^#[0-9A-F]{1,6}$/i', $bg) && strlen($bg) == 7) {
$redH = base_convert(substr($bg, 1, 2), 16, 10);
$greenH = base_convert(substr($bg, 3, 2), 16, 10);
$blueH = base_convert(substr($bg, 5, 2), 16, 10);
$sum = $redH*299 + $greenH*587 + $blueH*114;
if ($sum < 127000 ) {
$comp = "#FFFFFF";
} else {
$comp ="#000000";
}
} else {
$fehler = 1;
$bg = "#FFFFFF";
$comp = "#000000";
}

Je nach gewählter Hintergrundfarbe ($bg in der search_config.php einzustellen) wird als Schriftfarbe $comp weiß #FFFFFF oder schwarz #000000 eingestellt.
Welche Farbwerte aus 16 Millionen möglichen aber führen zu optimaler Lesbarkeit mit schwarzer, welche Farben mit weißer Schrift?

Das W3C weiß die Antwort.

In der Zeile
$sum = $redH*299 + $greenH*587 + $blueH*114;
ist dieses Wissen im Code umgesetzt.

Hier kann man das Ergebnis selbst testen und ein wenig herumspielen.
Und hier habe ich die Technik noch etwas erweitert, und ein kleines Tool erstellt, um auch Farbkontraste zu prüfen.


PHP Variable an Javascript übergeben

Montag, 8. Januar 2007

Serverseitiges Scripting, z.B. mittels PHP, ist in der Regel schnell, sicher, und ausreichend mächtig.
Manche Dinge müssen aber clientseitig gemacht werden. Dann ist Javascript die Sprache der Wahl.
Und wenn in einer Anwendung beide Verfahren zusammen arbeiten sollen, taucht häufig die Frage auf, wie Variablen von PHP an Javascript übergeben werden können.

Es gibt eine verblüffend einfache Lösung für dieses Problem:

Schreibe dein Javascript in eine PHP Datei, und liefere den Inhalt als Javascript aus.
Klingt kompliziert? Ist es aber nicht.

Ein einfaches Beispiel:
1. Gib deiner "Javascript"-Datei die Dateiendung .php, damit der Server weiß, daß sie von PHP geparst werden muss. Also z.B. meinscript_js.php
2. An den Anfang dieser Datei kommt:
<?php
header('Content-Type: text/javascript');
include("serverscript.php");
?>
Damit sagst du dem Server, dass er die Datei als Javascript ausliefern soll, und includest die PHP-Datei serverscript.php mit den zu übergebenden Variablen, damit sie im folgenden zur Verfügung stehen.

Das war's schon.

Du kannst jetzt innerhalb des Javascript-Codes PHP einfügen. Dazu schaltest du einfach auf PHP um, wie innerhalb einer HTML-Datei auch. Also z.B.:

… ganz normaler Javascript Code in Javascript Syntax …
<?php echo "Hallo Welt"; ?>
… weiter im Javascript Code …

Achtung!
genau dieses Beispiel wird nicht funktionieren. Warum nicht? Weil dein Script ja Javascript ausliefert. Das ausgelieferte Javascript beinhaltet jetzt die Zeile "Hallo Welt". Das ist ungültige Syntax. Um per Javascript etwas in eine HTML Seite zu schreiben, gibt es z.B. den Befehl document.write

Richtig wäre also:
<?php echo "document.write ('Hallo Welt')"; ?>

Alles klar?

Und nach dem selben Muster kannst du auch auf eine PHP-Variable zugreifen (die in der Datei serverscript.php definiert wurde), z.B.:

… ganz normaler Javascript Code in Javascript Syntax …
var irgendwas = <? echo $irgendwas; ?>
… weiter im Javascript Code …


Bannerrotation

Donnerstag, 6. April 2006

Am »day after naked« gibt's ein aufgepepptes Hintergrundbild für den Titel auf dieser Seite (natürlich nur im Style »Standard«): eine Bannerrotation. Die Rotation wird mit PHP realisiert, und das Script kommt - wieder einmal - von alistapart
Und die Fotos? überwiegend von photocase.com


Letzte Änderung dieser Seite

Samstag, 26. November 2005

fast jede mit PHP erstellte Seite schmückt sich irgendwo mit dieser Information. Und ich halte dies für wertvoll, sagt es mir doch, ob und wie aktuell der Inhalt der Seite ist.

Aber zumeist steht dann dort etwas wie:
Letzte Änderung dieser Seite: 18.05.05

Auf meinen Seiten heißt es jetzt stattdessen:
Letzte Änderung dieser Seite: heute, gestern, oder vor x Tagen/Wochen/Monaten.

Ich finde das einfach schicker.


Fotos per MMS direkt vom handy auf die Homepage

Mittwoch, 10. August 2005

… wenn's wirklich aktuell sein soll.
So was hatte ich schon länger im Sinn. Schnelle Texte vom handy auf die Website: das erledigt sms2web
Aber Fotos? knipsen - Fotos auf den PC laden - Bildbearbeitung anwerfen - in die Website einbauen - alles uploaden. Nein, das ist zu umständlich.
Aber jetzt geht's ganz fix: MMS an mms2web - pronto! (oder gibt's noch jemanden ohne Fotohandy?)
Ein wenig PHP war dazu schon erforderlich.


Ein einfaches PHP Suchscript

Montag, 31. Januar 2005

Wenn Dir die Suchroutine auf diesen Seiten gefällt, überlaß ich Dir das Script gerne kostenlos.
Das Script durchsucht htm, html, php und txt Dateien, beliebig viele Verzeichnisse (aber keine Datenbanken), ist weitestgehend über Parameter konfigurierbar, und kann nahtlos in jedes Seitenlayout eingefügt werden.

Support bitte nur noch im Forum


Dynamische Textersetzung

Donnerstag, 16. Dezember 2004

Die Seite im Stil LeonardoFür die Überschriften im Style "Leonardo" verwende ich eine Schriftart, die sicher nicht auf Ihrem PC installiert ist.
Wie so etwas geht, beschreibt Stewart Rosenberger in einem Artikel, der bei www.alistapart.com vorgestellt wurde.
Weil ich glaube, daß es gut auf meine Seite paßt, hab ich den Artikel ins Deutsche übersetzt.

Anregungen und Kritik sind diesmal ganz besonders willkommen.


Styleswitcher - aktiver Style

Samstag, 4. Dezember 2004

Was für die Navigation gilt, gilt auch für den Styleswitcher:
die aktuelle Auswahl sollte gekennzeichnet und kein aktiver Link sein - ein häufig vernachlässigtes usability feature.
Ich hab das heute mal umgesetzt. Und da meine Navigation einschließlich Styleswitcher per PHP eingebunden wird, mußte ich noch eine Abfrage einbauen, welcher Style gerade aktiv ist. Und das funktioniert natürlich per cookie-Abfrage.


PHP

Samstag, 6. November 2004

PHP ist die heute im Web meist verwendete serverseitige Scriptsprache.
Ich setze auf meinen Seiten PHP zum Beispiel ein, um die Seiten aus einzelnen logischen Blöcken zusammen zu setzen. Jede Seite besteht aus:

  • header
  • Kopfbereich
  • Inhalt
  • footer

wobei nur der Inhalt jeweils neu geschrieben wird.
Der Vorteil dabei ist offensichlich: Alles außer dem Inhalt muß nicht jedesmal neu eingegeben werden, und, noch wichtiger, wenn ich in den Fixbereichen, z.B. footer, etwas ändere, dann wird eine Änderung an einer Stelle auf allen Seiten ausgeführt.

Ein kleines Beispiel, was man mit serverseitigen Sprachen alles machen kann:
Dieses Script gibt u.a. Ihre IP Adresse, Ihre Host IP Adresse, und den user agent Ihres Browsers aus.


Archiv:

Kategorien:

Creative Commons Lizenzvertrag
Alle Texte (nicht Bilder!) Creative Commons CC BY-NC-SA 3.0 DE