Avatar billede spritzer Nybegynder
08. marts 2004 - 10:46 Der er 23 kommentarer og
1 løsning

Newbie: Kan ikke logge ind i eget script.

Scriptet:

<?
    include("variabler.php");
    if(!isset($name)&&!isset($password))
    {
    # - Hvis der ikke kører en sesssion skal der logges ind.
?>
<html>
<head>
<title>Rites - Admin - Login</title>
<?
include("style.css");
?>
</head>
<body>
<br><br><br><br><br><br><br><br>
<center>
<form method="post" action="login.php">
Brugernavn:<br>
<input type="text" name="name"><br><br>
Adgangskode:<br>
<input type="password" name="password"><br><br>
<input type="submit" value="Log ind">
</form>
</center>
<?
    }
    else
    {
    if(!$mysql)
    {
        echo 'Kan ikke forbinde til databasen - Tjek MySQL opkald linje 3 i variabler.php';
        exit;
    }
    $mysql = mysql_select_db( 'rites' );
    if(!$mysql)
    {
        echo 'Kunne ikke finde tabellen Auth - Er du sikker på at du har kørt nyhed.sql?';
        exit;
    }
    $query = "select count(*) from auth where
                    name = '$name' and
                    pass =  '$password'";
   
    $result = mysql_query( $query );
    if(!$result)
    {
        echo "Kan ikke køre forspørgelsen";
    }
    $count = mysql_result( $result, 0, 0 );
    if ( $count > 0 )
    {
        echo "Du er logget ind - Tillykke";
        header("Location:admin.php");
    }
    else
    {
    echo "Du er ikke logget ind, tror faktisk ikke du hører til her";
}
}
?>

Problemet er at selv om de info jeg intaster er korrekte, går den alligevel ned og siger at brugeren ikke er logget ind :(
Avatar billede avminarm Juniormester
08. marts 2004 - 10:58 #1
det er fordi du skal benytte $_POST ved dine vars se evt: www.wagners.dk/php - artikelen om POST og GET

prøv med:

$query = "select count(*) from auth where
                    name = '".$_POST[name]."' and
                    pass =  '".$_POST['password']."'";
Avatar billede avminarm Juniormester
08. marts 2004 - 11:00 #2
hmm der er flere ting der ikke helt er som de skal være - vent lige to sek...
Avatar billede spritzer Nybegynder
08. marts 2004 - 11:02 #3
else
    {
    echo "Du er ikke logget ind, tror faktisk ikke du hører til her";
}
Den gik forsat ned til overstående... Jeg venter :)
Avatar billede tefcke Nybegynder
08. marts 2004 - 11:05 #4
Kan ikke lige se hvad løsning på dit oprindelige problem er, men hr fundet noget som nok skal rettes:
if( !isset($name) && !isset($password) ) siger "Hvis name IKKE er sat OG hvis password IKKE er sat så ..."
Den skulle nok sige if( !isset($name) || !isset($password) )

Det andet er:
echo "Du er logget ind - Tillykke";
header("Location:admin.php");

Hvis du når her til siger den noget med at header allerede er sendt, og at output startede på linje xx. Du må nemlig ikke udskrive noget inden der kommer en header().
Slet echo "Du er logget ind - Tillykke";
Avatar billede avminarm Juniormester
08. marts 2004 - 11:08 #5
prøv med det her - stil gerne spørgsmål:

<?
    include("variabler.php");
    if(!isset($_POST['name']) && !isset($_POST['password']))
    {
    # - Hvis der ikke er trykket log ind er formularen ikke sendt
    # og variablerne navn og password er ikke til stede,
    # dvs så vises formularen
    # (Hvis der ikke kører en sesssion skal der logges ind) = ikke en session.

    //DENNE FIL SKAL HEDDE login.php
?>
<html>
<head>
<title>Rites - Admin - Login</title>
<?
include("style.css");
?>
</head>
<body>
<br><br><br><br><br><br><br><br>
<center>
<form method="post" action="login.php">
Brugernavn:<br>
<input type="text" name="name"><br><br>
Adgangskode:<br>
<input type="password" name="password"><br><br>
<input type="submit" value="Log ind">
</form>
</center>
<?
    }
    else
    {
    if(!$mysql)
    {
        echo 'Kan ikke forbinde til databasen - Tjek MySQL opkald linje 3 i variabler.php';
        exit;
    }
    $mysql = mysql_select_db( 'rites' );
    if(!$mysql)
    {
        echo 'Kunne ikke finde tabellen Auth - Er du sikker på at du har kørt nyhed.sql?';
        exit;
    }
    $query = "select * from auth where
                    name = '".$_POST['name']."' and
                    pass =  '".$_POST['password']."'"; //Du skal benytte POST variablerne
   
    $result = mysql_query( $query );
    if(!$result)
    {
        echo "Kan ikke køre forspørgelsen";
    }
    // $count = mysql_result( $result, 0, 0 ); //kan fjernes
    // if ( $count > 0 ) //kan fjernes
    if(mysql_num_rows($count) != 0) {
    {
        echo "Du er logget ind - Tillykke";
        header("Location:admin.php");
    }
    else
    {
    echo "Du er ikke logget ind, tror faktisk ikke du hører til her";
}
}
?>
Avatar billede tefcke Nybegynder
08. marts 2004 - 11:09 #6
Har du prøvet at smide en: or die( mysql_error() )
efter din query?

$result = mysql_query( $query ) or die( mysql_error() );
Avatar billede avminarm Juniormester
08. marts 2004 - 11:17 #7
som tefcke siger:

if(mysql_num_rows($count) != 0) {
    {
        echo "Du er logget ind - Tillykke";
        // header("Location:admin.php"); //dette kan ikke lade sig gøre udkommenter den
    }
Avatar billede spritzer Nybegynder
08. marts 2004 - 11:26 #8
Hej avminarm - hehe Av min arm :)

får: Parse error: parse error in c:\apache\htdocs\jim\rites\login.php on line 60

    if(mysql_num_rows($count) != 0) {
    {
        header("Location:admin.php");
    }
    else ' linje 60
    {
    echo "Du er ikke logget ind, tror faktisk ikke du hører til her";
}
Avatar billede tefcke Nybegynder
08. marts 2004 - 11:30 #9
det skal ikke være $cunt, men $result
Avatar billede spritzer Nybegynder
08. marts 2004 - 11:38 #10
hehe cunt... - Har rettet det, får dog stadigt fejl på linje 60, altså "else"
Avatar billede avminarm Juniormester
08. marts 2004 - 11:55 #11
prøv at rette header("Location:admin.php"); til echo "Hurra jeg er inde"; og se om det virker - så skal vi nok bagefter få møbleret rundt på det so du bliver sendt til admin.php
Avatar billede tefcke Nybegynder
08. marts 2004 - 12:06 #12
Hehe, det var måske en af de mere uheldige stavefejl ...

Har du prøvet at køre din query som jeg beskrev i (08/03-2004 11:09:02)?
Avatar billede spritzer Nybegynder
08. marts 2004 - 12:41 #13
Jep - Får stadigt fejl ved else, nu linje 61.
Avatar billede tefcke Nybegynder
08. marts 2004 - 12:47 #14
Det er klart:
if(mysql_num_rows($count) != 0) {
{

skal være:
if(mysql_num_rows($count) != 0)
{
Avatar billede avminarm Juniormester
08. marts 2004 - 13:19 #15
*S* du mener nok: if(mysql_num_rows($result) != 0)
{

den stavefejl påvirker vist tankecentret ;o)
Avatar billede spritzer Nybegynder
09. marts 2004 - 10:29 #16
Okay :P ingen fejl men... Den siger stadigt at der ikke kan logges ind
Avatar billede tefcke Nybegynder
09. marts 2004 - 10:37 #17
Kan godt være det er lidt dumme spg.
1) Din query bliver udført rigtigt?
2) Der er noget i tabllen ´auth´?
Avatar billede spritzer Nybegynder
09. marts 2004 - 10:43 #18
Jep og jep - Men kom i tanke om noget - Hvad er standard MAXLENGHT på et password felt? eftersom jeg ikke har defineret noget, og det er krypteret, kunne så så ikke hænge sammen?
Avatar billede tefcke Nybegynder
09. marts 2004 - 10:49 #19
Hvis du ikke har defineret nogen standard længde, så tror jeg ikke der er noget max.

Hvodan ser din variables egentlig ud? Kunne være det var der den skrænter!
Avatar billede spritzer Nybegynder
09. marts 2004 - 10:59 #20
Der liger kun en connection pt. og den virker jo :)
Avatar billede tefcke Nybegynder
09. marts 2004 - 19:12 #21
Ja, det er det som jeg syntes er pænt skummelt!
Avatar billede avminarm Juniormester
09. marts 2004 - 21:16 #22
hmm auth - prøv lige at ændre dette til noget andet - det kan være reserveret i MySQL
Avatar billede tefcke Nybegynder
09. marts 2004 - 22:09 #23
Auth er ikke et reserveret ord i sql!
Avatar billede spritzer Nybegynder
12. marts 2004 - 16:47 #24
Har opgivet, og lavet et andet der virker - MEn tak for hjælpen skal i da have - Karma til begge
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