BOM entfernen ()

Habe mir wieder mal fast die Haare ausgerauft: Auf jeder Seite kam ganz am Anfang oben rechts immer wieder die Zeichen „“.

Scheinbar handelt es sich um ein sogenanntes „BOM“

Bei http://toscho.de bin ich auf die Erklärung gestossen, was ein sog. „BOM“ ist und wie man die loswird.
Als Hex-Editor für Ubuntu habe ich mir „jeex“ installiert.

Weiterlesen BOM entfernen ()

Forum beobachten [phpBB3]

Im Laienforum beschlossen wir, ein internes Forum für Diskussionen einzurichten.

Ich entschied mich für phpBB, da ich damit schon sehr gute Erfahrungen machte.
Dabei stiess ich auf die Situation, dass die Anwender nicht so versiert sind, aber eine Benachrichtigung erfolgen soll, wenn jemand im Forum einen Beitrag postet.

Im Blog "abgedichtet" bin ich auf den folgenden Eintrag gestossen, der genau das gleiche Problem hatte und es auch lösen konnte.

Diese Lösung ist aber auf eine Vorgängerversion zugeschnitten (vermutlich Version 2). Deshalb ist es wichtig, bei der Erstellung des CSV zu beachten, dass es anders aufgebaut ist:

forumid; userid; notifystatus  
==> bspw.
3,54,0
2,55,0
2,54,0
etc.

Herzlichen Dank an LeVampyre vom Blog "abgedichtet".


Seit kurzem habe ich für meinen Chor ein phpBB-Forum für die interne Kommunikation installiert. Dabei gab es die Anforderung, dass alle Mitglieder automatisch eine E-Mail-Benachrichtigung erhalten sollen, wenn in Forum X ein neuer Beitrag gepostet wird.

Seit phpBB3 gibt es für alle User des Boards die Möglichkeit, freiwillig ganze Foren zu beobachten/abonnieren und automatisch eine E-Mail-Benachrichtigung zu erhalten, wenn ein neuer Beitrag gepostet wird. Dazu müssen die User aber aktiv auf einen Link klicken, was für weniger versierte Internetnutzer eine Herausforderung ist und zumal noch nicht sicherstellt, dass jeder User das dann tatsächlich auch tut. Bisher gibt es keine Möglichkeit für den Admin über das ACP (Admin Control Panel), User gezielt für das Abonnement eines bestimmten Forums einzuschreiben. Man kann dies aber direkt über eine Eingabe in die SQL-Datenbank tun.

Für welche Foren welche User ein Abonnement haben, steht in der Tabelle “forums_watch”; darin gibt es die Spalten “forum_id”, “user_id” und “notify_status”. Bevor man irgendetwas an seiner sql-Datenbank ändert, sollte man ein Backup machen. Das geht m.E. auch über das ACP.

Mit PHPMyAdmin geht die Änderung sehr fix. Man ruft die Tabelle “forums_watch” auf, klickt auf “Einfügen”, gibt die ID des Forums ein, das beobachtet werden soll, gibt die ID des Users ein, der beobachten soll, läßt den Wert 0 bei “notify_status” stehen und klickt auf “OK”. Steht der Wert bei “notify_status” auf 1, beobachtet der User zwar das Forum, aber es gibt keine Benachrichtigungs-Mail bei neuen Einträgen. Als sql-Befehl in der Comandline sieht das dann ungefähr so aus.

INSERT INTO `foobar`.`suffix_forums_watch` (`forum_id`, `user_id`, `notify_status`) VALUES ('23', '42', '0');

Wenn man viele User hat, ist das natürlich total lästig, das für jeden User einzeln per Hand zu machen. Da will man das lieber über eine .csv-Tabelle importieren. Dazu macht man sich eine .csv-Datei, in die man zuerst die User-IDs einträgt, die man subscriben möchte (1 ID pro Zeile). Hinter jede User-ID macht man ein Semikolon als Spaltentrenner und hinter jedes Semikolon schreibt man die ID des Forums, für das die User subscribed werden sollen.

Über PHPMyAdmin ruft man wieder die Tabelle “forums_watch” auf, klickt auf “Importieren”, sucht die csv-Datei auf der Festplatte heraus, gibt bei Dateiformat CSV an und klickt auf “OK”. Wie das Ganze als sql-Befehl in der Comandline aussehen müßte, weiß ich nicht genau. Vielleicht weiß es ja einer meiner Leser und kann es in den Kommentaren ergänzen.

Button als Link

Wie kann ich einen (Formular-)Button programmieren, dass beim Klick eine entsprechende Seite aufgerufen wird?

Geht am einfachsten so:

HTML-Code:

<form>
<input type=button onClick="window.location.href=’datei.htm’" value="Klick mich!">
</form>


in PHP mit einer Variablen:

$su=$_SERVER[‚HTTP_REFERER‘];   // (<– Hiermit wird die Herkunftsseite ermittelt)

echo ‚<form>‘;
echo ‚<input type=button onClick="window.location.href=\“.$su.’\’" value="Ohne &Auml;nderungen zur&uuml;ck">‘;
echo ‚</form>‘;

 

Ursprung der Problemlösung

Leere Zellen in Tabelle anzeigen

Im CSS wollte ich definieren, dass der Rahmen von leeren Zellen angezeigt wird.
Dies geht mit dem Befehl:

td {
   empty-cells:show;
}

wunderbar.

Leider interpretiert der Internet Explorer diesen Befehl nicht.

Für den IE braucht es den folgenden Befehl für die Tabelle:

table {
    border-collapse:collapse;
}

So hats dann geklappt!

Cursor in Feld fokussieren

Auf einer Login-Seite möchte ich gerne, dass der Cursor gleich im ersten Feld steht.

Dies habe ich wie folgt erreichen können:

<body onload="formName.txtFeldName.focus()">

formName = Name des Formulars
txtFeldName = Name des Feldes

Funktioniert einwandfrei.

Übermittelte Formulardaten anzeigen

Manchmal ist es für Tests angenehm, wenn man sieht, welche Daten bei einem Formular übermittelt werden.

Mit dem Befehl

print_r($_POST);

am Anfang einer PHP-Seite, werden die Daten in der ersten Zeile ausgegeben.

Bsp:
<?php
print_r($_POST);
(restlicher Code der Seite)
?>

Formulardaten wurden nicht übermittelt auf Mac

Hatte in einem Projekt ein Formular eingerichtet, welches bspw. Adressdaten updated.
Das lief auf Linux und Windows ohne Probleme.

Einzig bei Mac war da ein "Hund" begraben: Benutzer mit Mac-Systemen konnten das Formular aufrufen, beim Abschicken wurden die Änderungen dann aber nicht in die Datenbank geschrieben.

Nach langem Suchen kam ich dann dem Problem auf die Schliche:

Die Formularabsendung war so geschrieben: <form name="" action="" method="POST" enctype="text/html">

Probleme machte "enctype="text/html"

Nachdem ich das gelöscht hatte, wurden die Daten problemlos übermittelt.