Avatar billede dp2001 Juniormester
25. juli 2004 - 23:24 Der er 10 kommentarer og
1 løsning

Adgangsscript/formular

Jeg er ved at få grå hår. Kan ikke hitte ud af det her med formularer i PHP. Kan nogle venligst forklare mig, hvorfor nedenstående bliver ved med at returnere $error = 1004 uanset hvad jeg gør?


// KODEN:
<?php

include("z_o_top.php");
include("z_dbconnect.php");

if (isset($_GET['f_login']))
{
    if (! isset($_GET['f_pw']))
    {
        $error = "1001";
    }
    else
    {
        $sql1 = mysql_query("select * from users where init='".$_GET['f_login']."'");
       
        if (mysql_num_rows($sql1) == 0)
        {
            $error = "1002";
        }
        else
        {
            while ($a_row = mysql_fetch_object($sql1))
            {
                $pw = $a_row->pw;
           
                if ($_GET['f_pw'] == $pw)
                {
                    session_register("session_online");
                    session_register("session_init");
                    session_register("session_name");
                    session_register("session_admin");
                    session_register("session_coadmin");
                    session_register("session_kasserer");
                    session_register("session_odds");
                    session_register("session_disc");
                    session_register("session_disc_upd");
                    session_register("session_hoot");
                    session_register("session_odds_sp");
                    session_register("session_disc_sp");
                    session_register("session_hoot_sp");
                    session_register("session_mail1");
                    session_register("session_mail2");
                    session_register("session_mobil");
               
                    $session_online = true;
                    $session_init = $a_row->init;
                    $session_name = $a_row->name;
                    $session_admin = $a_row->admin;
                    $session_coadmin = $a_row->coadmin;
                    $session_kasserer = $a_row->kasserer;
                    $session_odds = $a_row->odds;
                    $session_disc = $a_row->disc;
                    $session_disc_upd = $a_row->disc_upd;
                    $session_hoot = $a_row->hoot;
                    $session_odds_sp = $a_row->odds_sp;
                    $session_disc_sp = $a_row->disc_sp;
                    $session_hoot_sp = $a_row->hoot_sp;
                    $session_mail1 = $a_row->mail1;
                    $session_mail2 = $a_row->mail2;
                    $session_mobil = $a_row->mobil;
                    header("Location: start.php");
                    exit;
                }
                else
                {
                    $error = "1003";
                }
            }   
        }
    }
}
else
{
    $error = "1004";
}

print "<h1>Login</h1>";

if (isset($error))
{
    // loop array: $error_codes igennem indtil vi finder $error
    foreach ($error_codes as $val)
    {
        if ($val['error_code'] == $error)
        {
            $error_text = $val['error_text'];
        }
    }
print "<b><span class='red'>$error_text</span></b><br/><br/>";
}

print "<form method='post' action='".$_SERVER['PHP_SELF']."'>";
print "<table width='200px'>";
print "<tr>";
print "<th width='50%' align='left'>User-ID</th>";
print "<th width='50%' align='left'>Password</th>";
print "</tr>";
print "<tr>";
print "<td><input type='text' name='f_login'></td>";
print "<td><input type='password' name='f_pw'></td>";
print "</tr>";
print "</table";
print "<input type='submit' value='Login'>";
print "</form>";


include("z_dbclose.php");
include("z_o_bottom.php");
?>
Avatar billede krydset Nybegynder
25. juli 2004 - 23:30 #1
Har lige gjordt din kode en del smukkere at kigge på. fejlen ved jeg ikke hvorfor kommer :-P

// KODEN:
<?php

include("z_o_top.php");
include("z_dbconnect.php");

if (isset($_GET['f_login']))
{
    if (! isset($_GET['f_pw']))
    {
        $error = "1001";
    }
    else
    {
        $sql1 = mysql_query("select * from users where init='".$_GET['f_login']."'");
       
        if (mysql_num_rows($sql1) == 0)
        {
            $error = "1002";
        }
        else
        {
            while ($a_row = mysql_fetch_object($sql1))
            {
                $pw = $a_row->pw;
                if ($_GET['f_pw'] == $pw)
                {
                    session_register("session_online");
                    session_register("session_init");
                    session_register("session_name");
                    session_register("session_admin");
                    session_register("session_coadmin");
                    session_register("session_kasserer");
                    session_register("session_odds");
                    session_register("session_disc");
                    session_register("session_disc_upd");
                    session_register("session_hoot");
                    session_register("session_odds_sp");
                    session_register("session_disc_sp");
                    session_register("session_hoot_sp");
                    session_register("session_mail1");
                    session_register("session_mail2");
                    session_register("session_mobil");

                    $session_online = true;
                    $session_init = $a_row->init;
                    $session_name = $a_row->name;
                    $session_admin = $a_row->admin;
                    $session_coadmin = $a_row->coadmin;
                    $session_kasserer = $a_row->kasserer;
                    $session_odds = $a_row->odds;
                    $session_disc = $a_row->disc;
                    $session_disc_upd = $a_row->disc_upd;
                    $session_hoot = $a_row->hoot;
                    $session_odds_sp = $a_row->odds_sp;
                    $session_disc_sp = $a_row->disc_sp;
                    $session_hoot_sp = $a_row->hoot_sp;
                    $session_mail1 = $a_row->mail1;
                    $session_mail2 = $a_row->mail2;
                    $session_mobil = $a_row->mobil;
                   
                    header("Location: start.php");
                    exit;
                } else {
                    $error = "1003";
                }
            }
        }
    }
} else {
    $error = "1004";
}
print "<h1>Login</h1>";

if (isset($error))
{
    // loop array: $error_codes igennem indtil vi finder $error
    foreach ($error_codes as $val)
    {
        if ($val['error_code'] == $error)
        {
            $error_text = $val['error_text'];
        }
    }
    print "<b><span class='red'>$error_text</span></b><br/><br/>";
}

print "<form method='post' action='".$_SERVER['PHP_SELF']."'>";
print "<table width='200px'>";
print "<tr>";
print "<th width='50%' align='left'>User-ID</th>";
print "<th width='50%' align='left'>Password</th>";
print "</tr>";
print "<tr>";
print "<td><input type='text' name='f_login'></td>";
print "<td><input type='password' name='f_pw'></td>";
print "</tr>";
print "</table";
print "<input type='submit' value='Login'>";
print "</form>";


include("z_dbclose.php");
include("z_o_bottom.php");
?>
Avatar billede krydset Nybegynder
25. juli 2004 - 23:31 #2
Hmmmm det var den altså ikke i min email :-P Sorry i min mail lignede det bare en stor bunke :-(
Avatar billede erikjacobsen Ekspert
25. juli 2004 - 23:32 #3
Brug $_POST isf $_GET
Avatar billede dp2001 Juniormester
25. juli 2004 - 23:38 #4
krydset -> jeg undrede mig MEGET indtil du skrev din anden kommentar! :)

erikjakobsen -> det hjalp åbenbart. er i tvivl om hvornår jeg skal bruge hhv $_GET og $_POST.

I øvrigt kan den åbenbart heller ikke lide:

header("Location: start.php");
exit;

Igen min bog der ikke er up-to-date. Hvordan laver man i stedet en redirect?
Avatar billede erikjacobsen Ekspert
25. juli 2004 - 23:46 #5
Man laver en redirect sådan, men du må intet skrive ud på siden før.

Brug $_POST ved method="post", og get ved method="get" og for parametre efter et ?-tegn i et link.
Avatar billede dp2001 Juniormester
25. juli 2004 - 23:50 #6
grazie - så mangler der bare et svar......
Avatar billede erikjacobsen Ekspert
25. juli 2004 - 23:55 #7
Nej tak, jeg samler ikke på point.
Avatar billede thesurfer Nybegynder
26. juli 2004 - 00:20 #8
erikjacobsen> Du må gerne fortælle dem, at spm'et alligevel skal lukkes :-)
Avatar billede erikjacobsen Ekspert
26. juli 2004 - 00:23 #9
Det skal det rent faktisk ikke ifølge reglerne på eksperten.dk, thesurfer.
Avatar billede thesurfer Nybegynder
26. juli 2004 - 00:28 #10
hmmm.. har lige kigget.. det har du faktisk ret i.. :-)
Avatar billede dp2001 Juniormester
26. juli 2004 - 08:58 #11
Jamen, tak for input.
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