Avatar billede plazm Nybegynder
24. september 2003 - 19:04 Der er 18 kommentarer og
2 løsninger

PHP-mySQL Login

Hey.
Jeg vil gerne have et login script der gemmer om man er logget ind i en session, og med en fil der kan includeres som tjekker om man er logget ellers bliver man redirektet til forsiden.

Tabel er users
Kolonner: Username, Password

Jeg skal ikke lave for meget med det da jeg bare skal have det sat ind hurtigst muligt pga. af fejl i det tidligere.

PÅ Forhånd Tak
Avatar billede plazm Nybegynder
24. september 2003 - 19:10 #2
det er alt for besværligt.
bare et simpelt login. ikke alt det gejl. har jo tabel, form, men mangler bare et tjek script.
Avatar billede fangel Nybegynder
24. september 2003 - 19:11 #3
ztyxx => heyy - andre end sukos, nicolajdu og mig der linker dertil ;)

Morten
Avatar billede fangel Nybegynder
24. september 2003 - 19:12 #4
læs artiklen til et af script's der omhandler login - så kan du nok lave det selv

http://www.showsource.dk/artikler/vis_artikel.php?id=1042998056

Morten
Avatar billede plazm Nybegynder
24. september 2003 - 19:48 #5
der var en grund til jeg bad om et lavet script...

<?php
if ($_POST[Login] == "yes") {
session_start();
$db = mysql_connect("localhost", "username", "password") or die (mysql_error());
mysql_select_db("1goweb90716", $db) or die (mysql_error());
$docheck = mysql_query("SELECT username, password, admin FROM users WHERE username='$_POST[Username]'") or die (mysql_error());
if(isset($_POST['username'], $_POST['password'])) {
$usercheck = mysql_fetch_object($docheck);
if($usercheck->username != $_POST['username']) {
$_SESSION['username_fail'] = 1;
header("Location:?p=login");
exit;
}
}
$_SESSION['brugernavn'] = $_POST['brugernavn'];


    if($brugertjek->password != $_POST['password']) {
    $_SESSION['password_fail'] = 1;
    header("Location:?p=login");
exit;

    }else{
    $_SESSION['admin'] = $usercheck->admin;
    header("Location:?p=admin");
exit;
    }

mysql_free_result($docheck);

}
?>

hvor er fejlen ?
Avatar billede plazm Nybegynder
24. september 2003 - 19:48 #6
Warning: Cannot send session cookie - headers already sent by (output started at /var/www/hotels/.dk/nlgames/html/login.php:9) in /var/www/hotels/.dk/nlgames/html/login.php on line 11

Warning: Cannot send session cache limiter - headers already sent (output started at /var/www/hotels/.dk/nlgames/html/login.php:9) in /var/www/hotels/.dk/nlgames/html/login.php on line 11

Warning: Cannot add header information - headers already sent by (output started at /var/www/hotels/.dk/nlgames/html/login.php:9) in /
Avatar billede fangel Nybegynder
24. september 2003 - 19:54 #7
at du udskriver noget før du sætter cookie / starter session!

Morten
Avatar billede plazm Nybegynder
24. september 2003 - 19:54 #8
jamen. det du ser er hva jeg har i tjek.php
Avatar billede plazm Nybegynder
24. september 2003 - 20:07 #9
nu har jeg sat følgende ind i toppen af min fil. login virker nu. lavede det om til noget simplere.
Problemmet med følgende er at den altid sender mig til login siden.

<?php
if ($_GET['p'] == "admin") {
session_start();
if(!isset($_SESSION['username'], $_SESSION['admin'])) {
header("Location:?p=login");
exit;
}
}
?>

og logincheck er sådan her:

<?php
if ($_POST[Login] == "yes") {
session_start();
$db = mysql_connect("localhost", "username", "password") or die (mysql_error());
mysql_select_db("1goweb90716", $db) or die (mysql_error());
$docheck = mysql_query("SELECT username, password, admin FROM users WHERE username='$_POST[Username]'") or die (mysql_error());
if(isset($_POST['username'], $_POST['password'])) {
$usercheck = mysql_fetch_object($docheck);
if($usercheck->username != $_POST['username']) {
$_SESSION['username_fail'] = 1;
header("Location:?p=login");
exit;
}
}
$_SESSION['brugernavn'] = $_POST['brugernavn'];


    if($brugertjek->password != $_POST['password']) {
    $_SESSION['password_fail'] = 1;
    header("Location:?p=login");
exit;

    }else{
    $_SESSION['admin'] = $usercheck->admin;
    header("Location:index.php?p=admin");
exit;
    }

mysql_free_result($docheck);

}
?>
hvis jeg fjerner det jeg har i toppen af index.php så virker alt ok, men så tjekker den jo ikke...
Avatar billede fangel Nybegynder
24. september 2003 - 20:11 #10
du kalder den jo

$_SESSION['username']

en gang og

$_SESSION['brugernavn']

en anden gang!

Morten
Avatar billede plazm Nybegynder
24. september 2003 - 20:18 #11
lol.. godt.. det så jeg så ikke.
Avatar billede plazm Nybegynder
24. september 2003 - 20:19 #12
smid et svar. begge to
Avatar billede fangel Nybegynder
24. september 2003 - 20:21 #13
svaa'r
Avatar billede plazm Nybegynder
24. september 2003 - 20:34 #14
det virker ikke nu. har følgende:

<?php
if ($_POST[Login] == "yes") {
session_start();
$db = mysql_connect("localhost", "username", "password") or die (mysql_error());
mysql_select_db("1goweb90716", $db) or die (mysql_error());
$docheck = mysql_query("SELECT Username, Password, Admin FROM users WHERE Username='$_POST[Username]'") or die (mysql_error());
if(isset($_POST['Username'], $_POST['Password'])) {
$usercheck = mysql_fetch_object($docheck);
if($usercheck->Username != $_POST['Username']) {
$_SESSION['Username_fail'] = 1;
header("Location:index.php?p=login");
exit;
}
}
$_SESSION['Username'] = $_POST['Username'];


    if($brugertjek->Password != $_POST['Password']) {
    $_SESSION['Password_fail'] = 1;
    header("Location:index.php?p=login");
exit;

    }else{
    $_SESSION['Admin'] = $usercheck->Admin;
    header("Location:index.php?p=Admin");
exit;
    }

mysql_free_result($docheck);

}
?>
og dette i toppen af index.php

<?php
if ($_GET['p'] == "admin") {
session_start();
if(!isset($_SESSION['Username'], $_SESSION['Admin'])) {
header("Location:?p=login");
exit;
}
}
?>

men ender hele tiden på login siden.

hva er der galt ? er sikker på password og username er rigtigt
Avatar billede plazm Nybegynder
24. september 2003 - 20:35 #15
tror jeg fandt fejlen
2 sek
Avatar billede plazm Nybegynder
24. september 2003 - 20:42 #16
hmm. hvis jeg taster forkert sker der intet. den logger ikke ind som den heller ikke skal, men hvis jeg lader være med at skrive noget så logger den ind, og jeg kan bare skrive index.php?p=admin og så kommer den også ind på siden.... hvorfor tjekker den ikke ?

index:
<?php
if ($_GET['p'] == "admin") {
session_start();
if(!isset($_SESSION['Username'], $_SESSION['Admin'])) {
header("Location:?p=login");
exit;
}
}
?>

login.php:
<?php
if ($_POST[Login] == "yes") {
session_start();
$db = mysql_connect("localhost", "username", "password") or die (mysql_error());
mysql_select_db("1goweb90716", $db) or die (mysql_error());
$docheck = mysql_query("SELECT Username, Password, Admin FROM users WHERE Username='$_POST[Username]'") or die (mysql_error());
if(isset($_POST['Username'], $_POST['Password'])) {
$usercheck = mysql_fetch_object($docheck);
if($usercheck->Username != $_POST['Username']) {
$_SESSION['Username_fail'] = 1;
header("Location:index.php?p=login");
exit;
}
}
$_SESSION['Username'] = $_POST['Username'];
    if($usercheck->Password != $_POST['Password']) {
    $_SESSION['Password_fail'] = 1;
    header("Location:index.php?p=login");
exit;

    }else{
    $_SESSION['Admin'] = $usercheck->Admin;
    header("Location:index.php?p=admin");
exit;
    }

mysql_free_result($docheck);

}
?>
Avatar billede fangel Nybegynder
24. september 2003 - 21:05 #17
kan ikke lige se fejlen - og har ikke lige overskud til at lede efter den

Morten
Avatar billede plazm Nybegynder
24. september 2003 - 21:25 #18
er der ikke andre der har et script der virker og kan smide det her ? det skal være simpelt... ikke alt det gejl.
Avatar billede plazm Nybegynder
24. september 2003 - 21:46 #19
eller evt kan finde fejlen...
Avatar billede plazm Nybegynder
02. oktober 2003 - 18:53 #20
du få halvdelen for at have prøvet.. håber det er ok med dig...
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