Avatar billede kattendk Nybegynder
07. juli 2006 - 23:59 Der er 24 kommentarer

Session vil ikke virke.

<?php include("denner.php"); ?>
<?php
session_start();

$conn = mysql_connect("$host", "$user", "$pass") or die (mysql_error());
mysql_select_db("$db", $conn) or die (mysql_error());
$dato = date("d-m-Y H:i", time());
$sql = "UPDATE login2 SET online='". $dato ."' WHERE `brugernavn` ='". $_POST[brugernavn] ."'";
mysql_query($sql,$conn) or die(mysql_error());

if(isset($_POST["brugernavn"], $_POST["password"])) {

$dotjek = mysql_query("SELECT `brugernavn`, `password`, `admin` FROM `login2` WHERE `brugernavn` ='". $_POST[brugernavn] ."'") or die (mysql_error());

$brugertjek = mysql_fetch_object($dotjek);

if($brugertjek->brugernavn != $_POST["brugernavn"]) {
$_SESSION["navne_fejl"] = 1;
header("Location:logind.php");
exit;
}

$_SESSION["brugernavn"] = $_POST["brugernavn"];

    if($brugertjek->password != md5($_POST["password"])) {
    $_SESSION["password_fejl"] = 1;
    header("Location:logind.php");
    exit;
    }else{
    if($brugertjek->admin = Admin) {
    header("Location:admin.php");
    exit;
    }else{
    if($brugertjek->admin != Admin) {
    header("Location:login.php");
    exit;
    } 

mysql_free_result($dotjek);
}
?>

------------------------------

Den skriver denne fejl:
Parse error: parse error, unexpected $ in /home/virtual/min hp/public_html/make_logind.php on line 41

I følge scriptet er linje 41: ?>

Jeg vil gerne have at admins bliver sendt vidre til admin.php og alm. brugere til login.php .. Håber der er nogle som kan hjælpe.
Avatar billede jaw Nybegynder
08. juli 2006 - 00:02 #1
Du har 2 else ->

if() {
...
} else {
...
} else {
...
}
Den duer ikke...
Avatar billede jaw Nybegynder
08. juli 2006 - 00:02 #2
Ah, det du vil er nok at ændre disse 2:
}else{
if($brugertjek->admin = Admin) {
til:
}elseif($brugertjek->admin = Admin) {
Avatar billede jaw Nybegynder
08. juli 2006 - 00:03 #3
Hvilken så gælder for begge dine "else'r".
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:15 #4
Nu vil den slet ikke logge ind :|
Avatar billede jaw Nybegynder
08. juli 2006 - 00:17 #5
Har du prøvet at indsætte nogle echo'er rundt omkring så du ved, om den kommer ind i de if'er du tror den gør?
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:20 #6
Det har jeg lige prøver, men den logger ikke ind på nogen måde.
Avatar billede jaw Nybegynder
08. juli 2006 - 00:22 #7
Kommer den ind i de if'er, hvor den burde logge dig ind? I debug fasen kan det være ekstremt uoverskueligt hvis du hele tiden bliver sendt omkring med header() - eller det synes jeg i hvert fald...
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:30 #8
Jeg tror ikke den kommer ind.

Vil du prøve at lave det, som du tror ville virke?
Avatar billede jaw Nybegynder
08. juli 2006 - 00:32 #9
Jeg ved ikke hvad $brugertjek->brugernavn indeholder og hvor det kommer fra, så det er lidt svært...
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:34 #10
$dotjek = mysql_query("SELECT `brugernavn`, `password`, `admin` FROM `login2` WHERE `brugernavn` ='". $_POST[brugernavn] ."'") or die (mysql_error());

$brugertjek = mysql_fetch_object($dotjek);
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:34 #11
Hvis man er admin står der i mysql. Tabel: Admin, text Admin.
Avatar billede jaw Nybegynder
08. juli 2006 - 00:39 #12
Ah ja ok, men du har en fejl i linien:
}elseif($brugertjek->admin = Admin) {
skal være:
}elseif($brugertjek->admin == "Admin") {

og den næste
!= "Admin"
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:44 #13
Fatter det ikke, den virker stadig ikke.. hm.. Hvad kan være galt :|
Avatar billede jaw Nybegynder
08. juli 2006 - 00:44 #14
Prøv lige at paste din kode igen.
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:47 #15
<?php include("denner.php"); ?>
<?php
session_start();

$conn = mysql_connect("$host", "$user", "$pass") or die (mysql_error());
mysql_select_db("$db", $conn) or die (mysql_error());
$dato = date("d-m-Y H:i", time());
$sql = "UPDATE login2 SET online='". $dato ."' WHERE `brugernavn` ='". $_POST[brugernavn] ."'";
mysql_query($sql,$conn) or die(mysql_error());

if(isset($_POST["brugernavn"], $_POST["password"])) {

$dotjek = mysql_query("SELECT `brugernavn`, `password`, `level` FROM `login2` WHERE `brugernavn` ='". $_POST[brugernavn] ."'") or die (mysql_error());

$brugertjek = mysql_fetch_object($dotjek);

if($brugertjek->brugernavn != $_POST["brugernavn"]) {
$_SESSION["navne_fejl"] = 1;
header("Location:logind.php");
exit;
}

$_SESSION["brugernavn"] = $_POST["brugernavn"];

    if($brugertjek->password != md5($_POST["password"])) {
    $_SESSION["password_fejl"] = 1;
    echo "Fejl (:";
    header("Location:logind.php");
    exit;
    }elseif($brugertjek->level == "Admin") {
    echo "Hej Admin";
    header("Location:admin.php");
    exit;
    }elseif($brugertjek->level != "Admin") {
    echo "Hej Bruger";
    header("Location:login.php");
    exit;
    }


mysql_free_result($dotjek);
}
?>

-------

Jeg har rettet $brugertjek->admin til $brugertjek->level .. Da jeg huskede forkert, men den vil stadig ikke..
Avatar billede horsmark Nybegynder
08. juli 2006 - 00:49 #16
session_start(); skal være der inden nogetsomhelst returneres til browseren ... så blot for en sikkerhedskyld ...


<?php
session_start();
include("denner.php");
Avatar billede horsmark Nybegynder
08. juli 2006 - 00:50 #17
Avatar billede jaw Nybegynder
08. juli 2006 - 00:51 #18
Umiddelbart synes jeg det virker som om at den aldrig kommer ind i den her:
if(isset($_POST["brugernavn"], $_POST["password"])) {

Sikker på at den gør det?
Avatar billede kattendk Nybegynder
08. juli 2006 - 00:54 #19
Det er via en anden fil.

<form action="make_logind.php" method="post">
<font face="verdana" size="1" color="#555555">Brugernavn:</font><br>
<input type="text" name="brugernavn" value="<?php echo $value; ?>"><br>
<font face="verdana" size="1" color="#555555">Password:</font><br>
<input type="password" name="password"><br>
<input type="submit" value="Log ind"><br>
</form>
Avatar billede jaw Nybegynder
08. juli 2006 - 00:59 #20
Ja, men jeg synes du skal udskrive diverse variabler du bruger, og se om de indeholder det du tror de gør.

echo $brugertjek->admin;
echo $_POST['brugernavn'];
og alle de andre variabler du bruger.
Avatar billede kattendk Nybegynder
08. juli 2006 - 01:06 #21
Det er bare, at der ikke sker noget efter jeg trykker Log ind. Den forbliver blank, så jeg har ingen anelse om, hvordan det skal laves ellers. Jeg er ret ny i php verdenen. Men jeg smutter i seng nu, så kan vi lige kigge på det i morgen.
Avatar billede jaw Nybegynder
08. juli 2006 - 01:09 #22
Ok, men så vil jeg næsten gætte på, at problemet er som jeg skrev kl. 00.51.12.

Men sov godt, så prøver vi/du i morgen...
Avatar billede horsmark Nybegynder
08. juli 2006 - 04:27 #23
var_dump($_POST) ~ så kan du se om alt er med :-)
Avatar billede kattendk Nybegynder
08. juli 2006 - 11:45 #24
<?php include("denner.php"); ?>
<?php
session_start();

$conn = mysql_connect("$host", "$user", "$pass") or die (mysql_error());
mysql_select_db("$db", $conn) or die (mysql_error());
$dato = date("d-m-Y H:i", time());
$sql = "UPDATE login2 SET online='". $dato ."' WHERE `brugernavn` ='". $_POST[brugernavn] ."'";
mysql_query($sql,$conn) or die(mysql_error());

if(isset($_POST["brugernavn"], $_POST["password"])) {

$dotjek = mysql_query("SELECT `brugernavn`, `password`, `admin` FROM `login2` WHERE `brugernavn` ='". $_POST[brugernavn] ."'") or die (mysql_error());

$brugertjek = mysql_fetch_object($dotjek);

if($brugertjek->brugernavn != $_POST["brugernavn"]) {
$_SESSION["navne_fejl"] = 1;
header("Location:logind");
exit;
}

$_SESSION["brugernavn"] = $_POST["brugernavn"];

    if($brugertjek->password != md5($_POST["password"])) {
    $_SESSION["password_fejl"] = 1;
    header("Location:logind");
    exit;
    }else{
    $_SESSION["admin"] = $brugertjek->admin;
    header("Location:login");
    exit;
    }

mysql_free_result($dotjek);
}
?>

Den virker, med at logge ind osv.
Jeg forstår bare ikke hvorfor det er admin der bliver brugt, når det er level den skal tjekke. I mit admin felt i mysql den er tom.
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