Überprüfung ob String Bestandteil eines Arrays ist
Auge
- php
Hallo
Ich will überprüfen, ob eine Emailadresse schon Bestandteil
einer Datenbank ist.
if ($eintrag=="pos") // Wenn eingetragen werden soll
{
if (empty(trim($mailadr))) // Wenn keine Adresse angegeben wurde
{
echo "Es wurde keine Emailadresse angegeben.";
}
else // Wenn Adresse angegeben wurde
{
$mailtext = file($liste);
if (in_array($mailadr, $mailtext)) // Wenn die Adresse schon da
{
echo "Ham wa schon!";
}
else // Wenn Adresse noch nicht eingetragen
{
//Prüfen per preg_match(), Eintrag in die DB
}
usw. usf.
$liste ist die *.txt Datei mit den Emailadressen.
Per file() wird sie in ein Array überführt und mit in_array()
auf das Vorhandensein von $mailadr geprüft.
Trotzdem die angetestete Emailadresse schon in der DB ist,
wird else (Wenn Adresse noch nicht eingetragen) ausgeführt.
Hab' ich einen Denkfehler mit in_array() oder der
Formulierung der if- und else-Anweisungen?
Tschüß, Auge
Hallo!
Ich will überprüfen, ob eine Emailadresse schon Bestandteil
einer Datenbank ist.
if ($eintrag=="pos") // Wenn eingetragen werden soll
{
if (empty(trim($mailadr))) // Wenn keine Adresse angegeben wurde
{
echo "Es wurde keine Emailadresse angegeben.";
}
else // Wenn Adresse angegeben wurde
{
$mailtext = file($liste);
if (in_array($mailadr, $mailtext)) // Wenn die Adresse schon da
{
echo "Ham wa schon!";
}
else // Wenn Adresse noch nicht eingetragen
{
//Prüfen per preg_match(), Eintrag in die DB
}
auf den ersten Blick siehts gut aus. Geb mal irgendwo print_r($mailtext) aus und gucke ob die Adresse Tatsächlich als ein element in dem Array steht, oder ob da igrendwelche Leerzeichen oder was weiß ich bei stehen(im Quelltext der Ausgabe!).
Die Datei mit den Adressen enthält auch pro Zeile nur eine emailadresse, sonst nichts?
Grüße
Andreas
Hallo
if ($eintrag=="pos") // Wenn eingetragen werden soll
{
if (empty(trim($mailadr))) // Wenn keine Adresse angegeben wurde
{
echo "Es wurde keine Emailadresse angegeben.";
}
else // Wenn Adresse angegeben wurde
{
$mailtext = file($liste);
for($x=0;$x<(count($mailtext));$x++)
{
$mailtext[$x] = rtrim($mailtext[$x]);
}
if (in_array($mailadr, $mailtext)) // Wenn die Adresse schon da
{
echo "Ham wa schon!";
}
else // Wenn Adresse noch nicht eingetragen
{
//Prüfen per preg_match(), Eintrag in die DB
}
Die Datei mit den Adressen enthält auch pro Zeile nur eine emailadresse, sonst nichts?
Bis auf den Zeilenumbruch nichts! :-)
Danke für den Tip.
Tschüß, Auge