leerzeichen entfernen?

Daaguru

Erfahrenes Mitglied
Hi Tuto-Team,

ich versuche auf simple Art und Weise, ein Formular auszuwerten.
Die Daten werden dann, wenn diese nicht in der DB vorhanden sind, gespeichert.

Wenn ich jetzt angenommen, einen Datensatz mit User=Daniel und Email=Daniel@Daniel.de habe, wird der Datensatz nicht gespeichert,
wenn er schon vorhanden ist. Füge ich aber VOR - oder NACH Daniel Leerzeichen hinzu, wird der Eintrag trotzdem gespeichert.
Wieso? Schließlich trim() ich ja die $_POST[] variablen davor.

Ich dachte erst an eine ganz einfache Routine überprüfung die wie folgt aussieht:
PHP:
$trimuser=trim($_POST[user]);
$trimemail=trim($_POST[email]);

$abfrage="SELECT * FROM members WHERE user='$trimuser' AND  email='$trimemail'";
$ergebnis=mysql_query($abfrage) or die(mysql_error());

while  ($zeile=mysql_fetch_array($ergebnis)) {
    $user=$zeile['user'];
    $email=$zeile['email'];
}
if (@stristr($trimuser ,@$user)) {
    @$fehler.= "<tr><td>- Der User <b>".@$user." </b>ist schon vorhanden.</td></tr>";
    $check="0";
}
if (@stristr($trimemail, @$email)) {

    @$fehler.= "<tr><td>- Die Email <b>".@$email." </b>ist schon vorhanden.</td></tr>";
    $check="0";
}
if (@$check!="0") {
    @mysql_query(@$abfrage1);
    echo "Die Daten wurden erfolgreich eingefügt.";
}   else {
    echo "<table width=\"60%\" style=\"border-width:3px; border-color:red; border-style:solid;\">";
    echo "<tr><td><b>Folgende Fehler sind aufgetreten:</b></td></tr>";
    echo @$fehler;
    echo "</table>";
    include "register.php";
}

Mit freundlichen Grüßen

~daA|guRu~
 
Code:
while  ($zeile=mysql_fetch_array($ergebnis)) { 
    $user=$zeile['user']; 
    $email=$zeile['email']; 
}
bei der roten Klammer wird deine while-Schleife beendet...daher werden die übermittelten Daten lediglich mit den Werten des letzten Datensatzes verglichen.

Es dürfte weiterhin weitaus praktischer sein, dir per Query lediglich Anzahl der betroffenden Datensätze(mit identischen Daten) aus der DB zu holen....du musst ja schliesslich nur wissen, ob welche existieren....wozu da u.U. Tausende Array-Elemente durchlaufen.
 
Zuletzt bearbeitet:
Da gibts viele Möglichkeiten,
z.B. so:
PHP:
<?php
if(isset($_POST['user'])&&isset($_POST['email']))
    {
    $abfrage="SELECT DISTINCT email,user
                FROM members
                    WHERE
                        user='".trim($_POST['user'])."'
                    OR
                        email='".trim($_POST['email'])."'";


    $ergebnis=mysql_query($abfrage) or die(mysql_error());

    if(mysql_num_rows($ergebnis)>0)
        {
        while($zeile=mysql_fetch_array($ergebnis))
            {
            if($zeile['user']==trim($_POST['user']))
                {
                echo 'Username <i>'.$zeile['user'].
                        ' </i>ist bereits vorhanden<br>';
                }
            if($zeile['email']==trim($_POST['email']))
                {
                echo 'eMail <i>'.$zeile['email'].
                        ' </i>ist bereits vorhanden<br>';
                }
            }
        }

    else
        {
        //Daten eintragen
        echo 'Daten eingetragen!';
        }

    }
?>

Das spart dir und der DB, deine komplette UserTabelle auszulesen.
 
Zurück