Archiv

Artikel Tagged ‘PHP’

PHP Debugging mit einer MessageBox

15. Januar 2009 Keine Kommentare

Vom Job her schätze ich die Funktion einer MessageBox um Scripte zu debuggen, bzw zum schauen was zu welcher Zeit in einer Variable ist.

Dies habe ich nun nach PHP adaptiert und eine Funktion gebaut die den Inhalt einer Variablen ausgeben kann:

<?
function mgb ($value) {
    $value = preg_replace("/\r\n|\r|\n/s", "\\n", $value);
?>
<script language="JavaScript" type="text/javascript">
    alert ("<? echo $value; ?>");
    </script>
<?
}
?>

Popularity: 3% [?]

Twitter It!
KategorienPHP Tags:

Umlaute in der PHP mail() Funktion

8. Januar 2009 2 Kommentare

Dieses Problem kennen wahrscheinlich die meisten Benutzer welche die mail() Funktion von PHP benutzen und das Subject im Formular definieren lassen, bzw als Absendernamen einen Namen mit Umlauten benutzen möchten.

Mit diesem Code kann die mail() Funktion mit Umlauten umgehen:

<?php
$From = "Jürgen Müstermän ";
$Subject = "Viele Umlaute: äöü und ein ß natürlich!";

$header = "MIME-Version: 1.0\r\n";
$header .= "From: =?ISO-8895-15?Q?".imap_8bit($From)."?=\r\n";

mail("test@test.net", "=?ISO-8859-15?Q?".imap_8bit($Subject)."?=\r\n","$body,$headers);
?>

Wenn in PHP das IMAP Modul nicht enigebaut ist, funktioniert die PHP Funktion “imap_8bit” nicht. Deshalb empfehle ich an dieser Stelle als Ersatz diese Funktion:

<?php function quoted_printable_encode($sText,$bEmulate_imap_8bit=true) {
// split text into lines
$aLines=explode(chr(13).chr(10),$sText);

for ($i=0;$i
$sLine =&amp; $aLines[$i];
if (strlen($sLine)===0) continue; // do nothing, if empty

$sRegExp = '/[^\x09\x20\x21-\x3C\x3E-\x7E]/e';

// imap_8bit encodes x09 everywhere, not only at lineends,
// for EBCDIC safeness encode !"#$@[\]^`{|}~,
// for complete safeness encode every character :)
if ($bEmulate_imap_8bit)
$sRegExp = '/[^\x20\x21-\x3C\x3E-\x7E]/e';

$sReplmt = 'sprintf( "=%02X", ord ( "$0" ) ) ;';
$sLine = preg_replace( $sRegExp, $sReplmt, $sLine );

// encode x09,x20 at lineends
{
$iLength = strlen($sLine);
$iLastChar = ord($sLine{$iLength-1});

//              !!!!!!!!
// imap_8_bit does not encode x20 at the very end of a text,
// here is, where I don't agree with imap_8_bit,
// please correct me, if I'm wrong,
// or comment next line for RFC2045 conformance, if you like
if (!($bEmulate_imap_8bit &amp;&amp; ($i==count($aLines)-1)))

if (($iLastChar==0x09)||($iLastChar==0x20)) {
$sLine{$iLength-1}='=';
$sLine .= ($iLastChar==0x09)?'09':'20';
}
}    // imap_8bit encodes x20 before chr(13), too
// although IMHO not requested by RFC2045, why not do it safer :)
// and why not encode any x20 around chr(10) or chr(13)
if ($bEmulate_imap_8bit) {
$sLine=str_replace(' =0D','=20=0D',$sLine);
//$sLine=str_replace(' =0A','=20=0A',$sLine);
//$sLine=str_replace('=0D ','=0D=20',$sLine);
//$sLine=str_replace('=0A ','=0A=20',$sLine);
}

// finally split into softlines no longer than 76 chars,
// for even more safeness one could encode x09,x20
// at the very first character of the line
// and after soft linebreaks, as well,
// but this wouldn't be caught by such an easy RegExp
preg_match_all( '/.{1,73}([^=]{0,2})?/', $sLine, $aMatch );
$sLine = implode( '=' . chr(13).chr(10), $aMatch[0] ); // add soft crlf's
}

// join lines into text
return implode(chr(13).chr(10),$aLines);
}
?>

Quelle PHP.net Kommentar von UMU

Wer sich für die ISO 8859-1 Codierung interessiert, den Verweise ich auf die Tabelle ISO 8859-1 (PDF)

Popularity: 8% [?]

Twitter It!
KategorienPHP Tags: ,

Die 10 grössten Schwachstellen in PHP

4. Januar 2009 Keine Kommentare

Auf DZone habe ich eine interessante Aufstellung der 10 grössten PHP Schwachstellen gefunden:

PHP Code: Top Ten Security Vulnerabilities

Popularity: 1% [?]

Twitter It!
KategorienPHP Tags:

CMSMS: Externe Links über eine interne Seite schleusen

1. Januar 2009 Keine Kommentare

Vor kurzem habe ich aufgrund eines Post im CMS Made Simple Forum zwei Funktionen geschrieben mit denen man dies bewerkstelligen kann.

Die erste Funktion wird zur Erstellung des externen Links verwendet:

{exturl cmspage="extpage" exturl="http://example.com"}

Mit dem Parameter “cmspage” wird angegeben auf welche Seite der Link umgeleitet wird. Der Parameter “exturl” enthält den Link. Bevor der Besucher auf die verlinkte Seite gehen kann, wird er so auf die Seite mit dem Alias “extpage” geleitet. Auf dieser Seite wird der Tag

{exturlpage}

eingefügt. Dieser ist für die Weiterleitung auf die externe Seite verantwortlich.

Die beiden Funktionen müssen in den /plugin Ordner der CMS Made Simple installation abgelegt werden.

Download exturl Funktion

Ich lehne jegliche Verantwortung für Fehler in der Programmierung oder schäden welche durch die Installation oder den Betrieb der Funktionen entstanden sind ab.

Popularity: 1% [?]

Twitter It!
KategorienCMS Made Simple, PHP Tags: ,
Get Adobe Flash player