Avatar billede human Nybegynder
22. marts 2003 - 01:55 Der er 19 kommentarer og
1 løsning

Session problem..

Jeg har dette:

<?
require("conn_inc.php");

if(!isset($_POST['Submit'])) {
    print "Du kom da vist ikke fra login siden gjorde du?";
    }else{
        $postbruger = $_POST['Brugernavn'];
        $postpass = $_POST['Password'];
       
        $resultat = mysql_query("SELECT Id FROM `brugere` WHERE Brugernavn = '$postbruger' AND Password = '$postpass'");

        $number = mysql_num_rows($resultat);
        if($number == 1) {
        $_SESSION['logget_in'] = 1;
        $_SESSION['Brugernavn'] = $postbruger;
        $_SESSION['Password'] = $postpass;
        print "Du er nu logget ind ";
        print "$postbruger<br /><br />";
?>

tralala
<?
        }else print "Glem det!";
        }
?>

Og tjekker med dette:

<?
session_start();
header("Cache-control: private");
if(!$_SESSION['logget_in'] == 1) {
header("Location: http://test");
exit;
}
?>

Men skidtet virker ikke :o(
Er det muligt den er gal med min server conf eller er det mig der har lavet en eller anden dum fejl?

Ingen fejlmeddelser, den smider mig bare dertil hvor jeg nu har bedt den om hvis login ikke var ok. Derfor jeg tror det er min php.ini.
Avatar billede schaefner Juniormester
22. marts 2003 - 10:05 #1
Husker du også at sætte session_start(); i det dokument der logger brugeren ind?

--- login ---
<?
session_start();
require("conn_inc.php");
if(!isset($_POST['Submit'])) {
    print "Du kom da vist ikke fra login siden gjorde du?";
}else{
    $postbruger = $_POST['Brugernavn'];
    $postpass = $_POST['Password'];
    $resultat = mysql_query("SELECT * FROM brugere WHERE Brugernavn = '$postbruger' AND Password = '$postpass'");
    if(mysql_num_rows($resultat) == 1) {
        $_SESSION['logget_in'] = 1;
        $_SESSION['Brugernavn'] = $postbruger;
        $_SESSION['Password'] = $postpass;
        print "Du er nu logget ind";
        print "$postbruger<br /><br />";
    } else {
        print "Det holder ikke helt det der";
    }
}
?>

--- tjek ---
<?
session_start();
header("Cache-control: private");
if(!isset($_SESSION['logget_in'])) {
    header("Location: http://test");
    exit;
}
?>
Avatar billede human Nybegynder
22. marts 2003 - 14:01 #2
Yup det gør jeg.
Avatar billede human Nybegynder
22. marts 2003 - 14:03 #3
Men som sagt, jeg har på fornemmelsen det er min php.ini den er gal med, jeg har sar session save path. Andre ting der skal sættes for at det virker?

Kører også med register_globals hvis det kan hjælpe på nogen måde.
Avatar billede human Nybegynder
22. marts 2003 - 15:35 #4
Smider gerne flere poing i puljen hvis det er der skoen trykker.
Avatar billede supermand69 Nybegynder
22. marts 2003 - 19:43 #5
Læg mærke til at PHP er case sensitive...

<?
session_start();

require("conn_inc.php");

if(!isset($_POST[Submit])) echo 'Du kom da vist ikke fra login siden gjorde du?';
else
{
        $get = mysql_query("SELECT id FROM brugere WHERE brugernavn='$_POST[Brugernavn]' && password='$_POST[Password]'");
    $num = mysql_num_rows($get);
        if($num > 0)
        {
            $_SESSION['logget_in'] = 1;
            $_SESSION['Brugernavn'] = $_POST[Brugernavn];
            $_SESSION['Password'] = $_POST[Password];
           
            echo 'Du er nu logget ind '.$_POST[Brugernavn].'<br>';
        }
        else echo 'Glem det!';
}
?>



<?
session_start();

header('Cache-control: private');

if(!$_SESSION['logget_in'] == 1)
{
    header('Location: http://test');
    exit;
}
?>
Avatar billede supermand69 Nybegynder
22. marts 2003 - 19:44 #6
det kan jo være at du har skrevet dine inputs med startende stort bogstav og ikke gjort det i din var..

eks. $_POST[Brugernavn]
Avatar billede human Nybegynder
23. marts 2003 - 21:13 #7
Login.php

<form name="Login" method="POST" action="admin/loginok.php">
Brugernavn:<br>
<input type="text" name="Brugernavn" class="form"><br>
Password:<br> 
<input type="password" name="Password" class="form"><br><br>
<input type="submit" name="submit" value="Login" class="submit">
</form>


Loginok.php

<?
session_start();
header("Cache-control: private");
?>
<?
require("conn_inc.php");

if(!isset($_POST['submit'])) {
    print "Du kom da vist ikke fra login siden gjorde du?";
    }else{
        $postbruger = $_POST['Brugernavn'];
        $postpass = $_POST['Password'];
       
        $resultat = mysql_query("SELECT Id FROM `brugere` WHERE Brugernavn = '$postbruger' AND Password = '$postpass'");

        $number = mysql_num_rows($resultat);
        if($number == 1) {
        $_SESSION['Logget_in'] = 1;
        $_SESSION['Brugernavn'] = $postbruger;
        $_SESSION['Password'] = $postpass;
        print "Du er nu logget ind ";
        print "$postbruger<br /><br />";
?>
lala
<?
        }else print "Glem det!";
        }
?>

tjek.php:

<?php
session_start();
header("Cache-control: private");
if(!$_SESSION['Logget_in'] == 1) {
header("Location: http://www.bvftransport.dk/login.php");
exit;
}
?>

Der er hele svadaen. Se om du kan se et eller andet stort bogstav hvor det ikke skulle være eller noget. Jeg har givet op.
Avatar billede schaefner Juniormester
24. marts 2003 - 10:47 #8
--- login.php ---

<form name="login" method="post" action="admin/loginok.php">
Brugernavn:<br>
<input type="text" name="brugernavn" class="form"><br>
Password:<br> 
<input type="password" name="password" class="form"><br><br>
<input type="submit" name="submit" value="Login" class="submit">
</form>

--- loginok.php ---

<?
session_start();
header("Cache-control: private");
require("conn_inc.php");
if(!isset($_POST['submit'])) {
  print "Du kom da vist ikke fra login siden gjorde du?";
}else{
  $postbruger = $_POST['brugernavn'];
  $postpass = $_POST['password'];
  $resultat = mysql_query("SELECT * FROM brugere WHERE Brugernavn = '$postbruger' AND Password = '$postpass'");

  if(mysql_num_rows($resultat) == 1) {
    $_SESSION['logget_in'] = 1;
    $_SESSION['brugernavn'] = "$postbruger";
    $_SESSION['password'] = "$postpass";
    echo "Du er nu logget ind som $postbruger<br><br>";
  } else {
    echo "Glem det! Der er noget galt her";
  }
}
?>

--- tjek.php ---

<?php
session_start();
header("Cache-control: private");
if($_SESSION['logget_in'] != 1) {
  header("location: http://www.bvftransport.dk/login.php");
  exit;
}
?>
Avatar billede supermand69 Nybegynder
24. marts 2003 - 12:34 #9
human -->
Var det ikke nemmere hvis du i $_SERSSION[logget_in] lagde id-værdien på brugeren i stedet for at smide 1??

så kunne du jo i princippet bare lave den her i toppen af dit dokument, for at hente hele rækken med brugeren:

<?
if($_SESSION[logget_in]) $user = mysql_fetch_array(mysql_query("SELECT * FROM `db`.`table` WHERE id='$_SESSION[logget_in]"));
?>

Jeg ville da mene det var nemmere end at lave 3 sessions hvor du bare kan nøjes med 1... Her kan du så kalde brugernavnet ved "$user[brugernavn]" og passwordet ved "$user[password]"
Avatar billede supermand69 Nybegynder
24. marts 2003 - 12:59 #10
det er testet og det virker :)

.: login.php :.

<?
session_start();

if($_POST[submit])
{
    mysql_connect('127.0.0.1', 'user', 'pass')or die(mysql_error());
   
    $get = mysql_query("SELECT id FROM `db`.`brugere` WHERE brugernavn='$_POST[brugernavn]' && password='$_POST[password]'")or die(mysql_error());
    if($row = mysql_fetch_array($get)) $_SESSION[logget] = $row[id];
    else $error = 'Forkert brugernavn eller password';
   
    if(!$error) header('location: tjek.php');
}

echo $error;
?>

<form method="post" action="<?=basename($PHP_SERLF)?>">
Brugernavn:<br>
<input name="brugernavn" class="form"><br>
Password:<br> 
<input type="password" name="password" class="form"><br><br>
<input type="submit" name="submit" value="Login" class="submit">
</form>

.: tjek.php :.

<?
session_start();

if($_SESSION[logget])
{
    mysql_connect('127.0.0.1', 'user', 'pass')or die(mysql_error());
    $user = mysql_fetch_array(mysql_query("SELECT * FROM `db`.`brugere` WHERE id='$_SESSION[logget]'"))or die(mysql_error());
}
else header('location: login.php');

echo 'Du er nu looget ind med brugernavnet: '.$user[brugernavn];
?>
Avatar billede supermand69 Nybegynder
24. marts 2003 - 13:02 #11
ups...

fejl i login formen (er R for meget):
<form method="post" action="<?=basename($PHP_SELF)?>">
Avatar billede human Nybegynder
24. marts 2003 - 17:19 #12
Jeg har sat den op til 50 poing nu supermand.

Vil du så indsætte min <? include("conn_inc.php") ?> for mig?
Så det kører sammen med dit script self
Avatar billede supermand69 Nybegynder
24. marts 2003 - 17:39 #13
human -->

kan du ikke lige copy/paste hvad der står i filen.. husk lige at slet user/pass ;) det vil du jo nok ikke have andre skal have :)
Avatar billede supermand69 Nybegynder
24. marts 2003 - 17:40 #14
altså i conn_inc.php
Avatar billede human Nybegynder
24. marts 2003 - 18:48 #15
sure :o)
$host = "";
$user = "";
$pass = "";
$db = "";

$conn = mysql_connect("$host","$user","$pass");
if (!$conn) die(mysql_error());
mysql_select_db($db,$conn) || die(mysql_error());

Men det skal stadig fungere på den måde at den bare skal includes.. Er nemlig ikke helt med¨på den måde du får kontakt til din db i dit script.. Har aldrig gjort sådan før.
Avatar billede supermand69 Nybegynder
24. marts 2003 - 20:23 #16
hehe... det er nu egentligt meget enkelt, og meget bedre hvis du arbejder i flere forskellige databaser på en gang...

eks.
// Connect til MySQL serveren
mysql_connect('127.0.0.1', 'user', 'pass');

// MySQL query
$db = 'database'; // vælg den database du vil arbejde med
$table = 'brugere'; // vælg den table du vil arbejde med... her er det så brugere
mysql_query("SELECT id FROM `$db`.`$brugere`");
Avatar billede supermand69 Nybegynder
24. marts 2003 - 20:26 #17
du kan så nøjes med at ligge følgende i din conn fil

<?
mysql_connect('127.0.0.1', 'user', 'pass');
?>
Avatar billede human Nybegynder
24. marts 2003 - 23:00 #18
Det kan jeg jo så ikke når den bliver inkluderet på over 40 andre sider.

Derfor det var smart hvis det var mit script fejlen blev fundet, så¨jeg kan bruge min egen conn fil.

Hvis jeg gør som du siger der, skal jeg til at ændre en helvedes masse.
Avatar billede supermand69 Nybegynder
24. marts 2003 - 23:41 #19
sådan her... nu skulle det gerne virke :)

<?
session_start();

if($_POST[submit])
{
    require('conn_inc.php');
   
    $get = mysql_query("SELECT id FROM brugere WHERE brugernavn='$_POST[brugernavn]' && password='$_POST[password]'")or die(mysql_error());
    if($row = mysql_fetch_array($get)) $_SESSION[logget] = $row[id];
    else $error = 'Forkert brugernavn eller password';
   
    if(!$error) header('location: tjek.php');
}

echo $error;
?>

<form method="post" action="<?=basename($PHP_SERLF)?>">
Brugernavn:<br>
<input name="brugernavn" class="form"><br>
Password:<br> 
<input type="password" name="password" class="form"><br><br>
<input type="submit" name="submit" value="Login" class="submit">
</form>

.: tjek.php :.

<?
session_start();

if($_SESSION[logget])
{
    require('conn_inc.php');
   
    $user = mysql_fetch_array(mysql_query("SELECT * FROM brugere WHERE id='$_SESSION[logget]'"))or die(mysql_error());
}
else header('location: login.php');

echo 'Du er nu looget ind med brugernavnet: '.$user[brugernavn];
?>
Avatar billede human Nybegynder
24. marts 2003 - 23:47 #20
Dur ikke. Gider ikke det her mer.
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