!in_array
Bernd
- php
Hallo,
was mache ich hier falsch?
$erlaubteMailAdressen = array("example.com, example.info");
$email = 'xxxx@example.com';
$user = strstr($email, '@', false);
$user = str_replace('@', "", $user);
echo $user;
if (!in_array($user, $erlaubteMailAdressen)) {
echo "Endung nicht gefunden";
}
Es wird immer gesagt "Endung nicht gefunden" Mein example steht doch im array.
Hallo
$erlaubteMailAdressen = array("example.com, example.info"); $email = 'xxxx@example.com'; $user = strstr($email, '@', false); $user = str_replace('@', "", $user); echo $user; if (!in_array($user, $erlaubteMailAdressen)) { echo "Endung nicht gefunden"; }
Es wird immer gesagt "Endung nicht gefunden" Mein example steht doch im array.
Betriebsblind? Im Array steht das Element example.com, example.info
, mehr nicht.
Tschö, Auge
Betriebsblind? Im Array steht das Element
example.com, example.info
, mehr nicht.
Das gleiche steht doch auch in $user, also vergleiche ich beide miteinander?
Hallo
Betriebsblind? Im Array steht das Element
example.com, example.info
, mehr nicht.Das gleiche steht doch auch in $user, also vergleiche ich beide miteinander?
Nein, dort steht nur „example.com“ oder „example.info“ aber nicht „example.com, example.info“. Wird's nun klarer?
Tschö, Auge
Jetzt habe ich es verstanden, danke!
$erlaubteMailAdressen = array('example.com', 'example.info');
$email = 'xxxx@example.com';
$user = strstr($email, '@', false);
$user = str_replace('@', "", $user);
if (!in_array($user, $erlaubteMailAdressen)) {
echo "Endung nicht gefunden";
}
Das wird dann umständlich, denn die Werte für erlaubteMailAdressen wollte ich aus einer Datenbank auslesen. Füllen kann dieses über ein Textfeld. Das heißt beim Eintragen muss ich genau auf die Schreibweiße achten.
Hallo,
Das heißt beim Eintragen muss ich genau auf die Schreibweiße achten.
Wobei eigentlich die Farbe des Eintrags nicht so die Rolle spielen sollte…
Gruß
Kalk
Ich schreibe gerne auf weiß!
Tach!
was mache ich hier falsch?
Du verwendest anscheinend nach wie vor keine Debugging-Methoden, um zu überprüfen, was in deinen Variablen steht.
if (!in_array($user, $erlaubteMailAdressen)) { echo "Endung nicht gefunden"; }
Es wird immer gesagt "Endung nicht gefunden" Mein example steht doch im array.
Dann prüfe, ob es wirklich so ist.
<pre>
<?php
var_dump($user);
var_dump($erlaubteMailAdressen);
Vielleicht fällt dir ja was an $erlaubteMailAdressen auf ...
dedlfix.
Hallo,
als Ausgabe erhalte ich dieses
string(11) "example.com"
array(1) {
[0]=>
string(25) "example.com, example.info"
}
Und mit
!in_array($user, $erlaubteMailAdressen)
frage ich doch, ist $user in $erlaubteMailAdressen und dieses ist ja der Fall?
Hallo Bernd,
!
Bis demnächst
Matthias
Tach!
als Ausgabe erhalte ich dieses
string(11) "example.com" array(1) { [0]=> string(25) "example.com, example.info" }
Und mit
!in_array($user, $erlaubteMailAdressen)
frage ich doch, ist $user in $erlaubteMailAdressen und dieses ist ja der Fall?
Du fragst, ob der Wert in $user ein Element in $erlaubteMailAdressen ist. Ist es aber nicht. Da steht nur ein Element drin und das hat einen anderen Wert.
dedlfix.
Ok, ich habe es jetzt hinbekommen
$erlaubteEndungen = 'example.com, example.info';
$erlaubteEndungen = explode(',', $erlaubteEndungen);
$erlaubteEndungen = array_map('trim', $erlaubteEndungen);
$email = 'xxxx@example.com';
$user = strstr($email, '@', false);
$user = str_replace('@', "", $user);
if (!in_array($user, $erlaubteEndungen)) {
echo "Endung nicht gefunden";
}