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 19.10.2011, 12:08  
Neuer Benutzer
 
Registriert seit: 19.10.2011
Beiträge: 2
PHP-Kenntnisse:
Anfänger
Illuminat befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Umlaute im Loginformular und Datenbankabgleich

Morgen,

mein Problem beschäftigt mich die letzten Stunden und finde einfach keinen Lösungsansatz. Um schnell zum Thema zu kommen:

Ich habe ein Loginformular mit 2 input-Feldern und einer select-Auswahl (Mannschaft, Benutzername, Passwort). Der Login dient später für Trainer eines Sportvereins, in dem sie Informationen und Einstellungen zu ihrer jeweils eigenen Mannschaft erstellen können. http://www.vision-technologie.de/teammanager/

Beim Absenden des Formulars und einer Auswahl ohne Umlaute funktioniert alles einwandfrei, doch sobald beispielsweise "männliche A-Jugend" ausgewählt wird, tritt mein Problem auf, nämlich, dass der Login nicht mehr funktioniert. Wer es testen möchte:

Code:
Herren 1 - testuser1 - password1
männliche A-Jugend - testuser6 - password6
Hier der Login:
PHP-Code:
<?php
                
                error_reporting
(E_ALL);
                
ini_set('display_errors'TRUE);
                
                require_once (
"data/data.inc");
                
                
$mysql_connect = @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASSWORT);

                if(
$mysql_connect)
                    {
                        
mysql_query"SET NAMES 'utf8'" );
                        
$mysql_db_connect = @mysql_select_db(MYSQL_DATENBANK$mysql_connect);
                            if(
$mysql_db_connect)
                                {
                                    echo 
'<div>
                                            <form method="post" action="login/index.php" >
                                                <select name="choose_teams">'
;
                                                    
$ergebnis mysql_query("SELECT * FROM teams_bereich ORDER BY teams" );
                                                    while (
$spalte mysql_fetch_array($ergebnis)) {
                                                        
                                                        echo 
'<option value="' $spalte[1] .'">' $spalte[1] . '</option>';
                                                    }
                                                    
                                                echo 
"</select><br />
                                                <input class=\"login_text\" type=\"text\" name=\"username\" value=\"Username\" onfocus=\"if (this.value=='Username') this.value='';\" onblur=\"if (this.value=='') this.value=this.defaultValue;\" /><br />
                                                <input class=\"login_text\" type=\"password\" name=\"password\" value=\"Password\" onfocus=\"if (this.value=='Password') this.value='';\" onblur=\"if (this.value=='') this.value=this.defaultValue;\" /><br />
                                                <input type=\"submit\" name=\"submit\" value=\"Continue with Login\" class=\"login_button_submit\" /><input type=\"reset\" value=\"Zurücksetzen\" class=\"login_button_submit\" />
                                            </form>
                                        </div>"
;
                                }else
                                    {
                                        echo 
ERROR_02 mysql_error();
                                    }
                }else
                    {
                        echo 
ERROR_01 mysql_error();
                }

                
mysql_close($mysql_connect);
                        
            
?>
Hier die Verarbeitung des Logins:
PHP-Code:
<?php
            
                error_reporting
(E_ALL);
                
                require_once (
"../data/data.inc");
                
                
$mysql_connect = @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASSWORT);
                
$mysql_db_connect = @mysql_select_db(MYSQL_DATENBANK$mysql_connect);
            
                @
session_start();     
                if ((isset(
$_POST["submit"])) && ($_POST["username"] != 'Username') && ($_POST["password"] !='Password') && (isset($_POST["choose_teams"]))) {
                
                    
mysql_query"SET NAMES 'utf8'" );
                    
$sql "SELECT * FROM login_usernamen WHERE username = '" mysql_real_escape_string(trim($_POST['username'])) . "' AND password = '" mysql_real_escape_string(md5(trim($_POST['password']))) . "' AND bereich = '" mysql_real_escape_string($_POST["choose_teams"]) . "' ";
                        
                    
$query_login mysql_query($sql) or die("SQL-Query: " $sql " mit Fehler " mysql_error());
                    
$num mysql_num_rows($query_login);
                    
                    if (!
$num){
                        echo 
ERROR_03;
                    }else{
                        echo 
"Login funktioniert.";    
                    }
                }else{
                    echo 
ERROR_04;    
                }
                
                
mysql_close($mysql_connect);
                
            
?>
Mein Ansatz war es mit
Code:
mysql_query( "SET NAMES 'utf8'" );
zu lösen, brachte jedoch keine Besserung, sofern ich es überhaupt richtig eingesetzt habe. (In phpmyadmin sind die Spalten der Teams auf 'utf8_unicode_ci' gestellt).

Ich wäre Euch sehr dankbar über Hilfestellungen und Ansätze zu meinem Problem sowie zur Verbesserung des Codes, da ich stark das Gefühl habe, dass im Bezug zur Richtigkeit, Einfach- und Sicherheit paar Dinge verbessert werden könnten.

PS. es ist mein erstes topic hier, ich habe mir die richtlinien und hinweise durchgelesen: ich hoffe, dass es den erwartungen entspricht
Illuminat ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.10.2011, 12:16  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

und was wenn du die teamid einträgst als value in die option?

PHP-Code:
  while ($spalte mysql_fetch_array($ergebnis)) {
                                                        
 echo 
'<option value="' $spalte['id'] .'">' $spalte['name'] . '</option>';
                                                    } 
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 19.10.2011, 12:20  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Zitat:
Zitat von Illuminat Beitrag anzeigen
... doch sobald beispielsweise "männliche A-Jugend" ausgewählt wird, tritt mein Problem auf, nämlich, dass der Login nicht mehr funktioniert.
Heißt genau?? Wie sieht die "Login-Query" aus? Sind die Umlaute in der query "augenscheinlich" richtig vorhanden? Ist die Datei auch UFT-8 ?

Wenn Du diese query im phpmyadmin laufen läßt, passt es dann?

Und mach bitte die vielen @ weg, die sind einem keine Hilfe beim programmieren sondern oft nur ein Auslöser einer gradionsen Selbstverarschung (wenn man dann dadurch entstehende Folgefehler finden "darf")
LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 19.10.2011, 12:21  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo und willkommen,

hast du den Login mit Umlautgeschichten mal im PHPMyDamin oder HeidiSql, jenachdem was du benutzt mal ausgeführt und geprüft ob da Fehler auftreten?
Desweiteren mache mal die @ Zeichen da weg in dem Code, Fehler darf niemals nicht unterdrücken sondern muss sie fangen und auswerten können.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist gerade online   Mit Zitat antworten
Alt 19.10.2011, 12:51  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Und der Vollständikeit halber sei der hier noch erwähnt
http://www.php.de/adventskalender-20...perlative.html (27: Der ultimative Megakick der Superlative)
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 19.10.2011, 17:40  
Neuer Benutzer
 
Registriert seit: 19.10.2011
Beiträge: 2
PHP-Kenntnisse:
Anfänger
Illuminat befindet sich auf einem aufstrebenden Ast
Standard

wow, sau gut hier. Vielen Dank für die sehr schnelle Antworten

Mittlerweile hat sich Klarheit geschaffen und (bis jetzt) funktioniert alles. Um die Antworten ersteinmal hier durchzugehen: Ja, auch das Dokument war auf Unicode UTF8 eingestellt. Die @ Zeichen hatte ich anfangs gesetzt, da diverse Warnungen aufkamen, mit denen ich nichts anfangen konnte und mir auch keine Ursache erklären konnte (habe leider kein Beispiel mehr). Zum Weiterarbeiten hatte ich aus diesem Grund @ davorgeschrieben. Habe sie mittlerweile wieder rausgehauen - Warnungen kommen seltsamerweise keine mehr.

Lösung, die ich noch nicht zu 100% verstehe und auf die ich nur durch einen Hinweis von einem Kumpel kam, ist folgende:
Sämtliche Datensätze existierten bereits als ich das Problem mit
PHP-Code:
mysql_query ("SET NAMES 'utf8'"); 
anging. Nachdem ich nun einen neuen Datensatz hinzugefügt habe funktioniert alles, auch mit Umlauten.
Illuminat 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] Zeichenkodierung verhunzt grosse Umlaute PHPascal PHP Einsteiger 14 26.05.2011 21:14
MySql Umlaute Problem zusätzliches Zeichen à claxan PHP Einsteiger 1 10.05.2011 18:28
[Erledigt] Umlaute (&amp;auml;) umwandeln chr1s-eg PHP Einsteiger 10 24.01.2011 12:41
[Erledigt] Umlaute werden nicht erkannt Phoenix@ PHP Tipps 2010 8 30.08.2010 11:05
[Erledigt] PHPMailer und Umlaute Sirius PHP Tipps 2010 14 30.03.2010 15:14
Umlaute und MySQL4.1 Datenbanken 2 15.11.2009 15:28
MySQL Konsole und Umlaute unter Windows [LÖSUNG] f4ckm5 Datenbanken 8 30.03.2009 22:10
[Erledigt] Umlaute und Sonderzeichen decodieren Sermon PHP Tipps 2009 9 27.03.2009 08:18
Umlaute und str_replace MatzeMuc86 PHP Tipps 2008 20 22.10.2008 20:41
Umlaute in Datenbank Eldra PHP Tipps 2008 3 14.05.2008 07:11
XML parsen und Umlaute betterknower PHP Tipps 2008 6 31.12.2007 18:35
Umlaute bei Linux flual2000 PHP Tipps 2006 10 28.04.2006 13:12
Umlaute... JK PHP-Fortgeschrittene 7 07.12.2005 20:55
Umlaute in Dateien per CLI in HTML-Entities umwandeln PHP-Fortgeschrittene 5 19.07.2005 09:06
[Erledigt] Umlaute werden falsch maskiert PHP Tipps 2004-2 4 11.11.2004 13:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
if (!@mysql_connect, php login mit umlaute, php umlaute login

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:14 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