Avatar billede zorkmontana Nybegynder
27. oktober 2004 - 08:44 Der er 14 kommentarer og
1 løsning

function virker ikke

oki. alle sammen jeg har lige noget jeg skal have fixet her... jeg kan ikke selv finde fejlen... :(
håber en af jer kan...!


<?php

function login($username, $password, $login)
{

if ($login == "yes") {

        $query = "SELECT * FROM `fd-users` WHERE `username`='".$username."'";
       
        if (!mysql_query($query)){print "Can't do SQL query - ".mysql_error()."<br>";}
        else { $result = mysql_query($query);
        if (mysql_num_rows($result)) {$data = mysql_fetch_assoc($result);}
        else {$loginstatus = "Username or Password incorrect!";}}
       
        if ($password == $data['password'])
            {$loginstatus = "You are logged in";}
        else{ $loginstatus = "Username or Password incorrect!";}
        }
   
else {

$query = "SELECT * FROM `fd-users` WHERE `username`='".$_COOKIE['username']."'";
if (!mysql_query($query))
    {
    print "Can't do SQL query - ".mysql_error()."<br>";
    }
else {
    $result = mysql_query($query);
    if (mysql_num_rows($result))
        {
        $data = mysql_fetch_assoc($result);
        }
    else {}
    }

    if ($_COOKIE['username'] == $data['username'])
        {
        if ($_COOKIE['password'] == $data['password'])
            {}
        else{ exit();}
        }
    else { exit();}   
    }
   
    return $loginstatus;
}


if (isset($_POST['login'])){
$password =$_POST['password'];
$username =$_POST['username'];
login($username, $password, "yes");
}

echo "<form enctype=\"multipart/form-data\" method=\"post\">
<input type=\"text\" name=\"username\"><br>
<input type=\"password\" name=\"password\"><br>
<input type=\"submit\" name=\"login\" value=\"Login\"><input type=\"reset\" name=\"reset\" value=\"Reset\">
</form>";

if ($loginstatus != "") {
echo $loginstatus;
$loginstatus = "";
}

?>
Avatar billede bojo Nybegynder
27. oktober 2004 - 08:48 #1
Du mangler at connecte til databasen.

Har du en dbconnect.php eller lign som du har glemt at inkludere
Avatar billede zorkmontana Nybegynder
27. oktober 2004 - 08:50 #2
sorry den er på en anden side :S glemte jeg to sec poster lige det hele...!
Avatar billede zorkmontana Nybegynder
27. oktober 2004 - 08:51 #3
databasen er testet den køre fint...

<?php
if (!mysql_connect($fd_db_host,$fd_db_user,$fd_db_pass))
    {
    print "database error: can't connect to database at shost: $host - ".mysql_error();
    exit();
    }
else
    {
    if (!mysql_select_db($fd_db_name))
        {
        print "database error: can't open database $fd_db_name - ".mysql_error();
        exit();
        }
    else {}
    }


function login($username, $password, $login)
{

if ($login == "yes") {

        $query = "SELECT * FROM `fd-users` WHERE `username`='".$username."'";
       
        if (!mysql_query($query)){print "Can't do SQL query - ".mysql_error()."<br>";}
        else { $result = mysql_query($query);
        if (mysql_num_rows($result)) {$data = mysql_fetch_assoc($result);}
        else {$loginstatus = "Username or Password incorrect!";}}
       
        if ($password == $data['password'])
            {$loginstatus = "You are logged in";}
        else{ $loginstatus = "Username or Password incorrect!";}
        }
   
else {

$query = "SELECT * FROM `fd-users` WHERE `username`='".$_COOKIE['username']."'";
if (!mysql_query($query))
    {
    print "Can't do SQL query - ".mysql_error()."<br>";
    }
else {
    $result = mysql_query($query);
    if (mysql_num_rows($result))
        {
        $data = mysql_fetch_assoc($result);
        }
    else {}
    }

    if ($_COOKIE['username'] == $data['username'])
        {
        if ($_COOKIE['password'] == $data['password'])
            {}
        else{ exit();}
        }
    else { exit();}   
    }
   
    return $loginstatus;
}


if (isset($_POST['login'])){
$password =$_POST['password'];
$username =$_POST['username'];
login($username, $password, "yes");
}

echo "<form enctype=\"multipart/form-data\" method=\"post\">
<input type=\"text\" name=\"username\"><br>
<input type=\"password\" name=\"password\"><br>
<input type=\"submit\" name=\"login\" value=\"Login\"><input type=\"reset\" name=\"reset\" value=\"Reset\">
</form>";

if ($loginstatus != "") {
echo $loginstatus;
$loginstatus = "";
}

?>
Avatar billede jakobdo Ekspert
27. oktober 2004 - 08:53 #4
Hvad med denne kode:

<?php

function login($username, $password, $login)
{
    if ($login == "yes")
    {
        $query = "SELECT * FROM `fd-users` WHERE `username`='".$username."'";
       
        if (!mysql_query($query))
        {
            print "Can't do SQL query - ".mysql_error()."<br>";
        }
        else
        {
            $result = mysql_query($query);
            if (mysql_num_rows($result))
            {
                $data = mysql_fetch_assoc($result);
            }
            else
            {
                $loginstatus = "Username or Password incorrect!";
            }
        }
       
        if ($password == $data['password'])
        {
            $loginstatus = "You are logged in";
        }
        else
        {
            $loginstatus = "Username or Password incorrect!";
        }
    }
    else
    {
        $query = "SELECT * FROM `fd-users` WHERE `username`='".$_COOKIE['username']."'";
        if (!mysql_query($query))
    {
        print "Can't do SQL query - ".mysql_error()."<br>";
    }
        else
        {
        $result = mysql_query($query);
        if (mysql_num_rows($result))
            {
                $data = mysql_fetch_assoc($result);
            }
    }
    if ($_COOKIE['username'] == $data['username'])
        {
            if ($_COOKIE['password'] != $data['password'])
            {
                exit();
            }
        }
    else
    {
        exit();
    }   
    }
    return $loginstatus;
}


if (isset($_POST['login']))
{
    $password =$_POST['password'];
    $username =$_POST['username'];
    login($username, $password, "yes");
}

echo "<form enctype=\"multipart/form-data\" method=\"post\">
<input type=\"text\" name=\"username\"><br>
<input type=\"password\" name=\"password\"><br>
<input type=\"submit\" name=\"login\" value=\"Login\"><input type=\"reset\" name=\"reset\" value=\"Reset\">
</form>";

if ($loginstatus != "")
{
    echo $loginstatus;
    $loginstatus = "";
}

?>
Avatar billede zorkmontana Nybegynder
27. oktober 2004 - 09:00 #5
hvad er forskellen ?? eller hva...
mit problem ligger i at function ikke virker af en eller anden grund... men hvis jeg sætter "det som funktionen gør" ind før min form så fungere det...??
Avatar billede jakobdo Ekspert
27. oktober 2004 - 09:16 #6
Jeg forstår ikke din metode med LOGIN = YES?
Du har jo ikke nogle tilfælde, hvor LOGIN ikke er YES?
Avatar billede jakobdo Ekspert
27. oktober 2004 - 09:23 #7
Men her er din løsning:

$login = login($username, $password, "yes");
if ($login != "")
{
  echo $login;
  $login = "";
}

$loginstatus er en lokalvariabel i din funktion, og kan derfor ikke bruges udenfor!
Avatar billede bojo Nybegynder
27. oktober 2004 - 09:26 #8
jeg kan ikke helt se hvad og hvorfor, men tror at det er dette du vil:


<?php
include "dbconfig.php";

function login($username, $password, $login) {

  $query = "SELECT * FROM `fd-users` WHERE `username`='".$username."'";
  $result = mysql_query($query) or die("Can't do SQL query - ".mysql_error()."<br>");

  if ($login == "yes") {
      if (mysql_num_rows($result)) {
        $data = mysql_fetch_assoc($result);
        if ($password == $data['password']) {
            $loginstatus = "You are logged in";
        } else {
            $loginstatus = "Username or Password incorrect!";
        }
      }
  }

  else {
      if (mysql_num_rows($result)) {
          $data = mysql_fetch_assoc($result);
      }
      if (!($_COOKIE['username'] == $data['username'] && $_COOKIE['password'] == $data['password'] ) ) {
        exit();
      }
  }
  return $loginstatus;
}


if (isset($_POST['login'])){
$password =$_POST['password'];
$username =$_POST['username'];
$loginstatus=login($username, $password, "yes");
}

echo "<form enctype=\"multipart/form-data\" method=\"post\">
<input type=\"text\" name=\"username\"><br>
<input type=\"password\" name=\"password\"><br>
<input type=\"submit\" name=\"login\" value=\"Login\"><input type=\"reset\" name=\"reset\" value=\"Reset\">
</form>";

if ($loginstatus != "") {
echo $loginstatus;
$loginstatus = "";
}

?>
Avatar billede bojo Nybegynder
27. oktober 2004 - 09:27 #9
hov, fjern min include "dbconfig.php";
Avatar billede jakobdo Ekspert
27. oktober 2004 - 18:06 #10
Fik du det til at virke?
Avatar billede zorkmontana Nybegynder
28. oktober 2004 - 22:27 #11
sorry jeg har været så lang tid om at svar .. havde lige en stak lektier der ventede .. :S ... men jeg er løbet ind i et dilemma jeg det jakobdo om at den ikke kunne retunere... så jeg retunerede den via en $_POST og jeg har brugt en del af det bojo sagde til at optimere den ... så hvem skal have point ??
Avatar billede bojo Nybegynder
28. oktober 2004 - 22:29 #12
ikke jeg :-)
Avatar billede zorkmontana Nybegynder
28. oktober 2004 - 22:31 #13
oki.. det gør det nemmer for mig... :-) jamen så mangler jeg bare et svar fra jakobdo
Avatar billede jakobdo Ekspert
29. oktober 2004 - 08:25 #14
Svar...
Avatar billede zorkmontana Nybegynder
29. oktober 2004 - 19:00 #15
YES YES tak for hjælpen begge 2..! ;-) snakkes nok igen .. jeg er nemlig stødt ind i et nyt prob... :-S
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