Zur Navigation

Liste von Email adressen prüfen vor Kontaktformular [2]

vor dem Kontakktvormular absenden

11 Marko

Hallo
Jörg, Danke

Ich habe in der email1.php
"
if(empty($_POST['betreff'])){
				$meldungen .= "Bitte geben Sie Ihr Profil und Profilnummer (Beispiel = Profil-1) ein.<br>";
				$error = 1;
			}
			
			if(empty($_POST['email'])){
				$meldungen .= "Bitte geben Sie eine registrierte E-mail-Adresse ein oder Sie sind nicht registriert?<br>";
				$error = 1;
			} elseif(! check_profile_email($_POST['email'; 'betreff'])) {
            $meldungen .= "Die Emailadresse befindet sich nicht in der Liste der registrierten Emailadressen.<br>";
            $error = 1;
			}

Bei Aufruf kommt immer Fehler in zeile 44?

} elseif(! check_profile_email($_POST['email'; 'betreff'])) {

Profile_number ist bei mir betreff.
function check_profile_email($betreff, $email) {
Habe alle in betreff abgeändert, sofern das nichts ausmacht?

Warte, habe die Fehlermeldung beseitigt, teste weiter.

Gruß
Marko

31.01.2017 14:49 | geändert: 31.01.2017 15:06

12 Jörg Kruse

Die Reihenfolge der Argumente in der Funktionsdefinition ist ja diese:

function check_profile_email($profile_number, $email) {

Entsprechend muss die Funktion dann so aufgerufen werden:

} elseif(! check_profile_email($_POST['betreff'], $_POST['email'])) {

... vorausgesetzt, $_POST['betreff'] enthält die Profilnummer :)

31.01.2017 15:13

13 Marko

Hallo
Jörg

Ich wollte eine 2. Regel einbinden, so funktioniert alles bestens.

require_once('func.inc.php') ('datei.inc.php');

So lädt es aber das Kontaktformular nicht mehr?

Habe gerade das gefunden, muss ich alles an die neue Zeile anpassen.
Ich teste das mal.

function check($name, $betreff, $email)

Beste Grüße
Marko

19.02.2017 18:01 | geändert: 19.02.2017 18:19

14 Jörg Kruse

Eine Funktion kann nicht mehrere Klammerausdrücke enthalten

Wenn du mehrere Dateien einbinden möchtest, musst du die Funktion require_once() entsprechend mehrfach aufrufen:

require_once('func.inc.php');
require_once('datei.inc.php');

20.02.2017 11:20

15 Marko

Hallo

Habe jetzt 2 Dateien
Die eine prüft die mail und die Profilnummer.

function check_profile_email($betreff, $land, $email) {
    // Profilnummern mit Emailadressen:
    $white_list = array(
        1 => 'mail-adresse',
        2 => 'mail adresse',
        21 => 'mail adresse'
    );
   if (! empty($white_list[$betreff] && $white_list[$betreff] == $email)) {    return false;
}

Die 2. Datei soll zusätzlich das Land nach Eingabe mit der Profilnummer prüfen. $betreff=Profilnummer und $land=Land

Wenn ich es so verwende läuft der Kontakt durch, da die mail Adresse und Profilnummer ja in Datei 1 schon vorhanden sind, da arbeitet es die 2 Datei wohl nicht mehr ab?

Gruß Marko

Das Kontaktformular ist um Land erweitert worden.

23.02.2017 20:47

16 Marko

Hallo
Hatte es gerade gelöst, legte eine 2. Datei an in der ich nur die Emailadressen für Deutschland eintrage und habe diese dann eingebunden.

So kann niemand aus einem andren Land schreiben.

so geht es.

Habe dann natürlich 2 oder mehrere Dateien mit adressen, welche ich im Auge behalten muss.
Ob das jetzt die feine ist , egal.

23.02.2017 21:34 | geändert: 23.02.2017 21:35

17 Jörg Kruse

Man kann die Whitelist auch auf ein mehrdimensionales Array erweitern, so dass einer Profilnummer mehrere Werte zugeordnet werden können. Wobei ich diese Whitelist auch aus der Funktion auslagern würde

<?php

function check_profile($profile_number, $email_address, $country_code, $white_list) {
    if (
        ! empty($white_list[$profile_number]) &&
        $white_list[$profile_number][0] == $email_address &&
        $white_list[$profile_number][1] == $country_code
    ) {
        return true;
    }
    return false;
}

// Whitelist mit Profilnummern, Emailadressen und Länder-Codes:
$white_list = array(
    1 => array('abc@example.com', 'de'),
    6 => array('def@example.com', 'ch'),
    42 => array('ghi@example.de', 'de')
);

// Test-Werte:
$profile_number = 42;
$email_address = 'ghi@example.de';
$country_code = 'de';

if (check_profile($profile_number, $email_address, $country_code, $white_list)) {
    echo 'OK';
} else {
    echo 'nicht OK';
}

Das ganze ist dann auch beliebig erweiterbar

24.02.2017 10:47

18 Forum

Da die letzte Frage nichts mit der Überprüfung der Emailadressen zu tun hat, habe ich die letzten Beiträge in einen eigenen Thread verschoben:

Immer gleiche Absender-Adresse

30.09.2017 15:54 | geändert von Jörg: 30.09.2017 15:55

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]