Kategori PHP

PHP: ldap_sort() case sensitivity

Freitag, November 6th, 2009

Irgend wie ist die PHP Funktion ldap_sort() gaggi, den sie sortiert case sensitivity erst alles was groß ist und dann alles was klein ist. Da das keinen Sinn mach habe ich das mal per Hand geschrieben:

foreach($result as $key => $value)
	if(is_int($key))
		$a[$key] = strtolower($value[GIVENNAME][0]);  //Order By
asort($a);		
$b['count'] = $result['count'];
$i=0;
foreach($a as $key => $value)
	$b[$i++] = $result[$key]; 
//print_r($b)

PHP CLI Bug

Mittwoch, Juni 3rd, 2009

Oh man wie dämlich war den das. Im Errorlog tauchte folgende Fehlermeldung auf:
[03-Jun-2009 10:11:50] PHP Warning: include_once(1): failed to open stream: No such file or directory in /var/www/... on line 8
Line 8 Besagt: include_once("/var/www/include/inc.php");

Das in meinem Log include_once(1) stand hat mich dann doch etwas stutzig gemacht. Als ich das dann nach (string) getypecastet habe wir mir klar das ist ein Bug.
include_once((string)"/var/www/include/inc.php");
include_once('/var/www/include/inc.php');

Aufgetreten unter Fedora Core 9 PHP Version 5.2.6

Internet Explorer und die interpretation von Buttons

Dienstag, Dezember 16th, 2008

Komischer weise ist das mir noch nie aufgefallen aber als ich heute einen Bug fixen sollte, war ich mal wieder richtig geschockt wie sich der IE mal wieder mit Händen und Füßen gegen Standards wärt.

<button type="submit" name="mode" value="preview">Vorschau</button>
<button type="submit" name="mode" value="insert">speichern</button>

Beim klicken auf den Button „Vorschau“ passiert folgendes:

  • Der IE 6 (und älter) überträgt mode=Vorschau&mode=speichern
    – das Script wertet den letzten Wert aus, also mode=speichern
  • Der IE 7 überträgt mode=Vorschau
  • Opera und Firefox übertragen mode=preview

So bekam ich im IE eine PHP Error, den ich mir nicht erklären konnte da im FE lief alles lief. Und normalerweise PHP ja auf dem Server kompiliert. Da aber im value eine ID stand und im dem IE ein Sting übergeben wurde, war der fehler gefunden.

Lösung:
Entweder hidden Felder nutzen oder links verwenden.

Quelle: notizen.joergkrusesweb.de

nslookup for validate e-mail

Montag, September 8th, 2008

Da hat mich Chef doch mal wieder auf eine Interessante Idee gebracht. Um zu überprüfen ob eine E-Mail Adresse existiert, haben wir einen nslookup auf den MX Eintrag der Domain gemacht. So finden wir heraus ob eine E-Mail überhaupt zugestellt werden kann.

Dies könnte man jetzt noch weiter übertreiben, indem man eine Verbindung nach 25 aufmacht und testet ob der Empfänger existiert. Dies ist aber auf Grund von Graylisting und co. nicht möglich.

function nslookupMX($email)
{
  list($user,$domain) = split("@",$email);
  //TODO: NSLOOKUP php function nutzen
  exec('nslookup -q=mx '. $domain, $nslookup);
  // Non-authoritative answer
  // NXDOMAIN
  foreach($nslookup as $value)
  {
    // Schlüssel wörter von nslookup feddora 9 ggf. anpassen. 
    if(strpos($value, 'NXDOMAIN') || strpos($value, 'Non-authoritative'))
    {
      return false;
    }
  }
  return true;
}

Beispiel Code! Code so nicht im Einsatz! Durch die excec function ist die function anfällig für hecking.