Avatar billede horseshit Nybegynder
05. januar 2003 - 00:23 Der er 8 kommentarer og
1 løsning

session problemer

hejsa eksperter, jeg har et site med en loginform, formen med tilhørende php virker som sådan også godt nok, problemet er når jeg gerne vil hive data ud af min session,
jeg vil meget gerne kunne bruge f.eks. $_SESSION["user"] og få et output, men der kommer bare ingenting min kode er som følger:

admin.php:
<?
    include("connect.php");

    session_start();
    if(!session_is_registered("user")) {
      if(isset($_POST["loginUser"]) && isset($_POST["loginPass"])) {
        $result = mysql_query("SELECT * FROM users WHERE user='$_POST[loginUser]' AND pass='$_POST[loginPass]'");
        if (mysql_num_rows($result) > 0) {
          $userInfo = mysql_fetch_array($result);
          $user = $userInfo['user'];
          session_register("achromic");
      header("location: index.php");
        }

    else {
        echo "Access denied--nah nah na nah nah!";
    }
      }
    }

    else { header("location: index.php"); }
?>

index.php:
<?
    if(session_is_registered("achromic")) {
?>
          <TABLE cellSpacing=0 cellPadding=0 width=155 border=0>
                    <TBODY>
                    <TR>
                      <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=1><STRONG>Logged in as <?=$_SESSION["achromic"];?></STRONG></FONT></TD>
                      <TD>&nbsp;</TD></TR></TBODY></TABLE>
<?
    }
?>
der ville jeg så gerne have den til at fortælle mig hvilket username jeg loggede ind med men der kommer bare et "Logged in as" og så ikke mere, håber nogen kan hjælpe mig
Avatar billede tipsen Nybegynder
05. januar 2003 - 03:13 #1
Er det egentlig ikke lidt overflødigt med følgende:

          $userInfo = mysql_fetch_array($result);
          $user = $userInfo['user'];
          session_register("achromic");

-hvis du kommer ind if-løkken er det fordi der er en bruger som har matchet $_POST['loginUser'] og så kan du jo bare bruge den...

Du skal nok have tilpasset dit sessionsystem til følgende - det overflødige er luget væk og den nye session-syntax bruges jvf. http://dk.php.net/manual/en/ref.session.php

<?php
session_start();
if (!isset($_SESSION['user'])) {
  if(isset($_POST["loginUser"]) && isset($_POST["loginPass"])) {
    $result = mysql_query("SELECT * FROM users WHERE user='$_POST[loginUser]' AND pass='$_POST[loginPass]'");
    if (mysql_num_rows($result) > 0) {
      $_SESSION['user'] = $_POST[loginUser];
      header("location: index.php");
    } else {
      ...
    }
  } else {
    ...
  }
} else {
  ...
}
?>
Avatar billede tipsen Nybegynder
05. januar 2003 - 03:14 #2
og så er det selvfølgelig også $_SESSION['user'] du refererer til de andre steder...
Avatar billede horseshit Nybegynder
05. januar 2003 - 03:18 #3
ikke helt sikker på jeg forstår, men prøver mig lige lidt frem og vender tilbage om et par min
Avatar billede horseshit Nybegynder
05. januar 2003 - 03:28 #4
hmm tipsen, efter jeg udskifetede hele mit loginsystem til det du gav mig, for jeg invalid login på alt hvad jeg forsøger
Avatar billede tipsen Nybegynder
05. januar 2003 - 12:24 #5
Altså der er jo nogle ... der skal udfyldes - så hvordan ser det hele ud?
Avatar billede horseshit Nybegynder
05. januar 2003 - 19:49 #6
med dine ændringer ser skidtet nu ud som følger

admin.php:
<?
    include("connect.php");

    session_start();
          if (!isset($_SESSION['user'])) {
        if(isset($_POST["loginUser"]) && isset($_POST["loginPass"])) {
          $result = mysql_query("SELECT * FROM members WHERE user='$_POST[loginUser]' AND pass='$_POST[loginPass]'");
              if (mysql_num_rows($result) > 0) {
                  $_SESSION['user'] = $_POST[loginUser];
                    header("location: index.php");

        }

    else {
        echo "Access denied--nah nah na nah nah!";
    }
      }
    }

    else { header("location: index.php"); }
?>

og index.php:
<TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=1><STRONG><center>Logged in as <?=$_SESSION['user'];?></center></STRONG></FONT></TD>
Avatar billede horseshit Nybegynder
05. januar 2003 - 19:53 #7
ligemeget tipsen, jeg har fået skidtet til at virke, men jeg bakser lidt med at jeg gerne vil kunne include access levels i mine sessions, f.eks. definere ud fra admin, user og guest, og så checke når en bruger logger ind hvilken status vedkommende har, kan du forklare mig hvordan jeg gør dette (fordobler points hvis du kan hjælpe mig med dette)?
Avatar billede tipsen Nybegynder
06. januar 2003 - 03:43 #8
Det er en længere smøre - jeg har selv implementeret det på et tidspunkt udfra en fin tutorial med tilhørende kode:

http://www.devshed.com/Server_Side/PHP/TimeIsMoney/TimeIsMoney1/print_html

Den dækker mere end du har behov for, men det er også en god tutorial og en pæn løsning.
Avatar billede horseshit Nybegynder
06. januar 2003 - 05:25 #9
takker mange gange for hjælpen, jeg fandt ud af det her er lidt for ulejligheden :-)
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