Avatar billede caand Nybegynder
16. maj 2008 - 11:09 Der er 14 kommentarer

login + tjek

Hej..
jeg har brug for et par tråde for lige at komme igan med et login script.

Jeg har umiddelbart styr på at oprette. men hvordan tjekker jeg om folk har logget sig ind?
Avatar billede w13 Novice
16. maj 2008 - 11:33 #1
Når de logger ind, kan du gemme deres id i en sessions. Så kan du på de sider, som skal passwordbeskyttes, tjekke om denne session indeholder et id. Hvis ikke, er personen ikke logget ind og skal måske sendes over til loginsiden i stedet.
Avatar billede caand Nybegynder
16. maj 2008 - 15:09 #2
Okey tak for det:)
Avatar billede caand Nybegynder
16. maj 2008 - 15:52 #3
Er lige stået ind i et problem med min opret side..
Jeg har 2 sider
Men jeg får fejl i opret.php og den opretter ikke noget..
Fejlen er :
Parse error: syntax error, unexpected T_ELSE in /web/www/frac/users/c/ccms/projekter/opret.php on line 14

Men jeg kan ikke finde ud af hvad det er... jeg har en else i linje 14, men kan ikke finde ud af hvad der lavet fejl..


opretformular.html:

<html>
<head>
</head>
<body>
<form ACTION='opret.php' METHOD='POST'>
Brugernavn<input type='text' name='bnavn' title=' Ønsket Brugernavn' > </br>
Password<input type='password' name='pass' title='PASSWORD'> </br>
<input type='submit' name='opret' title='Opret Brugeren'>
</form>
</body>
</html>


og opret.php:


<?php
include 'db_connect.php'; //Connecter til databasen/mysql
$opret = &$HTTP_POST_VARS['opret'];
if(empty($opret)) {
  ?>
  <br><a href="opret.php">Klik her for at oprette bruger</a>
  <?php
  } else {
$bnavn = &$HTTP_POST_VARS['bnavn']; // Brugernavn fra form i opretformular.html.
$pass = &$HTTP_POST_VARS['pass']; // Password fra form i opretformular.html.

if(empty($bnavn) OR empty($pass))  //Her tjekkes om ET af felterne er tomme.
    echo 'Et af felterne er tomme';
    }else{
    $result = mysql_query("select bnavn from bruger where bnavn = '$bnavn'")
or die (mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
print 'Desværre brugernavnet er optaget';
} else {
mysql_query("insert into bruger (bnavn, pass) values ('$bnavn', '$pass')")
or die(mysql_error());
print "Brugernavn $brugernavn er oprettet!";

}
}
?>
Avatar billede w13 Novice
16. maj 2008 - 16:51 #4
Fejlen er her:

if(empty($bnavn) OR empty($pass))  //Her tjekkes om ET af felterne er tomme.
    echo 'Et af felterne er tomme';
    }else{

Du glemmer at indlede if-kommandoen med { dvs.:

if(empty($bnavn) OR empty($pass)){  //Her tjekkes om ET af felterne er tomme.
    echo 'Et af felterne er tomme';
    }else{
Avatar billede caand Nybegynder
16. maj 2008 - 18:47 #5
Nu er jeg kommet så langt, at jeg kan oprette men den skriver at jeg ikke har adgang til siderne selvom den faktisk logger mig ind. Koderne ser sådane ud:
Tror fejlen er i adminforside.php

Login formular:
<html>
<head>
</head>
<body>
<form action="check.php" method="post" id="min form">
Brugernavn: <input type="text" name="bnavn"><br>
Kodeord: <input type="password" name="pass">
<input type="submit" name="login" value="login">
</form>
</body>
</html>


check.php
<?php
SESSION_START();
include 'db_connect.php'; //Conneter til databasen/mysql
if(empty($_POST['bnavn']) || empty($_POST['pass']))
{
header("location: formular.html");
exit;
} else {
$query = mysql_query("SELECT * FROM bruger WHERE bnavn='".$_POST['bnavn']."'") or die (mysql_error());
if(mysql_num_rows($query) == '1')
{
$row = mysql_fetch_array($query);
if($row['pass'] == $_POST['pass'])
{
$_SESSION['bruger']['bnavn'] = $_POST['bnavn'];
header("location: adminforside.php");
}else{
header("location: formular.html");
exit;
}
}
else
{
header("location: formular.html");
exit;
}
}
?>

adminforside.php

<?php
SESSION_START();
if(!empty($_SESSION['bnavn'])) {
$query = mysql_query("SELECT * FROM bruger WHERE bnavn='".$_SESSION['bruger']['bnavn']."'") or die (mysql_error());
$row = mysql_fetch_assoc($query);
echo " hemmeligt indhold skal vises her!!!!!

Dit bruger id er: ".$row['id'];
}
else
{
echo " Du har ikke adgang til disse sider - Det en ommer!";
}
?>
Avatar billede dkfire Nybegynder
16. maj 2008 - 22:30 #6
Ret dine session_start() til små bogstaver!
og ret:
!empty($_SESSION['bnavn'])
til:
isset($_SESSION['bruger']['bnavn'])
Avatar billede dkfire Nybegynder
16. maj 2008 - 22:31 #7
Og på adminforside.php mangler du lige at include din databasefil.
Avatar billede caand Nybegynder
18. maj 2008 - 15:36 #8
Dette virkede:)..
Men jeg har et nyt spg:P..

Jeg får denne fejl :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /web/www/frac/users/c/ccms/adminforside.php on line 14


adminforside.php:

<?php
session_start();
include 'db_connect.php'; //Conneter til databasen/mysql
if(isset($_SESSION['bruger']['bnavn'])) {
$query = mysql_query("SELECT * FROM bruger WHERE bnavn='".$_SESSION['bruger']['bnavn']."'") or die (mysql_error());
$row = mysql_fetch_assoc($query);

echo"Du er logget ind som admin - Dit brugernavn er: ".$row['bnavn'];
echo"</br>";
echo"Du har som : ".$row['rank'];
echo"</br>";
echo"Adgang til: </br>";
$tilladelser = mysql_query("SELECT * FROM '.$row[rank].'");
while($row1 = mysql_fetch_assoc($tilladelser)) //Lav en while der kører alle rækker igennem
{
    echo $row1['rettigheder'] . "<br/>";
}
}
else
{
echo " Du har ikke adgang til disse sider - Det en ommer!";
}
?>
Avatar billede caand Nybegynder
18. maj 2008 - 15:39 #9
jeg fandt lige et par } for meget.. men stadig samme fejl

<?php
session_start();
include 'db_connect.php'; //Conneter til databasen/mysql
if(isset($_SESSION['bruger']['bnavn'])) {
$query = mysql_query("SELECT * FROM bruger WHERE bnavn='".$_SESSION['bruger']['bnavn']."'") or die (mysql_error());
$row = mysql_fetch_assoc($query);

echo"Du er logget ind som admin - Dit brugernavn er: ".$row['bnavn'];
echo"</br>";
echo"Du har som : ".$row['rank'];
echo"</br>";
echo"Adgang til: </br>";
$tilladelser = mysql_query("SELECT * FROM '.$row[rank].'");
while($row1 = mysql_fetch_assoc($tilladelser)) //Lav en while der kører alle rækker igennem

    echo $row1['rettigheder'] . "<br/>";
}
else
{
echo " Du har ikke adgang til disse sider - Det en ommer!";
}
?>
Avatar billede caand Nybegynder
18. maj 2008 - 17:18 #10
Nu får jeg denne fejl:

Parse error: syntax error, unexpected T_ELSE in /web/www/frac/users/c/ccms/adminforside.php on line 16


Og koden er:
<?php
session_start();
include 'db_connect.php'; //Conneter til databasen/mysql
if(isset($_SESSION['bruger']['bnavn'])) {
$query = mysql_query("SELECT * FROM bruger WHERE bnavn='".$_SESSION['bruger']['bnavn']."'") or die (mysql_error());
$row = mysql_fetch_assoc($query);

echo"Du er logget ind som admin - Dit brugernavn er: ".$row['bnavn'];
echo"</br>";
echo"Du har som : ".$row['rank'];
echo"</br>";
echo"Adgang til: </br>";
$tilladelser = mysql_query("SELECT * FROM '.$row[rank].'") or die(mysql_error());
while($row1 = mysql_fetch_assoc($tilladelser)) {  //Lav en while der kører alle rækker igennem
  echo $row1['rettigheder'] . "<br/>";
} else {
echo "Du har ikke adgang til disse sider - Det en ommer!";
}
}
?>
Avatar billede dkfire Nybegynder
18. maj 2008 - 22:22 #11
Du har fjernet en } for meget.
Og så forstår jeg ikke denne query "SELECT * FROM '.$row[rank].'", hvad vil du ??
Men prøv
<?php
session_start();
include 'db_connect.php'; //Conneter til databasen/mysql
if(isset($_SESSION['bruger']['bnavn'])) {
$query = mysql_query("SELECT * FROM bruger WHERE bnavn='".$_SESSION['bruger']['bnavn']."'") or die (mysql_error());
$row = mysql_fetch_assoc($query);

echo"Du er logget ind som admin - Dit brugernavn er: ".$row['bnavn'];
echo"</br>";
echo"Du har som : ".$row['rank'];
echo"</br>";
echo"Adgang til: </br>";
$tilladelser = mysql_query("SELECT * FROM $row[rank]") or die(mysql_error());
while($row1 = mysql_fetch_assoc($tilladelser)) {  //Lav en while der kører alle rækker igennem
  echo $row1['rettigheder'] . "<br/>";
}} else {
echo "Du har ikke adgang til disse sider - Det en ommer!";
}

?>
Avatar billede caand Nybegynder
19. maj 2008 - 10:59 #12
ens rank er enten admin eller skribent. og det skal den udskrive da jeg har en tabel til hver.
Avatar billede caand Nybegynder
19. maj 2008 - 11:06 #13
Nu laver den ingen fejl. men den udskriver heller ikke noget:S

Du skal forresten nok få dine point :) kom bare til at afvise
Avatar billede caand Nybegynder
19. maj 2008 - 11:24 #14
Jeg fandt selv den sidste fejl:). I min database hed kolonen "rettighed" og i php.filen har jeg skrevet "rettighedER"..
Smid et svar dkfire:)
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