Login-problemer (php)

Tags:    php

har problemer med noget login...
I kan prøve at oprette jer med test/test på www.dkmother.frac.dk/site/profiler.php

Som i kan se sker der intet..?!

mit login ser sådan her ud:
<?php
session_start();

if(!isset($_SESSION['inlogged'])) {

$username = addslashes($_POST['brugernavn']);
$password = addslashes($_POST['password']);
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$sql = "SELECT count(*) as count FROM bruger ".
"WHERE brugernavn='$username' ".
"AND password='$password'";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
if( $row['count'] == 1 ) {
$_SESSION['brugernavn'] = "$username";
$_SESSION['inlogged'] = true;
$_SESSION['userlevel'] = "$res[0]";
print "";
} else {
print "";
$res = mysql_query("SELECT userlevel FROM bruger WHERE brugernavn='$username'") or die(mysql_error());
$userlevel = mysql_fetch_row($res);
}
} else {
print '';
}

?>

og login-formen..

<?php
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$userlevel = mysql_query("SELECT count(*) as userlevel FROM bruger
WHERE brugernavn = '$_SESSION[brugernavn]'");

if($userlevel == "1") {
require("/com/levels/level1.php");
}
if($userlevel == "2") {
require("/com/levels/level2.php");
}
if($userlevel == "3") {
require("/com/levels/level3.php");
}
ELSE {
print "
<form method='post' action=''><input type='text' name='brugernavn' value='brugernavn'><br><input type='password' name='password' value='password'>
<br><input type='hidden' name='aktiver' value='aktiver'><input style='background-color: #333333; font-family: Tahoma;' type='submit' name='login' value='login'></form>
<a href='/com/glemt.php'>Glemt password?</a> <br> <a href='/com/opret.php'>Opret MDKBruger</a>"
;}
?>

Har brugt samme kode på min egen server som kan ses herinde http://www.buur.info/mdk/site/profiler.php og her virker det fint (browseren skal dog refreshes efter log-in)

På begge sider kan i logge ind med
brugernavn : test
password : test

Har jeg overset en vigtig detalje nogen steder?
________
hjeir



9 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
har problemer med noget login...
I kan prøve at oprette jer med test/test på www.dkmother.frac.dk/site/profiler.php

Som i kan se sker der intet..?!

mit login ser sådan her ud:
<?php
session_start();

if(!isset($_SESSION['inlogged'])) {

$username = addslashes($_POST['brugernavn']);
$password = addslashes($_POST['password']);
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$sql = "SELECT count(*) as count FROM bruger ".
"WHERE brugernavn='$username' ".
"AND password='$password'";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
if( $row['count'] == 1 ) {
$_SESSION['brugernavn'] = "$username";
$_SESSION['inlogged'] = true;
$_SESSION['userlevel'] = "$res[0]";
print "";
} else {
print "";
$res = mysql_query("SELECT userlevel FROM bruger WHERE brugernavn='$username'") or die(mysql_error());
$userlevel = mysql_fetch_row($res);
}
} else {
print '';
}

?>

og login-formen..

<?php
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);
$userlevel = mysql_query("SELECT count(*) as userlevel FROM bruger
WHERE brugernavn = '$_SESSION[brugernavn]'");

if($userlevel == "1") {
require("/com/levels/level1.php");
}
if($userlevel == "2") {
require("/com/levels/level2.php");
}
if($userlevel == "3") {
require("/com/levels/level3.php");
}
ELSE {
print "
<form method='post' action=''><input type='text' name='brugernavn' value='brugernavn'><input type='password' name='password' value='password'>
<input type='hidden' name='aktiver' value='aktiver'><input style='background-color: #333333; font-family: Tahoma;' type='submit' name='login' value='login'></form>
<a href='/com/glemt.php'>Glemt password?</a> <a href='/com/opret.php'>Opret MDKBruger</a>"
;}
?>

Har brugt samme kode på min egen server som kan ses herinde http://www.buur.info/mdk/site/profiler.php og her virker det fint (browseren skal dog refreshes efter log-in)

På begge sider kan i logge ind med
brugernavn : test
password : test

Har jeg overset en vigtig detalje nogen steder?
________
hjeir




$_SESSION['userlevel'] = "$res[0]";
print "";
} else {
print "";
$res = mysql_query("SELECT userlevel FROM bruger WHERE brugernavn='$username'") or die(mysql_error());
$userlevel = mysql_fetch_row($res);
}
} else {
print '';
}

Det kunne være her, hvis den er sat, tjekker du om den ligger i databasen, og hvis den kode udføres så kører den ikke videre da du har:

if
{

}
else
{

}
else
{

}

Hvis den første er rigtig går den ikke videre, og hvis nr 2 er rigtig går den ikke videre. Og da du henter login ud så fortsætter den ikke til den sidste else, hvor du tjekker userlevels. Tror det er dine Else det er galt med.

Mvh
Lasse




<?php
session_start();

if(!isset($_SESSION['authenticated'])) {

$username = addslashes($_POST['brugernavn']);
$password = addslashes($_POST['password']);
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$sql = "SELECT count(*) as count FROM bruger ".
"WHERE brugernavn='$username' ".
"AND password='$password'";
$res = mysql_query($sql) or die(mysql_error());

$row = mysql_fetch_assoc($res);
if( $row['count'] == 1 ) {
session_register($username);
session_register($password);
;
}
}ELSE {
print " Hej!";
};
?>


Vi er enige om at det burde udskrive Hej! hvis det ikke virkede ik' oss?

Den udskriver intet andet end min login-form, igen og igen..
-Jeg ved at den bruger den rigtige database og at brugeren eksisterer (samt har det tilsvarende password)

Kan det have noget at gøre med at det er en side som hedder "top.php" og er inkluderet på samtlige sider med en fast adresse?
Http://www.dkmother.frac.dk/site/top.php
________
hjeir

NEJ!! Den burde ikke skrive hej overhovedet!!
Prøv dette her! Så skriver den "Hej!" hvis du opdatere når du er logget ind:
Fold kodeboks ind/udKode 


Hilsen Mathias



Må man ikke include siderne som jeg gør, eller hvad går der galt?

[Redigeret d. 15/04-05 23:53:12 af christoffer]


Jeg har før haft problemmer med at include på den måde prøv:

Fold kodeboks ind/udKode 


I stedet for dem du bruger nu, men skal siges at chancen for at det er det der er fejlen er meget lille.

M.v.h. Johnny Rasmussen



Øh okay ved ikke om det passer det jeg skrev alligevel, synes din kode er lidt forvirrende. Altså hvor bruger du det første kodeafsnit og det andet kodeafsnit?

Til debugging bruger jeg altid følgende metode:

Brug Echo!

Indsæt en echo "hej"; der hvor du tror det går galt, hvis den ikke udskriver hej ;) ja så er den gal. Hvis den så udskriver hej, kan du flytte den længere ned i koden og derved bruge udelukkelsesmetoden. Det har sparret mig for megen stress.

Men er du sikker på man kan bruge SESSION hos frac? (har du tjekket om dine sessions bliver sat evnt?)

Mvh
Lasse




Men er du sikker på man kan bruge SESSION hos frac? (har du tjekket om dine sessions bliver sat evnt?)


Er ny ang. php så nej, er ikke helt sikker... dog er der aldrig nogen der har rettet på det, så gik ud fra det var rigtigt..

har forsøgt at lave lidt om

<?php
session_start();

if(!isset($_SESSION['authenticated'])) {

$username = addslashes($_POST['brugernavn']);
$password = addslashes($_POST['password']);
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$sql = "SELECT count(*) as count FROM bruger ".
"WHERE brugernavn='$username' ".
"AND password='$password'";
$res = mysql_query($sql) or die(mysql_error());

$row = mysql_fetch_assoc($res);
if( $row['count'] == 1 ) {
session_register(brugernavn);
session_register(password);
;
}
ELSE {
print " Hej!";
};
}
?>

resultat: Hej! udskrives ligemeget hvad, og man bliver ikke logget ind.

Ang. med sessions på frac, har været inde at spørge og venter på svar nu, men går ud fra at man kan, da de bla. har en tutorial om hvordan man sætter sessions med php.
________
hjeir



prøv dette:
Fold kodeboks ind/udKode 


Hilsen Mathias



<?php
session_start();

if(!isset($_SESSION['authenticated'])) {

$username = addslashes($_POST['brugernavn']);
$password = addslashes($_POST['password']);
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$sql = "SELECT count(*) as count FROM bruger ".
"WHERE brugernavn='$username' ".
"AND password='$password'";
$res = mysql_query($sql) or die(mysql_error());

$row = mysql_fetch_assoc($res);
if( $row['count'] == 1 ) {
session_register($username);
session_register($password);
;
}
}ELSE {
print " Hej!";
};
?>


Vi er enige om at det burde udskrive Hej! hvis det ikke virkede ik' oss?

Den udskriver intet andet end min login-form, igen og igen..
-Jeg ved at den bruger den rigtige database og at brugeren eksisterer (samt har det tilsvarende password)

Kan det have noget at gøre med at det er en side som hedder "top.php" og er inkluderet på samtlige sider med en fast adresse?
Http://www.dkmother.frac.dk/site/top.php
________
hjeir



NEJ!! Den burde ikke skrive hej overhovedet!!
Prøv dette her! Så skriver den "Hej!" hvis du opdatere når du er logget ind:


Okay, er stadig ikke så skrap til php, men fattede din pointe :) Den skriver Hej når man har logget ind og refresher... Problemet er bare at det kun virker på test.php som er min (sjovt nok) test side... den er som den eneste ikke lavet af includes men det er resten af mine sider...

http://www.dkmother.frac.dk/site/profiler.php kan man ikke logge ind, selvom man kan på /site/test.php som ligger på samme server, med samme kode.

profiler.php har opbygningen

<?php include("http://www.dkmother.frac.dk/site/top.php"); ?>
// Indeholder loginsystemet og de 2 divs som går igen på samtlige sider

// Content-div begynder

<?php
include "config.php";
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db);

$res = mysql_query("SELECT * FROM bruger where id='$_GET[id]'") or die("Fejl: ".mysql_error()."<br><br>SQL: $sql");
while($row = mysql_fetch_array($res)){
echo "Navn: <b><code>$row[brugernavn]</code></b>
<br>
Counter-strike: <b><code>$row[csnick]</code></b><br>
<br>
E-mail: <b><code>$row[email]</code></b><br>";
}
?>

//Afslutter content-diven og de afsluttende html koder..
<?php include("http://www.dkmother.frac.dk/site/bund.php"); ?>

For at give mulighed for at læse koderne har jeg uploadet top og bund.php som phps

http://www.dkmother.frac.dk/site/top.phps
http://www.dkmother.frac.dk/site/bund.phps

Må man ikke include siderne som jeg gør, eller hvad går der galt?

[Redigeret d. 15/04-05 23:53:12 af christoffer]



Jeg har fundet ud af det, jeg har forsøgt at inkludere min login-del i top.php, men login-delen er skrevt som http-header, og derfor kan jeg ikke inkludere det på den måde.. (har jeg fået at vide) og derfor dropper jeg at gøre det på den måde...
________
hjeir



t