php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.08.2011, 15:12  
Benutzer
 
Registriert seit: 26.02.2011
Beiträge: 43
PHP-Kenntnisse:
Anfänger
MaNuu kann nur auf Besserung hoffen
Standard [Erledigt] Prüfung ob Wert bereits in DB vorhanden (case sesitive?!)

Hallo,

ich möchte gerne nach dem Abschicken eines Formulars prüfen ob die eingegebenen Werte bereits in der Datenbank vorhanden sind.

Konkrekt geht es um: Name, Vorname, Email

Es soll nur anhand der Email überprüft werden, ob diese schon vorhanden ist.

Ich schicke das Formular ab und übergebe 3 POST Vars an meine add_user.php. In der add_user.php starte ich dann zuerst eine DB-Abfrage
PHP-Code:
$sql1 'SELECT name, vorname, email FROM tabperson WHERE email = "'.$email.'"';
$db_erg1 mysql_query$sql1 );
        if ( ! 
$db_erg1 )
        {
    die(
'Ungültige Abfrage: ' mysql_error());
    }    
$db_pers mysql_fetch_assoc($db_erg1);
    if (
$email == $db_pers['email'])
        {
            echo 
'Der Benutzer ist bereits vorhanden!';
        }....
....
.... 
Wie kann ich die Abfrage jetzt "nicht" Case-sensitiv machen?

Email in DB: test@web.de
Email im Formular: TEST@web.de

In dem Fall fügt er trotzdem den benutzer zu =/ Kann mir jemand einen Tipp geben?

mfg

Geändert von MaNuu (03.08.2011 um 13:51 Uhr).
MaNuu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.08.2011, 15:15  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

LIKE 'email@example.com'

Wenn du LIKE ohne die Prozentzeichen verwendest, ist das wie ein case-insensitives "Gleich"
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 02.08.2011, 15:22  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

PHP-Code:
$sql1 'SELECT name, vorname, email FROM tabperson WHERE LOWER(email) = "' strtolower($email) . '"'
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 02.08.2011, 15:26  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Datenbankabfragen sin im allgemeinen ci (Kollation). Was nicht ci ist, ist dein PHP-Vergleich:
PHP-Code:
$email == $db_pers['email'
Warum machst du den überhaupt? Du kannst auch mysql_num_rows() benutzen. Außerdem gibt es einen Fehler, wenn du kein Ergebnis erhältst - bitte error_reporting und display_errors vernünftig einstellen!
hts ist offline   Mit Zitat antworten
Alt 02.08.2011, 15:54  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Wenn du LIKE ohne die Prozentzeichen verwendest, ist das wie ein case-insensitives "Gleich"
Nein, ist es nicht - es ist dann exakt das Gleiche wie "gleich", d.h. es berücksichtigt ebenso die Collation.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 03.08.2011, 07:56  
Benutzer
 
Registriert seit: 26.02.2011
Beiträge: 43
PHP-Kenntnisse:
Anfänger
MaNuu kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von hts Beitrag anzeigen
Datenbankabfragen sin im allgemeinen ci (Kollation). Was nicht ci ist, ist dein PHP-Vergleich:
PHP-Code:
$email == $db_pers['email'
Warum machst du den überhaupt? Du kannst auch mysql_num_rows() benutzen. Außerdem gibt es einen Fehler, wenn du kein Ergebnis erhältst - bitte error_reporting und display_errors vernünftig einstellen!
Hm wieso denn mysql_num_rows() ? Das liefert doch die Anzahl der gefundenen Datensätze bei einem SELECT zurück. Soll ich dann einfach prüfen ob die Anzahl == 0 ist?!

Bewirkt das nicht im Endeffekt genau das gleiche?


PS: WHERE email = $email ist doch das gleiche wie LIKE = $email oder nicht?!
MaNuu ist offline   Mit Zitat antworten
Alt 03.08.2011, 08:00  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
PS: WHERE email = $email ist doch das gleiche wie LIKE = $email oder nicht?!
Ja, aber da hast Du wieder das Problem TEST@example.com != test@example.com

Workaround: #3
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 03.08.2011, 08:54  
Erfahrener Benutzer
 
Registriert seit: 07.06.2009
Beiträge: 107
PHP-Kenntnisse:
Anfänger
roest befindet sich auf einem aufstrebenden Ast
roest eine Nachricht über ICQ schicken roest eine Nachricht über Skype™ schicken
Standard

Ist es nicht so, das mysql die Groß und Kleinschreibung nicht beachtet außer der Typ ist BINARY?!

Wenn ich einen Nicknamen in die Datenbank schreibe mit dem ich mich einloggen will (bsp. test) dann kann ich mich sowohl mit test als auch mit Test tEst oder TEST einloggen.

Alternativ, wie wäre es wenn du sofort von Beginn an sicherstellt das du nur Kleinbuchstaben in die Datenbank schreibst? (strtolower)

gruß
__________________
May the Source be with you.
roest ist offline   Mit Zitat antworten
Alt 03.08.2011, 09:02  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Wenn ich einen Nicknamen in die Datenbank schreibe mit dem ich mich einloggen will (bsp. test) dann kann ich mich sowohl mit test als auch mit Test tEst oder TEST einloggen.
Kann es sein, daß Deine Umgebung auf Windows läuft? Da wird das nämlich nicht unterschieden.



EDIT
Auch wenn es keine Glanzlösung ist, aber man kann auch den Hash vergleichen, dann ist's auf jeden Fall CaseSensitive:
PHP-Code:
$sql "SELECT irgendwas FROM irgendwo WHERE MD5(irgendwas)='" md5($irgendwas) . "'"
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (03.08.2011 um 09:10 Uhr).
Arne Drews ist offline   Mit Zitat antworten
Alt 03.08.2011, 09:08  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von Arne Drews Beitrag anzeigen
Kann es sein, daß Deine Umgebung auf Windows läuft? Da wird das nämlich nicht unterschieden.
Jetzt verwechselst du aber Datenbank- und Tabellennamen mit Werten. Ersteres hängt vom Dateisystem ab, letzteres von der eingestellten Kollation. Wenn sie mit _ci endet (z.B. utf8_unicode_ci) sind Vergleiche darauf case insensitive, unterscheiden also nicht zwischen Groß- und Kleinschreibung.
fab ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MySQL - Prüfen ob Datensatz bereits vorhanden wenn nicht eintragen wooha PHP Einsteiger 10 19.04.2011 14:08
Prüfen, ob ein Wert bereits in einer PHP Datei gelagert wird? Extremefall PHP Einsteiger 11 21.01.2011 19:23
[Erledigt] Datenbanküberprüfung (Eintrag bereits vorhanden?) DiDi90 PHP Tipps 2010 11 18.10.2010 14:26
Überprüfen ob vorhanden und ob ein feld einen bestimmten wert hat setech Datenbanken 1 17.12.2009 09:40
[Erledigt] MYSQL+PHP prüfen ob Wert schon vorhanden Pascalus PHP Tipps 2009 8 20.10.2009 12:38
PHP Formular mit Daten füllen wenn bereits vorhanden Toasti85 PHP Tipps 2009 2 27.03.2009 11:33
[Erledigt] Transparente Runde Ecken bei Thumbnial realisieren tomtaz PHP Tipps 2008 3 08.07.2008 01:20
prüfen ob bestimmte Spalte bereits vorhanden Matthiasnet Datenbanken 1 19.03.2007 19:27
Werte-Paar bereits in db vorhanden? mercurio Datenbanken 4 07.08.2006 12:22
kontrolle ob bereits vorhanden dsmcg PHP Tipps 2007 6 09.11.2005 10:06
Prüfen ob Benutzername bereits in Datenbank vorhanden ist nicobischof PHP Tipps 2005-2 5 19.10.2005 14:17
Prüfung auf Zahl, Wert in PHP? PHP Tipps 2005-2 1 07.06.2005 10:32
Überprüfugn ob ein Wert in der spalte vorhanden? PHP Tipps 2005 2 05.02.2005 16:16
Array prüfen ob wert vorhanden, wenn ja, wert ändern... PHP Tipps 2005 4 31.01.2005 22:32
[Erledigt] Zählen wie viele Arrays bereits diesen Wert haben PHP Tipps 2004 6 04.09.2004 01:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php wert in datenbank prüfen case sensitiv, php formular überprüfen ob eintrag in der datenbank schon vorhanden ist, datenbank php prüfen ob wert dann, mysql case wenn eintrag existiert, formular check ob wert bereits existiert ??, falls wert schon in db vorhanden, php prüfen ob wert in datenbank sonst, in php prüfen ob zahl in datenbank, wenn nicht anzeigen, ungültiger wert \'case sensitive\', überprüfen ob wert in datenbank bereits vorhanden, php nutzer bereits vorhanden prüfung, mysql prüfen ob datensatz existiert case when, deutsche bahn test prüfung, email überprüfung php, email in datenbank php, überprüfen ob wert in datenbank vorhanden

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum