Avatar billede dp2001 Juniormester
26. juli 2004 - 19:22 Der er 9 kommentarer og
2 løsninger

Problemer med formularer i/og PHP

Jeg har nogle startvanskeligheder ifb. med formularer og/i PHP.

I nedenstående har jeg 2 problemer.....

1) Hvis jeg kun udfylder 'f_login' returnerer den $error = 1003, hvor jeg forventer $error = 1001.
2) Den printer ikke $_POST['f_login'] i login-inputtet i anden omgang som forventet.


<?php

include("z_dbconnect.php");

if (isset($_POST['f_login']))
{
    if (! isset($_POST['f_pw']))
    {
        $error = "1001";
    }
    else
    {
        $sql1 = mysql_query("select * from users where init='".$_POST['f_login']."'");
       
        if (mysql_num_rows($sql1) == 0)
        {
            $error = "1002";
        }
        else
        {
            while ($a_row = mysql_fetch_object($sql1))
            {
                $pw = $a_row->pw;
           
                if ($_POST['f_pw'] == $pw)
                {
                    session_register("session_online");
                   
                    $session_online = true;
                    header("Location: finans.php");
                    exit;
                }
                else
                {
                    $error = "1003";
                }
            }   
        }
    }
}


include("z_o_top.php");


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'";
if (isset($_POST['f_login']))
{
    print " <value='".$_POST['f_login']."'";
}
print "></td>";
print "<td><input type='password' name='f_pw'></td>";
print "</tr>";
print "<tr colspan='2'><td><input type='submit' value='Login'></td></tr>";
print "</table";
print "</form>";


include("z_dbclose.php");
include("z_o_bottom.php");
?>
Avatar billede erikjacobsen Ekspert
26. juli 2004 - 19:52 #1
f_pw er "isset" selv om det er tomt, derfor den forkerte fejlkode. Tjek blot på om den er tom.

ret
    print " <value='".$_POST['f_login']."'";
til
    print " value='".$_POST['f_login']."'";
Avatar billede dp2001 Juniormester
26. juli 2004 - 20:07 #2
det troede jeg man brugte isset til? hvordan tester man om den er tom?
Avatar billede erikjacobsen Ekspert
26. juli 2004 - 20:11 #3
if (isset($_POST['f_pw']==""))
Avatar billede taskmgr Nybegynder
26. juli 2004 - 20:12 #4
Eller med:
if(!empty($_POST['f_pw']))
Avatar billede erikjacobsen Ekspert
26. juli 2004 - 20:14 #5
Ja, jeg mente jo
  if ($_POST['f_pw']=="")
men empty er bestemt også go'
Avatar billede dp2001 Juniormester
26. juli 2004 - 20:27 #6
hmmmm....det returnerer nu en fejl....

Parse error: parse error, unexpected T_IS_EQUAL, expecting ',' or ')' in c:\inetpub\wwwroot\oddsrus_php\dev\v0.0.1\access.php on line 7
Avatar billede dp2001 Juniormester
26. juli 2004 - 20:29 #7
ok - takker.

svar?
Avatar billede erikjacobsen Ekspert
26. juli 2004 - 20:35 #8
Ikke til mig, tak - jeg samler slet ikke på point.
Avatar billede taskmgr Nybegynder
26. juli 2004 - 20:43 #9
5 til mig for en god ordens skyld og tag så bare resten selv :)
Avatar billede dp2001 Juniormester
26. juli 2004 - 21:53 #10
jeg havde glemt, at du ikke samlede - og OK, så falder der i stedet lidt af til taskmgr.

takker for hjælpen.
Avatar billede taskmgr Nybegynder
26. juli 2004 - 22:23 #11
Jeg siger velbekomme og tak.
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