Avatar billede teck Nybegynder
19. april 2006 - 16:26 Der er 12 kommentarer og
1 løsning

Problemer med login!

Hej,
Jeg sidder og laver en ny hjemmeside, med et loginscript jeg har brugt mange gange før på andre sider, men nu virker skidtet ikke. Den logger godt nok ind, men smider brugeren hen til login igen! Er der en der kan se fejlen, for jeg kan ike :).. Det er følgende filer der bliver brugt:

login.php

<html>
<head>
<title>Login</title>
<style type="text/css">
<!--
.style7 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
-->
</style>
</head>
<body>

    <div align="center"><img src="images/logo.jpg" width="184" height="69">
    </div>
    <form action="checkbruger.php" method="post" name="form1">
    <table width="242" height="239"  border="0" align="center" cellpadding="0" cellspacing="0" background="images/loginboks.jpg"  style="background-repeat : no-repeat;">
    <tr>
      <td><table width="50%" border="0" align="center" cellpadding="4" cellspacing="0">
        <tr>
          <td width="22%"><span class="style7">Brugernavn</span></td>
          <td width="78%"><input name="username" type="text" id="username" STYLE='border-right : 1px solid #806845; border-left : 1px solid #806845; border-top : 1px solid #806845; border-bottom : 1px solid #806845;'></td>
        </tr>
        <tr>
          <td><span class="style7">Password</span></td>
          <td><input name="password" type="password" id="password" STYLE='border-right : 1px solid #806845; border-left : 1px solid #806845; border-top : 1px solid #806845; border-bottom : 1px solid #806845;'></td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input name="Submit" type="submit" value="Login" style='border-right : 1px solid #806845; border-left : 1px solid #806845; border-top : 1px solid #806845; border-bottom : 1px solid #806845; background : #DDCBB4; cursor: hand;'></td>
        </tr>
      </table></td>
    </tr>
  </table>
  <div align="center"></div>
</form>
</body>
</html>


checkbruger.php
<?
session_start();
include '../connect/connect.php';
$bruger = $_POST['username'];
$password = $_POST['password'];

if((!$bruger) || (!$password)){
    echo "<br><center><b>Indtast venligst alle informationer</center></b><br />";
    include 'login.php';
    exit();
}


// check if the user info validates the db
$sql = mysql_query("SELECT * FROM bruger WHERE user='$bruger' AND pass='$password'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
    while($row = mysql_fetch_array($sql)){
    foreach( $row AS $key => $val ){
        $$key = stripslashes( $val );
    }
        // Register some session variables!
        session_register(bruger');
        $_SESSION['bruger'] = $bruger;
        $query = mysql_query("UPDATE bruger set last_login=now() WHERE user='$bruger'") or die(mysql_error());
        echo"login gennemført! Velkommen $bruger";
        echo "<META HTTP-EQUIV='Refresh' CONTENT='1;URL=index.php'>";
    }
} else {
    echo "<br><center>Du kunne ikke blive logget ind! Enten passer Brugernavn og Password ikke eller du har ikke tilladelse til få adgang!<br />
    Prøv venligst igen!<br /></center>";
    include 'login.php';
}
?>


index.php
<?
ob_start();
session_start();
header("Cache-control: private");
if(!$bruger){
include('login.php');
exit();
}
else {
?> 
Det indhold man skal have adgang til!
<? } ?>

Håber der er en der kan hjælpe!
Avatar billede webstuff Nybegynder
19. april 2006 - 16:36 #1
Prøv det her :-)

#index.php
<?
session_start();
ob_start();
header("Cache-control: private");
if(!$bruger){
include('login.php');
exit();
}
else {
?>
Det indhold man skal have adgang til!
<? } ?>
Avatar billede teck Nybegynder
19. april 2006 - 16:43 #2
det hjalp desværre ikke :(... jeg fatter ikke hvad der går galt, skidtet virker på 3 andre sider der er hostet ved B-one.dk
Avatar billede barklund Nybegynder
19. april 2006 - 16:47 #3
Der er i hvert fald en fejl i:

session_register(bruger');

Det giver en php-fejl, så det står der vel ikke?
Avatar billede barklund Nybegynder
19. april 2006 - 16:48 #4
Derudover drejer det sig nok om register_globals - prøv:

if(!$_SESSION['bruger']){
include('login.php');
exit();
}
else {
?>
Det indhold man skal have adgang til!
<? } ?>
Avatar billede teck Nybegynder
19. april 2006 - 16:49 #5
nej, der står session_register('bruger');  :)....
Avatar billede teck Nybegynder
19. april 2006 - 16:53 #6
sådan baklund... det virker :)... undre bare mig over at det virker på alle de andre sider hos B-one.dk!?!!??!?! Smid lige et svar :)... og tak for hjælpen!
Avatar billede barklund Nybegynder
19. april 2006 - 16:55 #7
Et spørgsmål om register_globals on eller off - den er så (desværre) on på de andre. Det anbefales at den er off :)
Avatar billede teck Nybegynder
19. april 2006 - 16:56 #8
Vil gå ind og rette det på de andre sider, så er det ikke koden der fejler :)
Avatar billede teck Nybegynder
19. april 2006 - 17:20 #9
barklund ...lige et hurtigt spørgsmål, det der med at register_globals er off... betyder det at de variabler der skal updateres i ens MySQL database skal skrives på en speciel måde?
Avatar billede barklund Nybegynder
19. april 2006 - 17:20 #10
Finfin :)
Avatar billede barklund Nybegynder
19. april 2006 - 17:22 #11
Overhovedet ikke :)
Avatar billede teck Nybegynder
19. april 2006 - 17:23 #12
hmm.. ok, kan bare ikke få den til at opdatere felter i MySQl databasen... det går sku ellers meget godt :)
Avatar billede barklund Nybegynder
20. april 2006 - 10:29 #13
Det kræver selvfølgelig, at du ikke bare læser POST eller GET variabler som $navn, men som $_POST['navn'] eller $_GET['navn'] - men det har intet med mysql at gøre og kun noget med PHP at gøre :)
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