Avatar billede tobrukDk Novice
28. februar 2012 - 23:32 Der er 14 kommentarer og
1 løsning

problemer med at log ind på hjemmesiden :(

Hej

Det er sådan hvergange at jeg prøver at logge ind så kommer den frem og siger

Brugeren eksisterer ikke.
Tilbage


det her er min kode til når man skal log ind

<form id="loginForm" action="login_godkendt.php" method="post">
            <fieldset id="body">
                <fieldset>
                    <label for="email">Email Address</label>
                    <input type="text" name="email" id="email" />
                </fieldset>
                <fieldset>
                    <label for="password">Adgangskode</label>
                    <input type="password" name="password" id="password" />
                </fieldset>
                <input type="submit" id="login" value="Log ind" />
            </fieldset>
            <span><a href="./">Luk ned</a></span>
        </form>



det her er min kode til at godkende bruger før man kan komme ind på siden

<?php
session_start();

include("include/database/db.php");

$email = $_POST["email"];
$password = $_POST["password"];
$error = "";

$userQuery = mysql_query("SELECT id,email,password FROM brugere WHERE email='$email'");

if(mysql_num_rows($userQuery) != 1)
{
    $error .= "Brugeren eksisterer ikke.<br>";
}
else
{
    $userArray = mysql_fetch_array($userQuery);

    if($userArray["password"] != SHA1($pass))
    {
        $error .= "Password og brugernavn passer ikke sammen.<br>";
    }
}
if($error != "")
{
    echo $error . "<a href=\"java script:history.back(-1);\">Tilbage</a>";
}
else
{
    $_SESSION["logged_in"] = 1;
    $_SESSION["user_id"] = $userArray["id"];
    header("Location: user.php");
}
?>



det her er min sql

CREATE TABLE IF NOT EXISTS `brugere` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `email` varchar(255) DEFAULT NULL,
  `password` varchar(255) NOT NULL,
  `facebook` varchar(255) NOT NULL,
  `land` varchar(255) NOT NULL,
  `profiltekst` text NOT NULL,
  `djnavn` varchar(255) DEFAULT NULL,
  `site` varchar(255) NOT NULL,
  `fk_musik_info` int(11) NOT NULL,
  `profilbillede` varchar(255) NOT NULL,
  `soundcloud` varchar(255) NOT NULL,
  `club` varchar(255) NOT NULL,
  `booking` varchar(255) NOT NULL,
  `pris` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Data dump for tabellen `brugere`
--

INSERT INTO `brugere` (`id`, `email`, `password`, `facebook`, `land`, `profiltekst`, `djnavn`, `site`, `fk_musik_info`, `profilbillede`, `soundcloud`, `club`, `booking`, `pris`) VALUES
(1, 'Resource id #23', '7b52009b64fd0a2a49e6d8a939753077792b0554', 'hehej', 'hej', '<p>hejej</p>', 'hehej', '', 1, '4.png', '', 'hejher', 'herjehj', 124124);


så vil jeg høre hvad jeg har gør galt siden det ikke virker som det skal lige pt ?
Avatar billede webweaver Praktikant
28. februar 2012 - 23:39 #1
Har du checket om brugeren rent faktisk er i databasen? Eller om brugeren evt. står der mere end een gang, for så vil det heller ikke virke med den måde du har bikset det sammen på?

Eller rettere sagt, så virker scriptet sådan set fint nok. Det gør jo bare, hvad det får besked på :-)
Avatar billede tobrukDk Novice
28. februar 2012 - 23:44 #2

if(mysql_num_rows($userQuery) != 1)
{
    $error .= "Brugeren eksisterer ikke.<br>";
}


skal den ikke være != 0 ??? eller hvad? eller skal jeg lade den være 1 og så bare skriver godkendt du kan nu log ind eller hvad?
Avatar billede webweaver Praktikant
28. februar 2012 - 23:49 #3
Først og fremmest, så svar på det jeg spørger dig om :)

Og nej den skal ikke være != 0 ...
Hold den som den er eller ret det til < 1
Avatar billede tobrukDk Novice
28. februar 2012 - 23:50 #4
okay kan det ikke være noget inde for det her område

$email = $_POST["email"];
$password = $_POST["password"];
$error = "";

$userQuery = mysql_query("SELECT id,email,password FROM brugere WHERE email='$email'");

if(mysql_num_rows($userQuery) < 1)
{
    $error .= "Brugeren eksisterer ikke.<br>";
}
else
{
    $userArray = mysql_fetch_array($userQuery);

    if($userArray["password"] != SHA1($pass))
    {
        $error .= "Password og brugernavn passer ikke sammen.<br>";
    }
}
if($error != "")
{
    echo $error . "<a href=\"java script:history.back(-1);\">Tilbage</a>";
}
Avatar billede webweaver Praktikant
28. februar 2012 - 23:51 #5
Og nej, det vil ikke give mening at skrive godkendt eller lignende, for brugeren eksisterer formentlig ikke, når du får denne fejl.

Det er helt basal PHP, som du ikke kan gennemskue. Jeg vil anbefale dig at sætte dig ind i det, før du begynder at arbejde med det ... :)
Avatar billede webweaver Praktikant
28. februar 2012 - 23:52 #6
Svar på det jeg spørger dig om i #1. Så kan vi fortsætte tråden herefter, ellers kan jeg ikke hjælpe dig desværre ...
Avatar billede olebole Juniormester
29. februar 2012 - 00:17 #7
<ole>

@webweaver: Mens du venter, kan du jo så prøve at læse spørgsmålet. Så vil du med det samme se, hvad fejlen er ... naturligvis forudsat, at du har sat dig ind i, hvad du 'arbejder' med  *o)

@tobrukDk: Da du indsatte din bruger i databasen, har du lavet en fejl. Du har sat en resource ind i stedet for en e-mail:

VALUES
(1, 'Resource id #23', '7b52009b64fd0a2a49e6d8a939753077792b0554', .....)

Når du sprøver at lave din SELECT med brugerens rigtige e-mail, kan MySQL selvfølgelig ikke finde ham.

Du har vist indsat brugeren med et script, og i det script laver du en fejl. Du mangler nok at hente e-mailen ud med mysql_fetch_assoc eller mysql_fetch_array  =)

/mvh
</bole>
Avatar billede tobrukDk Novice
29. februar 2012 - 06:15 #8
Kan du se hvad du helt mener ?? Jeg kan ikke se det for mig lige nu ole ;)
Avatar billede DeeDawg Nybegynder
29. februar 2012 - 09:09 #9
@tobrukDk: olebole beskriver klart og tydeligt, hvad han mener.

"Du har sat en resource ind i stedet for en e-mail"

- hvis du ikke forstår hvad en resource er, så er det jo en ærlig sag. Men så bør du nok ikke få olebole's guldkorn til at fremstå som en omgang vås. ;)


Men altså, olebole prøvede at forklare dig, hvordan dette problem er opstået. Og det kan meget vel være sket ved, at du har indsat denne bruger via et script, som har hentet denne email fra en anden tabel i databasen. Du kan i den proces have glemt, at benytte enten mysql_fetch_array() eller mysql_fetch_assoc(), og derved indsat en resource, istedet for den email du ville.

Hvordan? Pga. mysql_query() returnerer en resource, og ikke den data, den henter. Lad os tage et eksempel:

<?php
    mysql_connect("localhost", "root");
    mysql_select_db("wordpress");
   
    $query = mysql_query("SELECT user_email FROM wp_users WHERE id = '1'");
    print_r($query);
?>

Dette vil udskrive følgende til skærmen

Resource id #4

Mens dette

<?php
    mysql_connect("localhost", "root");
    mysql_select_db("wordpress");
   
    $query = mysql_query("SELECT user_email FROM wp_users WHERE id = '1'");
    $result = mysql_fetch_assoc($query);
    print_r($result);
?>

vil udskrive følgende

Array ( [user_email] => webmaster@localhost.com )

Derfor kan du jo nok forstå, at hvis der står Resource id #4 i databasen, vil det ikke være det samme som webmaster@localhost.com, når du prøver at sammenligne det senere hen.


Så du skal rette det script som du opretter brugere med, og manuelt få rettet denne bruger i databasen. Så der står den rigtige e-mail og ikke Resource id #23, som der gør nu. :)
Avatar billede webweaver Praktikant
29. februar 2012 - 15:31 #10
#7 Godt spottet Ole. Må være ærlig og sige, at jeg ikke havde kigget det igennem. Ikke så længe jeg ikke har fået svar på mit spørgsmål. Men kan godt se der ligger et "data-dump", hvor det faktisk fremgår...
Avatar billede olebole Juniormester
29. februar 2012 - 17:20 #11
#10: Jeg har læst på dit site og ved derfor, du er klar over, alle ikke bliver født ens. Noget kan man operere sig ud af - andet kan man desværre ikke.

Jeg har en del baggrundsviden om spørgeren og ved bl.a., at han er svært ordblind og kan have store vanskeligheder med at udtrykke sig og forstå andre, sålænge det foregår på skrift (han nævner det faktisk også selv i sin profil). Derfor gør 'den gamle pitbull' sig lidt ekstra anstrengelser og giver lidt mere snor, end man ellers er vandt til at se fra den kant  =)
Avatar billede webweaver Praktikant
29. februar 2012 - 22:28 #12
Der skal naturligvis være plads til alle :-)
Avatar billede tobrukDk Novice
01. marts 2012 - 06:26 #13
#12 tak men jeg lukker den her samtale da olebole ville hjælp mig privat . Og jeg er glad for at du forstår at der er nogle som har svært ved at forklare nogle ting. jeg synes at jeg er blevet bedre til programmering endnu for det sidste år og kan noget mere endnu da jeg start på uddannelse.. jeg hsr bare svært ved at forklare mig om nogle ting ;)
Avatar billede tobrukDk Novice
01. marts 2012 - 21:46 #14
jeg har fået løst det sammen med olebole og det var sådan at jeg havde lavet en fejl under når man opret en bruger.. :)
Avatar billede tobrukDk Novice
01. marts 2012 - 23:00 #15
lukker den!

kontakt mig på PM hvis det er et problem!.
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