Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
mitgliederlogin [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
mitgliederlogin


 
floriankf
15-08-2006, 12:48 
 
Hallo!

Ich bastel zurzeit an ein Mitgliederverwaltungssystem. Wenn ich mich einlogge, dann ist es egal ob mein Benutzername (Florian) so FlOriAn oder florian geschreiben wird, ich komme in den memberbereich.
Wie kann ich das machen, das nur der richtig geschriebene Benutzername ins System darf?

hier ist der code von der datei, die dafür zuständig ist:


<?php

session_start();

include('config.php');
include('inc/db.php');

$uid = $_POST['uid'];
$pwd = md5(trim($_POST['pwd']));

if ($uid == "")
{
$err = "yes";
}
if ($pwd == "")
{
$err = "yes";
}
if ($err == "yes")
{
echo "<Script>alert('Die Felder dürfen nicht leer sein!')</script>";
echo "<Script>history.back(-1)</script>";
}

db_connect();

$res = mysql_query("SELECT * FROM users WHERE uid='$uid' AND pwd='$pwd' AND status='1'");
$re = mysql_fetch_array($res);

if(mysql_num_rows($res) != 0) {

$_SESSION['uid'] = $uid;
header("Location: ".USERACCOUNT_HREF);

} else {

echo "<Script>alert('Dein Benutzername oder Passwort ist falsch! Falls du dich erst vor kurzem angemeldet hast, dann warte bitte bis ein Admin deinen Account freischaltet.')</script>";
echo "<Script>history.back(-1)</script>";

}

db_disconnect();

?>


ich hoffe, ihr wüsstet da eine lösung *g*

gruß flo

 
wahsaga
15-08-2006, 13:08 
 
Anderen Spaltentyp in der DB wählen, oder den Vergleich explizit case-sensitive durchführen lassen, Stichwort BINARY, siehe Manual.

 
jmc
15-08-2006, 13:13 
 
bitte erstmals Code umbrechen.

if(mysql_num_rows($res) != 0) {

Damit fragst du, soweit ich weiss, nur ob der Name existiert oder nicht, Klein- und Grossschreibung werden nicht beachtet.

Eine Möglichkeit wär:

Du lässt dir den usernamen ausgeben und vergleichst ihn dann mit dem geposteten.

if($row['username'] == $_POST['username']){ // etwas in der Art, ich weiss nicht wie deine Tabelle und dein Formular aussehen.

sonst kannst du es aber auch mit BINARY machen:
BINARY (http://dev.mysql.com/doc/refman/4.1/en/charset-binary-op.html)

sry, war zu langsam...

 
floriankf
15-08-2006, 14:15 
 
Original geschrieben von jmc


if($row['username'] == $_POST['username']){ // etwas in der Art, ich weiss

habs mal ausprobiert, und geht leider net :(
so sieht meine tb aus:
`uid` varchar(50) binary default NULL,
`pwd` varchar(255) binary default NULL,

wie ich das jetzt binary machen soll, weiß ich net

gruß flo

 
floriankf
15-08-2006, 14:27 
 
danke leute
ich habs jetzt hinbekommen ;-)

gruß flo

 
floriankf
15-08-2006, 22:56 
 
so, jetzt hab ich aber ein anderes Problem bei registrieren.

wenn sich jetzt jemand unter dem namen "Stefan" neu angemeldet hat, dann will ich, dass dieser name, egal ob ich jetzt "SteFaN" schreibe, dass dieser name nicht mehr registriebar ist.
bis jetzt wird eine fehlermeldung nur dann angezeigt, wenn sie z.b. ein anderer mit genau dieser schreibweise: "Stefan" anmeldet.
wie könnte ich das am besten lösen ??

gruß flo

 
3DMax
15-08-2006, 23:43 
 
Original geschrieben von floriankf
wenn sich jetzt jemand unter dem namen "Stefan" neu angemeldet hat, dann will ich, dass dieser name, egal ob ich jetzt "SteFaN" schreibe, dass dieser name nicht mehr registriebar ist.

was hast du denn nun eigentlich vor? entweder ist die schreibweise egal oder nicht.


zu deiner eingangsfrage - üblich ist es , dass der benutzername nicht casesensitiv ist, siehe ein bs deiner wahl oder auch dieses forum.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:14 Uhr.