filter_var() & mail()

EuroCent

Klappstuhl 2.0
Hallo,

folgendes Problem:

Ich hatte vor mit filter_var() eine oder mehrere eMails auf die Richtigkeit zu checken, nur bekomm ich halt eine Fehler meldung auf grund da mein PHP über dem 5.2.0 liegt und somit keine Funktionalität mehr aufweist

gibt es hier zu möglichkeiten diese doch noch zum einsatz zu bringen?

Beipsielsweise mit einer eigenen klasse?

Ich habe mich mit der Validät der eMail noch nie den Kopf zerbrochen da es meist nur im Kontaktformularen war und ich es nicht so für wichtig hielt

Doch jetzt habe ich ein Projekt welches sich darauf bezieht das man Bug-Reports an mich oder meiner anderen Admins senden kann und da muss gewährleistet sein das auch eine funktionale eMail und eine Gültige eMail adresse angegeben wird.

Dann hab ich noch eine Frage diesbezüglich der mail-Funktion

Kann ich ohne weiteres HTML versenden?

Beispiel:

HTML:
<html>
<style type="text/css">
body {
background-color: #555;
color: #fff;
}
</style>
<body>
<h1>Bug-Report</h1>
<p>Von: {email} &raquo; Datum: {time}</p>
<p>Betreff: {betreff}</p>
<br />
<p>Nachricht:</p>
<p>{message}</p>
</body>
</html>

oder gibt es hierfür auch eine Art Klasse die man verwenden kann/sollte damit dies formhalbver und sauber an den Empfänger geht?

MfG

Lenox
 
Moin,



Was bekommst du da für eine Fehlermeldung?:eek:

filter_var() ist ja erst ab 5.2.0 inklusive....wenn dein PHP neuer ist, sollte es da keine Fehler geben.

Achso dann hab ich das wohl falsch Interprediert ^^

Fatal error: Call to undefined function filter_var() in /usr/export/www/vhosts/funnetwork/hosting/pristontale2/contact.php on line 7

Hier die Zeile

PHP:
$email = htmlspecialchars(filter_var($_REQUEST['email'], FILTER_VALIDATE_MAIL));

selbst ohne htmlspecialchars() bekomm ich die meldung

PHP:
$email = filter_var($_REQUEST['email'], FILTER_VALIDATE_MAIL);

Aber laut php.net sollte dies so funtionieren aber keine ahnung woran es liegt -.-
 
Und du bist sicher, dass du ein PHP 5.2.0 oder höher hast?

Laut Funpic über phpinfo();

Bekomm ich die Version: PHP 5.2.9 angezeigt

Eventuell liegt es am Freehoster... Local hab ich es noch nicht getestet

Aber gibt es da eine weitere möglichkeit dies konstruktiv zu überprüfen?

Damit ich zwei sachen hab bevor ich es dann endgültig an meine richtige Domain hochlade?
 
Auf Freehoster würde ich mich grundsätzlich nicht verlassen...

Wenn du wirklich sicher sein willst...

  • 1. lokal entwickeln und testen
  • 2. Entwicklungsumgebung... Am besten als geschlossene Subdomain deiner Hauptdomain
  • 3. Live gehen

Das sind die Schritte die ich durchführe... Dabei achte ich darauf, dass beide Entwicklungsumgebungen die gleiche Konfiguration verwenden...
Was bei Windows vs. Linux schon mal ein Problem sein kann, aber bisher fast immer geklappt hat.
 
Auf Freehoster würde ich mich grundsätzlich nicht verlassen...

Wenn du wirklich sicher sein willst...

  • 1. lokal entwickeln und testen
  • 2. Entwicklungsumgebung... Am besten als geschlossene Subdomain deiner Hauptdomain
  • 3. Live gehen

Das sind die Schritte die ich durchführe... Dabei achte ich darauf, dass beide Entwicklungsumgebungen die gleiche Konfiguration verwenden...
Was bei Windows vs. Linux schon mal ein Problem sein kann, aber bisher fast immer geklappt hat.

Da magst du recht haben nur hab ich zwar eine Domain nur noch kein passenden Hoster :p

Daher ist es halt etwas schwer nur Local alles zu testen und zum schluss läuft es nur zur hälfte Online und genau das will/möchte ich vermeiden

Daher wäre mir eine Alternative zum Testen lieber als alles oder zum Teil darauf vorerst zu verzichten und mir einen Hoster nur zwecks dessen mir anzulegen!
 
Hi,

dann musst Du Dir nach Fertigstellung Deiner Seite ein Hostingpaket aussuchen, das Deinen Ansprüchen genügt. Es steht ja im Manual bei jeder Funktion dabei, ab welcher Version sie verfügbar ist nebst fetten Warnhinweisen, falls bestimmte php.ini-Einstellungen notwendig sind. Auf Hostern, wie funpic zu testen, ergibt da wirklich am wenigsten Sinn, wenn die Seite nachher ganz woanders laufen soll.

LG
 
Naja...filter_var setzt ja eine PHP-Erweiterung vorraus, und zwar lib_filter

Diese ist zwar standardmässig ab PHP5.2.0 verfügbar, aber natürlich hat man(funpic.de) die Option, diese Erweiterung zu deaktivieren(was ja funpic mit recht vielen Erweiterungen tut).

Deswegen würde ich die Entwicklung auf einem lokalen Test-Umgebung(mit PHP5.2...-Standardeinstellungen) vornehmen, und nach Fertigstellung ein äquivalentes Hosting-Paket aussuchen wie von Karin beschrieben.
 
Naja...filter_var setzt ja eine PHP-Erweiterung vorraus, und zwar lib_filter

Diese ist zwar standardmässig ab PHP5.2.0 verfügbar, aber natürlich hat man(funpic.de) die Option, diese Erweiterung zu deaktivieren(was ja funpic mit recht vielen Erweiterungen tut).

Deswegen würde ich die Entwicklung auf einem lokalen Test-Umgebung(mit PHP5.2...-Standardeinstellungen) vornehmen, und nach Fertigstellung ein äquivalentes Hosting-Paket aussuchen wie von Karin beschrieben.

Ich hab das jetzt wie folgt lösen können

PHP:
function checkMailValid( $email ) {
    $nonascii      = "\x80-\xff";    
    $nqtext        = "[^\\\\$nonascii\015\012\"]";
    $qchar         = "\\\\[^$nonascii]";
    $normuser      = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
    $quotedstring  = "\"(?:$nqtext|$qchar)+\"";
    $user_part     = "(?:$normuser|$quotedstring)";
    $dom_mainpart  = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
    $dom_subpart   = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
    $dom_tldpart   = '[a-zA-Z]{2,5}';
    $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";
    $pattern       = "$user_part\@$domain_part";
    
    if (!preg_match( "/^$pattern$/", $email )) {
		return FALSE;
	} else {
		return TRUE;
	}
}

Ich glaub das hab ich von hier irgendwo her xD keine Ahnung mehr

Allerdings würde mich ds mit dem Mail versand noch sehr interessieren, gibt es da was spezifiales?
 

Neue Beiträge

Zurück