Avatar billede tjensen Nybegynder
18. september 2004 - 22:32 Der er 16 kommentarer og
1 løsning

Login, hvordan er det rigtig at gøre det nu?

Hey!
Jeg har et ældre login script jeg har lavet. I sammendrag er koderne således:

index.php
<form action="login.php" method="POST">
<input type="hidden" name="login" value="1">
User:<br>
<input type="text" name="bruger" size="16"><br>   
Pass:<br>
<input type="password" name="kode" size="16"><br>
<input type="submit" value="Login">

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

login.php
if ($_POST["login"]){
    include "db.php";
    $sql = mysql_query("SELECT adgang_niv FROM bruger WHERE brugernavn = '$bruger' AND kodeord = '$kode'");

    if (mysql_num_rows($sql)>0){
        $brugerdata = mysql_fetch_array($sql);
       
        if($brugerdata['adgang_niv']=="admin"){
          $adgang_niv = "admin";
        session_register("adgang_niv");
          ?>
          <script language="Javascript">window.location = "index.php";</script>
          <?php
          }
             
          if ($brugerdata['adgang_niv']=="bruger") {
        $adgang_niv = "bruger";
          session_register("adgang_niv");
          ?>
          <script language="Javascript">window.location = "index.php";</script>
          <?php
        }
      } else {
    $adgang_niv = "gaest";
    session_register("adgang_niv");
    ?>
    <script language="Javascript">window.location = "index.php";</script>
    <?php
    }
}

if ($_POST["logout"]){
session_unregister("adgang_niv");
?>
<script language="Javascript">window.location = "index.php";</script>
<?php
}
?>

<!-- I tilfælde af andre lander her... -->
<script language="Javascript">
window.location = "index.php";
</script>

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

og til sidst på index.php er der en menu til bruger og admin

if ($_SESSION['adgang_niv']=="bruger" OR $_SESSION['adgang_niv']=="admin") {

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

Jeg er nu igang med en ny hjemmeside, og da det andet er et år gammelt og ikk fungere efter nye version af php, hvordan er det så optimalt at skrive det nu?
I min php.ini har jeg nu register_globals = on det vil jeg også gerne væk fra.

Hilsen Thomas
Avatar billede erikjacobsen Ekspert
18. september 2004 - 22:38 #1
Måske skal du bare udskifte
  $bruger
med
  $_POST['bruger']
og tilsvarende for andre formelementer.
Avatar billede tjensen Nybegynder
18. september 2004 - 22:40 #2
det har jeg også været igang med... Men jeg kom til at overvejer det med min php.ini hvor jeg nu har register_globals = on det vil jeg også gerne væk fra.
Avatar billede erikjacobsen Ekspert
18. september 2004 - 22:42 #3
$_POST['bruger'] virker både med og uden, så det er bedst (og en anelse sikrere)
Avatar billede tjensen Nybegynder
18. september 2004 - 22:44 #4
Hmm, den kommer med
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

I den linie hvor jeg ændrede $_POST['bruger'] og $_POST['kode'], har ikk ændret andet.
Avatar billede erikjacobsen Ekspert
18. september 2004 - 22:46 #5
Hvis du gør det i en PHP-streng skal du

"SELECT adgang_niv FROM bruger WHERE brugernavn = '{$_POST['bruger']}' AND kodeord = '{$_POST['kode']}'")

læg mærke til { og } -erne
Avatar billede tjensen Nybegynder
18. september 2004 - 22:49 #6
nice, utrolig hvad 1 år i mili kan ødelægge, man er slet ikk uptodate med det der.

Nu er det på plads.

Hvorfor giver det så ingen resultat når jeg på index.php har en print $_SESSION['adgang_niv'] og mine menuer kommer ikk frem.
Avatar billede erikjacobsen Ekspert
18. september 2004 - 22:56 #7
Prøv så fx
  $_SESSION['adgang_niv']="admin"
i stedet for session_register.
Avatar billede tjensen Nybegynder
18. september 2004 - 23:04 #8
Den gider godt skrive det hvis jeg stopper den på login.php. Men normalt hopper den bare tilbage via <script language="Javascript">window.location = "index.php";</script> Og så på index.php skriver den ikk noget ved print.
Avatar billede erikjacobsen Ekspert
18. september 2004 - 23:06 #9
Og du har rettet koden som jeg foreslår?
Avatar billede tjensen Nybegynder
18. september 2004 - 23:07 #10
jeg, har overladt min skæbne i dine hænder..
Avatar billede tjensen Nybegynder
19. september 2004 - 00:12 #11
Okay, nu har jeg selv leget lidt videre.
Det viser sig at når jeg laver en include ('login.php') og ændre de 2 formler (til at submit til index.php selvfølgelig) så virker det. Men hvorfor ændre det sig, hvad ødelægger:
<script language="Javascript">window.location = "index.php";</script>

Og hvad er alternativet?
Avatar billede erikjacobsen Ekspert
19. september 2004 - 00:14 #12
Jeg kan ikke fortælle dig det uden flere informationer. Umiddelbart ser det korrekt ud.
Avatar billede tjensen Nybegynder
19. september 2004 - 00:17 #13
Øv, men okay fair nok jeg må jo klarer mig så.. Ellers tak!

Du må jo lige dumpe et svar hvis du vil have points (ved godt du ikk er ude for at høste points...)

Men er der andre der har lyst til at svare, så skriv endelig, er stadig interesseret!
Avatar billede andersdp Nybegynder
19. september 2004 - 06:51 #14
>> erikjakobsen

Hvorfor pakker du variablerne ind i {}? "læg mærke til { og } -erne".....

Det har jeg ikke set før...
Avatar billede andersdp Nybegynder
19. september 2004 - 07:59 #16
Okaj :)
Avatar billede tjensen Nybegynder
19. september 2004 - 14:08 #17
Det er som om folk ikk kommer ind på indlæg der ikk er helt friske og ubesvaret. Lukker.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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