Avatar billede ramu Nybegynder
02. september 2004 - 15:10 Der er 23 kommentarer

Community login

Jeg har et community, og det fungere fino.
Men problemet er når brugerne skal logge ind, så skal de skrive deres respketive brugernavn og kode, som er skrevet i databasen.
Så hvis deres brugernavn er Rasmus, kan de ikke logge ind med navnet rasmus, altså med lille. Hvordan kan det laves, så.. Ja?
Håber i forstår det..
Avatar billede dennismp Nybegynder
02. september 2004 - 16:05 #1
Det ville være noget nemmere, hvis du havde lidt kode til vise..
Avatar billede iss Novice
02. september 2004 - 16:08 #2
Det er ikke lige et PHP spørgsmål, men når du laver din select skal du bare lave LOWER() af begge navne, f.eks.:

SELECT id, bla, bla2 FROM users WHERE LOWER('user') = LOWER('$_POST['user']') AND password = '$_POST['pwd']'

Og husk lige at lave noget ved $_POST inden du smider det i en SQL query.
Avatar billede dennismp Nybegynder
02. september 2004 - 16:13 #3
Det burde altså ikke være nødvendigt. Min MySQL mener at både 'A' = 'a', og 'a' = 'a' er sandt. Så det burde ikke være derfor.

Det kan da godt tænkes, at der er forskel på mysql version, kan finde nada om det i manualen.
Avatar billede iss Novice
02. september 2004 - 16:35 #4
Det hele står i manualen "Normally, if any expression in a string comparison is case sensitive, the comparison is performed in case-sensitive fashion." og "By default, string comparisons are not case sensitive and use the current character set (ISO-8859-1 Latin1 by default, which also works excellently for English)."
Men mange har slået det fra netop pga passwords, der er a jo ikke det samme som A.
Avatar billede dennismp Nybegynder
02. september 2004 - 16:43 #5
Et link have været lækkert :).

Jeg har ikke slået det fra. Men omvendt gemmer jeg ikke passwords i ren tekst.
Avatar billede ramu Nybegynder
02. september 2004 - 17:37 #6
Fortod ikke så meget af det, men her er den nødvendige del af koden:

} else {

if($_POST[navn] && $_POST[password]) {

include("config.php");
$connection = mysql_connect("$server", "$mysqluser", "$mysqlpass");
mysql_select_db("$mysqldata", $connection);
$query="select * from salg_community2 where navn='".$_POST[navn]."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if($_POST[navn] == "$row[navn]" && $_POST[password] == "$row[password]") {

include("config.php");
$connection = mysql_connect("$server", "$mysqluser", "$mysqlpass");
mysql_select_db("$mysqldata", $connection);
$query="select * from salg_community2 where navn='".$_POST[navn]."' AND password='".$_POST[password]."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

$status = $row[status];
$_SESSION['username'] = $row[navn];
$_SESSION['password'] = $row[password];
$_SESSION['id'] = $row[id];
$_SESSION['status'] = $status;
Avatar billede ramu Nybegynder
02. september 2004 - 17:37 #7
Nogle der kan smide det i??, på forhånd tak..
Avatar billede iss Novice
02. september 2004 - 17:43 #8
Hvad er grunden til at lave to queries?
Avatar billede iss Novice
02. september 2004 - 17:50 #9
Nå, men har kogt lidt på det, og kommet frem til:
} else {

if (isset($_POST['navn']) && isset($_POST['password'])) {

    include("config.php");
    $connection = mysql_connect($server, $mysqluser, $mysqlpass);
    mysql_select_db($mysqldata, $connection);
    $query = "SELECT id, status FROM salg_community2 WHERE navn = '".$_POST['navn']."' AND password = '".$POST['password']."'";
    if (mysql_num_rows($result = mysql_query($query)) == 1)
        $row = mysql_fetch_array($result);
        $status = $row['status'];
        $_SESSION['username'] = $_POST['navn'];
        $_SESSION['password'] = $_POST['password'];
        $_SESSION['id'] = $row['id'];
        $_SESSION['status'] = $status;
Avatar billede ramu Nybegynder
02. september 2004 - 21:29 #10
Hm, kan ikke få det til at fungere, men her er HELE koden...

<? session_start(); ?>
<link rel="stylesheet" href="http://www.ramu.dk/style.css">
<?
include("config.php");
if($_SESSION[username] && $_SESSION[password] && $_SESSION[id] && $_SESSION[status]) {
if($_SESSION[status] == redaktor) {
echo "Velkommen <b>$_SESSION[username]</b> (Redaktør), du har følgende muligheder:<br>
";

} elseif($_SESSION[status] == bruger) {
echo "Velkommen <b>$_SESSION[username]</b>.  Du er logget ind som <b>bruger</b>, og har følgende funktioner:<br><br>
<a href='brugerliste.php?id=$_SESSION[id]' target='_self'>Brugerliste</a><br>
<a href='editprofil.php?id=$_SESSION[id]' target='_self'>Ret profil</a><br>
<a href='profil.php?id=$_SESSION[id]&profil=$_SESSION[id]' target='_self'>Se din profil</a><br>
<a href='logud.php'>Logud</a>
";
}
} else {

if($_POST[navn] && $_POST[password]) {

include("config.php");
$connection = mysql_connect("$server", "$mysqluser", "$mysqlpass");
mysql_select_db("$mysqldata", $connection);
$query="select * from salg_community2 where navn='".$_POST[navn]."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
if($_POST[navn] == "$row[navn]" && $_POST[password] == "$row[password]") {

include("config.php");
$connection = mysql_connect("$server", "$mysqluser", "$mysqlpass");
mysql_select_db("$mysqldata", $connection);
$query="select * from salg_community2 where navn='".$_POST[navn]."' AND password='".$_POST[password]."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

$status = $row[status];
$_SESSION['username'] = $row[navn];
$_SESSION['password'] = $row[password];
$_SESSION['id'] = $row[id];
$_SESSION['status'] = $status;

if($_SESSION[status] == redaktor) {
echo "Velkommen $_SESSION[username] (Redaktør), du har følgende muligheder:<br>
";

} elseif($_SESSION[status] == bruger) {
echo "Velkommen <b>$_POST[navn]</b>.  Du er logget ind som <b>bruger</b>, og har følgende funktioner:<br><br>
<a href='brugerliste.php?id=$_SESSION[id]' target='_self'>Brugerliste</a><br>
<a href='editprofil.php?id=$_SESSION[id]' target='_self'>Ret profil</a><br>
<a href='profil.php?id=$_SESSION[id]&profil=$_SESSION[id]' target='_self'>Se din profil</a><br>
<a href='logud.php'>Logud</a> ";
}
} else { print "<br>Brugernavn eller adgangskode er ikke korrekt. Prøv igen"; }
} else { print "Du er ikke logget ind!"; }
}
?>

Håber du kan finde ud af det :)
Avatar billede dennismp Nybegynder
02. september 2004 - 21:41 #11
Har du prøvet at rette:
$query="select * from salg_community2 where navn='".$_POST[navn]."' AND password='".$_POST[password]."'";

til
$query="select * from salg_community2 where lower(navn)=lower('".$_POST[navn]."') AND password='".$_POST[password]."'";
Avatar billede dennismp Nybegynder
02. september 2004 - 21:41 #12
det er det, iss foreslå i sit svar.
Avatar billede ramu Nybegynder
02. september 2004 - 21:43 #13
Nej, det fungere ikke. Har du MSN, så kan du måske hjælpe mig der over?
Avatar billede dennismp Nybegynder
02. september 2004 - 22:18 #14
Lad os holde det her (og dermed følge reglerne :) )

fungere ikke; hvad betyder det? At det slet ikke virker? eller at man stadig ikke kan bruge bO istedet for bo?
Avatar billede ramu Nybegynder
02. september 2004 - 22:24 #15
Ja, man kan ikke logge ind med bO, hvis brugernavet er bo i databasen??
Avatar billede dennismp Nybegynder
02. september 2004 - 22:32 #16
mysql_select_db("$mysqldata", $connection);
$query="select * from salg_community2 where navn='".$_POST[navn]."'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
efter disse linjer tilføj;
print_r($row);

Det virker som om du har en del dobbeltarbejde i din kode. du tjekker brugernavn og password, og derefter henter du det ud igen og gemmer.. Du burde også overveje at tilføje lidt fejl-checks, så du får eventuelle fejl.
Avatar billede iss Novice
03. september 2004 - 00:01 #17
Utestet, men burde virke, i bund og i grund....

<? session_start();
if (isset($_POST['navn']) && isset($_POST['password'])) {
    include("config.php");
    $connection = mysql_connect($server, $mysqluser, $mysqlpass);
    mysql_select_db($mysqldata, $connection);
    $query = "SELECT id, status FROM salg_community2 WHERE LOWER(navn) = LOWER('".$_POST['navn']."') AND password = '".$POST['password']."'";
    if (mysql_num_rows($result = mysql_query($query)) == 1)
        $row = mysql_fetch_array($result);
        $status = $row['status'];
        $_SESSION['username'] = $_POST['navn'];
        $_SESSION['password'] = $_POST['password'];
        $_SESSION['id'] = $row['id'];
        $_SESSION['status'] = $status;
    }
    else $loginError = true;
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>Untitled</title>
    <link rel="stylesheet" href="http://www.ramu.dk/style.css">
</head>

<body>
<?
if (isset($_SESSION['username'])) {
    if ($_SESSION['status'] == "redaktor") {?>
Velkommen <b><?=$_SESSION['username']?></b> (Redaktør), du har følgende muligheder:<br>
<?    }
    elseif($_SESSION['status'] == "bruger") {?>
Velkommen <b><?=$_SESSION['username']?></b>.  Du er logget ind som <b>bruger</b>, og har følgende funktioner:<br><br>
<a href='brugerliste.php?id=<?=$_SESSION['id']?>' target='_self'>Brugerliste</a><br>
<a href='editprofil.php?id=<?=$_SESSION['id']?>' target='_self'>Ret profil</a><br>
<a href='profil.php?id=<?=$_SESSION['id']?>&profil=<?=$_SESSION['id']?>' target='_self'>Se din profil</a><br>
<a href='logud.php'>Logud</a><?
    }
}
elseif (isset($loginError)) {?>
<br>Brugernavn eller adgangskode er ikke korrekt. Prøv igen
<?
}
else {?>
Du er ikke logget ind!
<?
}?>
</body>
</html>
Avatar billede ramu Nybegynder
03. september 2004 - 09:04 #18
Det gør den ikke, den viser bare en blank side :S...
Avatar billede ramu Nybegynder
03. september 2004 - 09:06 #19
... Når man prøver på at logge ind..
Avatar billede iss Novice
03. september 2004 - 09:54 #20
og feltet 'status' i databasen hedder 'status'?
Avatar billede ramu Nybegynder
03. september 2004 - 18:41 #21
Ja.
Avatar billede iss Novice
03. september 2004 - 22:45 #22
Prøv lige at rette:
  if (mysql_num_rows($result = mysql_query($query)) == 1)
til:
  $result = mysql_query($query) or print(mysql_error());
  if (mysql_num_rows($result) == 1)
Og vend tilbage med hvad den melder.
Avatar billede ramu Nybegynder
04. september 2004 - 13:55 #23
Blank side :S:S..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester