Avatar billede hoejgaard Juniormester
07. juli 2003 - 14:32 Der er 20 kommentarer og
1 løsning

log ind kode

Je´g har nu siddet og rodet med denne kode et stykke tid, og jeg kan ikke få det til at virke efter hensigten.

Der kommer som sådan ingen fejlmeddelelser, men det gør bare ikke som jeg vil ha !!
Når brugeren klikker på login uden at skrive noget brugernavn skrives der til skærmen :

"Du har skrevet forkert brugernavn og
password" 

Det sker i følgende kode :
if (isset($userid))
    echo 'Du har skrevet forkert brugernavn og password !';
   

og isset betyder da at der er en værdi for variablen, og det kan der da ikke være når brugeren ikke har indtastet noget!!


Her er hele koden :


<? ob_start(); ?>
<?php
session_start();
require("sidehoved.html");
if (isset($HTTP_POST_VARS[userid]) && isset($HTTP_POST_VARS[pass]))
{
  // if the user has just tried to log in
  $userid = $HTTP_POST_VARS['userid'];
  $pass = $HTTP_POST_VARS['pass'];
  $db_conn = mysql_connect("localhost", "root")  or die(mysql_error());
  mysql_select_db('registrering', $db_conn)  or die(mysql_error());
  $query = "select * from kunde where brugernavn='$userid' and pass='$pass'";
$result = mysql_query($query, $db_conn) or die(mysql_error());
  if (mysql_num_rows($result) >0 )
  {
    // if they are in the database register the user id
    $HTTP__SESSION_VARS['valid_user']  = $userid; 
  }
}
?>



<html>
<body>
<!--<h1>Home page</h1> -->
<?
static $j = 1;
echo $j;
if (isset($HTTP_SESSION_VARS['valid_user']))
  {
      header("Location: http://127.0.0.1/registrering/til10.php");               
      exit;
//    echo 'You are logged in as: '.$HTTP_SESSION_VARS['valid_user'].' <br />';
//    echo '<a href="logout.php">Log out</a><br />';
  }
 
  else
  {
      if (($j == 2) & (empty($userid)))
   
    echo 'Du skal skrive et brugernavn!';   
   
      if (isset($userid))
   
         
      echo 'Du har skrevet forkert brugernavn og password !';
   
   
  }
  $j++;
  echo $j;
    // provide form to log in
?>




    <center>
    <form method="post" action="loginform.php">
    <table>
    <tr><td>Userid:</td>
    <td><input type="text" name="userid"></td></tr>
    <tr><td>Password:</td>
    <td><input type="PASSWORD" name="pass"></td></tr>
    <tr><td colspan="2" align="center">
    <input type="submit" value="Log in"></td></tr>
    </table></form>
<br>
<br>
<br>
<br>
<br>

<?

require("sidefod.html");

ob_end_flush();
?>
Avatar billede hoejgaard Juniormester
07. juli 2003 - 14:38 #1
den burde jo gå ind i

if (($j == 2) & (empty($userid)))
Avatar billede hoejgaard Juniormester
07. juli 2003 - 14:53 #2
ingen gode råd :)
Avatar billede detox Nybegynder
07. juli 2003 - 15:10 #3
Er du sikker på at $j==2?
Tror osse du mangler et & her: if (($j == 2) && (empty($userid)))
Kunne du ikke ændre det til:
if (!empty($userid))
    echo 'Du har skrevet forkert brugernavn og password !';
Avatar billede detox Nybegynder
07. juli 2003 - 15:14 #4
Det er sådan at isset() returnerer TRUE, hvis en variable = ""
Avatar billede detox Nybegynder
07. juli 2003 - 15:16 #5
Det gør den forøvrigt osse, så du må nok tjekke med:
if (isset($userid) && $uderid != "")
Avatar billede hoejgaard Juniormester
07. juli 2003 - 19:37 #6
Jeg har snart prøvet alt, og håber der er en der kan hjælpe med dette, som egentligt burde være ret banalt.

Der er som sagt et script der giver en login box og checker ved login om der er indtastet et gyldigt password, og om der er indtastet noget i det hele taget.
Det skal også være sådan at lige når man kommer til login siden skal der IKKE stå feks "du har ikke indtastet brugernavn", men først når man har klikket på login.

Koden ser pt. sådan her ud :

<? ob_start(); ?>
<?php
session_start();
require("sidehoved.html");
require_once('data_valid_fns.php');
if (isset($HTTP_POST_VARS[userid]) && isset($HTTP_POST_VARS[pass]))
{
  // if the user has just tried to log in
  $userid = $HTTP_POST_VARS['userid'];
  $pass = $HTTP_POST_VARS['pass'];
  $db_conn = mysql_connect("localhost", "root")  or die(mysql_error());
  mysql_select_db('registrering', $db_conn)  or die(mysql_error());
  $query = "select * from kunde where brugernavn='$userid' and pass='$pass'";
$result = mysql_query($query, $db_conn) or die(mysql_error());
  if (mysql_num_rows($result) >0 )
  {
    // if they are in the database register the user id
    $HTTP__SESSION_VARS['valid_user']  = $userid; 
  }
}
?>



<html>
<body>
<!--<h1>Home page</h1> -->
<?
static $j = 1;
echo $j;
if (isset($HTTP_SESSION_VARS['valid_user']))
  {
      header("Location: http://127.0.0.1/registrering/til10.php");               
      exit;
//    echo 'You are logged in as: '.$HTTP_SESSION_VARS['valid_user'].' <br />';
//    echo '<a href="logout.php">Log out</a><br />';
  }
 
       
      if ($userid == "" && $j>=2)
      echo 'Du skal skrive et brugernavn!';   
   
      if (isset($userid) && $j>=2)
      echo 'Du har skrevet forkert brugernavn og password !';
 
    $j == $j++;
    echo $j;
    // provide form to log in
?>




    <center>
    <form method="post" action="loginform.php">
    <table>
    <tr><td>Userid:</td>
    <td><input type="text" name="userid"></td></tr>
    <tr><td>Password:</td>
    <td><input type="PASSWORD" name="pass"></td></tr>
    <tr><td colspan="2" align="center">
    <input type="submit" value="Log in"></td></tr>
    </table></form>
<br>
<br>
<br>
<br>
<br>

<?

require("sidefod.html");

ob_end_flush();
?>



Og den skriver INGEN kommentarer hvis brugeren undlader at udfylde felterne, men han bliver dog ikke logget ind.

Hvad er der galt med mine IF sætninger ?????
Avatar billede hoejgaard Juniormester
07. juli 2003 - 19:44 #7
Grunden til at jeg har en variabel $j, er at den bruges til at undgå at IF sætningen :

if ($userid == "" && $j>=2)
      echo 'Du skal skrive et brugernavn!';
 
er true
første gang man kommer til siden
Avatar billede hoejgaard Juniormester
07. juli 2003 - 19:55 #8
ingen gode råd :)
Avatar billede detox Nybegynder
07. juli 2003 - 20:23 #9
Hvis du har styr på det med $j'et, så ved jeg ikke helt hvad der går skævt. Har du prøvet at udskrive $userid lige før if?
Avatar billede detox Nybegynder
07. juli 2003 - 20:25 #10
var_dump($userid);
if ($userid == "" && $j>=2)
      echo 'Du skal skrive et brugernavn!';
Avatar billede hoejgaard Juniormester
07. juli 2003 - 21:44 #11
Nu bruger jeg følgende kode, men nu vil den ikke godkende et ellers gyldigt brugerid eller password???

<? ob_start(); ?>
<?php
session_start();
//require("sidehoved.html");

if (isset($HTTP_POST_VARS['userid']) && isset($HTTP_POST_VARS['pass']))
{
  // if the user has just tried to log in
  $userid = $HTTP_POST_VARS['userid'];
  $pass = $HTTP_POST_VARS['pass'];
  echo $userid;
  $db_conn = mysql_connect("localhost", "root")  or die(mysql_error());
  mysql_select_db('registrering', $db_conn)  or die(mysql_error());
  $query = "select * from kunde where brugernavn='$userid' and pass='$pass'";
$result = mysql_query($query, $db_conn) or die(mysql_error());
  if (mysql_num_rows($result) >0 )
  {
    // if they are in the database register the user id
    $__SESSION['valid_user']  = $userid; 
  }
}
?>



<html>
<body>
<!--<h1>Home page</h1> -->
<?
echo $_SESSION['valid_user'];
if (isset($_SESSION['valid_user']))
  {
      header("Location: http://127.0.0.1/registrering/til10.php");               
      exit;
//    echo 'You are logged in as: '.$HTTP_SESSION_VARS['valid_user'].' <br />';
//    echo '<a href="logout.php">Log out</a><br />';
  }
 
       
      if ($userid == "" && isset($userid))
      echo 'Du skal skrive et brugernavn!';   
   
      else
    {
      if (!empty($userid)) 
      echo 'Du har skrevet forkert brugernavn og password !';
    }
    // $j == $j++;
    // echo $j;
    // provide form to log in
?>




    <center>
    <form method="post" action="loginform.php">
    <table>
    <tr><td>Userid:</td>
    <td><input type="text" name="userid"></td></tr>
    <tr><td>Password:</td>
    <td><input type="PASSWORD" name="pass"></td></tr>
    <tr><td colspan="2" align="center">
    <input type="submit" value="Log in"></td></tr>
    </table></form>
<br>
<br>
<br>
<br>
<br>

<?

require("sidefod.html");

ob_end_flush();
?>
Avatar billede hoejgaard Juniormester
07. juli 2003 - 21:46 #12
den går ind i følgende sætning :
if (!empty($userid)) 
      echo 'Du har skrevet forkert brugernavn og password !';
    }
Avatar billede detox Nybegynder
07. juli 2003 - 21:59 #13
Du har et _ for meget her:
$__SESSION['valid_user']  = $userid;
Avatar billede hoejgaard Juniormester
07. juli 2003 - 22:26 #14
du har ret, det var der fejlen var :)
Avatar billede hoejgaard Juniormester
07. juli 2003 - 22:26 #15
læg et svar detox, og du får point
Avatar billede hoejgaard Juniormester
07. juli 2003 - 22:30 #16
jeg har lige et tillægsspørgsmål, hvis du er frisk på det :)

Når jeg klikker på et link på min hovedside(forside), og kommer til en ny side hvor jeg har en require(sidehoved.html),og man derfra klikker videre til en ny side, vil den ikke gøre det (den kan ikke finde siden. Hvad skyldes det ??
Avatar billede hoejgaard Juniormester
07. juli 2003 - 22:35 #17
når jeg klikker videre kommer den med en feks. login.html istedet for logind.php ???
Avatar billede detox Nybegynder
07. juli 2003 - 22:38 #18
Så vil jeg tro det er linket det er galt med. Hvordan ser det ud?
Avatar billede detox Nybegynder
07. juli 2003 - 22:39 #19
c",)
Avatar billede hoejgaard Juniormester
07. juli 2003 - 22:48 #20
ja der var forkerte henvisninger, tak for hjælpen og læg et svar
Avatar billede detox Nybegynder
07. juli 2003 - 22:49 #21
Velbekommen
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