Oprettet man. d. 07. juli 2003 kl. 14:32:23

hoejgaard
hoejgaard (7.546 point. Point ude: 0)

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/ (...));               
      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();
?>

Skrevet man. d. 07. juli 2003 kl. 14:38:13| #1

hoejgaard
hoejgaard (7.546 point)
den burde jo gå ind i

if (($j == 2) & (empty($userid)))

Skrevet man. d. 07. juli 2003 kl. 14:53:56| #2

hoejgaard
hoejgaard (7.546 point)
ingen gode råd :)

Skrevet man. d. 07. juli 2003 kl. 15:10:41| #3

detox
detox (69.457 point)
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 !';

Skrevet man. d. 07. juli 2003 kl. 15:14:05| #4

detox
detox (69.457 point)
Det er sådan at isset() returnerer TRUE, hvis en variable = ""

Skrevet man. d. 07. juli 2003 kl. 15:16:41| #5

detox
detox (69.457 point)
Det gør den forøvrigt osse, så du må nok tjekke med:
if (isset($userid) && $uderid != "")

Skrevet man. d. 07. juli 2003 kl. 19:37:05| #6

hoejgaard
hoejgaard (7.546 point)
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/ (...));               
      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 ?????

Skrevet man. d. 07. juli 2003 kl. 19:44:50| #7

hoejgaard
hoejgaard (7.546 point)
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

Skrevet man. d. 07. juli 2003 kl. 19:55:44| #8

hoejgaard
hoejgaard (7.546 point)
ingen gode råd :)

Skrevet man. d. 07. juli 2003 kl. 20:23:11| #9

detox
detox (69.457 point)
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?

Skrevet man. d. 07. juli 2003 kl. 20:25:57| #10

detox
detox (69.457 point)
var_dump($userid);
if ($userid == "" && $j>=2)
      echo 'Du skal skrive et brugernavn!';

Skrevet man. d. 07. juli 2003 kl. 21:44:34| #11

hoejgaard
hoejgaard (7.546 point)
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/ (...));               
      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();
?>

Skrevet man. d. 07. juli 2003 kl. 21:46:10| #12

hoejgaard
hoejgaard (7.546 point)
den går ind i følgende sætning :
if (!empty($userid)) 
      echo 'Du har skrevet forkert brugernavn og password !';
    }

Skrevet man. d. 07. juli 2003 kl. 21:59:37| #13

detox
detox (69.457 point)
Du har et _ for meget her:
$__SESSION['valid_user']  = $userid;

Skrevet man. d. 07. juli 2003 kl. 22:26:22| #14

hoejgaard
hoejgaard (7.546 point)
du har ret, det var der fejlen var :)

Skrevet man. d. 07. juli 2003 kl. 22:26:49| #15

hoejgaard
hoejgaard (7.546 point)
læg et svar detox, og du får point

Skrevet man. d. 07. juli 2003 kl. 22:30:21| #16

hoejgaard
hoejgaard (7.546 point)
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 ??

Skrevet man. d. 07. juli 2003 kl. 22:35:37| #17

hoejgaard
hoejgaard (7.546 point)
når jeg klikker videre kommer den med en feks. login.html istedet for logind.php ???

Skrevet man. d. 07. juli 2003 kl. 22:38:23| #18

detox
detox (69.457 point)
Så vil jeg tro det er linket det er galt med. Hvordan ser det ud?

Skrevet man. d. 07. juli 2003 kl. 22:39:55| #19


Skrevet man. d. 07. juli 2003 kl. 22:48:52| #20

hoejgaard
hoejgaard (7.546 point)
ja der var forkerte henvisninger, tak for hjælpen og læg et svar

Skrevet man. d. 07. juli 2003 kl. 22:49:46| #21

detox
detox (69.457 point)
Velbekommen

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger