drbxr86044 2014-10-16 15:55
浏览 64
已采纳

PHP if ifset($ _ POST不起作用

I have a simple form on my page and I want to make sure every field is filled before inserting the values into the database. The problem is the condition never met, even if every field is filled I still get "Something is missing"...

Search:

<form method="post" action="<?php echo $_SERVER[" PHP_SELF "]?>">
    <input placeholder="e-mail address" type="text" name="email_search">
    <input type="submit" name="search" value="Go">

    <?php if (isset($_POST[ "search"])) { $email_search=m ysql_real_escape_string($_POST[ "email_search"]); $check=m ysql_query( "SELECT * FROM torzsvendegek WHERE email = '$email_search'"); $s=m ysql_fetch_array($check); }?>

    <form method="post" action="<?php echo $_SERVER[" PHP_SELF "]?>">
        <table width="440" border="0" style="text-align:right;">
            <tr>
                <td>E-mail:</td>
                <td>
                    <input type="text" name="email" value="<?php echo $email_search;?>" disabled>
                </td>
            </tr>
            <tr>
                <td>Név:</td>
                <td>
                    <input type="text" name="nev" value="<?php echo $s['nev'];?>">
                </td>
            </tr>
            <tr>
                <td>Mikor:</td>
                <td>
                    <input type="text" name="mikor">
                </td>
            </tr>
            <tr>
                <td>Éjszakák száma:</td>
                <td>
                    <input type="text" name="ejszakak">
                </td>
            </tr>
            <tr>
                <td>Nemzetisége:</td>
                <td align="left">&nbsp;&nbsp;
                    <select name="nyelv">
                        <option value="magyar" <?php if($s[ 'nyelv']=="magyar" ) echo "selected=\"selected\ ""; ?>>Magyar</option>
                        <option value="nemet" <?php if($s[ 'nyelv']=="nemet" ) echo "selected=\"selected\ ""; ?>>Német</option>
                        <option value="lengyel" <?php if($s[ 'nyelv']=="lengyel" ) echo "selected=\"selected\ ""; ?>>Lengyel</option>
                        <option value="roman" <?php if($s[ 'nyelv']=="roman" ) echo "selected=\"selected\ ""; ?>>Román</option>
                        <option value="szlovak" <?php if($s[ 'nyelv']=="szlovak" ) echo "selected=\"selected\ ""; ?>>Szlovák</option>
                        <option value="egyeb" <?php if($s[ 'nyelv']=="egyeb" ) echo "selected=\"selected\ ""; ?>>Egyéb</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Megjegyzés:</td>
                <td>
                    <textarea name="megjegyzes">
                        <?php echo htmlspecialchars($s[ 'megjegyzes']);?>
                    </textarea>
                </td>
            </tr>
        </table>
        <br>
        <table width="440">
            <tr>
                <td>
                    <input type="submit" name="submit_add" value="Hozzáad">
                </td>
            </tr>
        </table>
    </form>

    <?php if (isset($_POST[ "submit_add"]) && !empty($_POST[ "nev"]) && !empty($_POST[ "email"]) && !empty($_POST[ "mikor"]) && !empty($_POST[ "ejszakak"])){ $nev=m ysql_real_escape_string($_POST[ "nev"]); $email=m ysql_real_escape_string($_POST[ "email"]); $mikor=m ysql_real_escape_string($_POST[ "mikor"]); $ejszakak=m ysql_real_escape_string($_POST[ "ejszakak"]); $nyelv=m ysql_real_escape_string($_POST[ "nyelv"]); $megjegyzes=m ysql_real_escape_string($_POST[ "megjegyzes"]); $check2=m ysql_query( "SELECT * FROM torzsvendegek WHERE email = '$email'"); $br="<br>" ; if (mysql_num_rows($check2)> 0) { $adatok = mysql_fetch_array($check2); $osszesen = ($adatok['ejszakak'] + $ejszakak); mysql_query("UPDATE torzsvendegek SET nev = '".$nev."', mikor = '".$adatok['mikor']."".$mikor."".$br."', ejszakak = '".$osszesen."', nyelv = '".$nyelv."', megjegyzes = '".$adatok['megjegyzes']."".$megjegyzes."".$br."' WHERE email = '".$email."'"); echo "
    <br>".$email." Updated"; } else { mysql_query("INSERT INTO torzsvendegek (id, nev, email, mikor, ejszakak, nyelv, megjegyzes) VALUES (NULL, '$nev', '$email', '".$mikor."".$br."', '$ejszakak', '$nyelv', '".$megjegyzes."')"); echo "
    <br>".$email." Added"; } } else { echo "Something is missing"; } ?>

展开全部

  • 写回答

3条回答 默认 最新

  • dqqs64238 2014-10-16 16:19
    关注

    You made 2 mistakes in your code:

    1) You didn't close the first form (missing </form>)
    2) You disabled the E-mail input field which resulted in always empty

    Here's the updated (though deprecated and insecure!!!) code:

    <?php
    
    if(isset($_POST["search"])){
    
        $email_search = mysql_real_escape_string($_POST["email_search"]);
        $check = mysql_query("SELECT * FROM torzsvendegek WHERE email = '$email_search'");
        $s = mysql_fetch_array($check);
    }
    
    if(isset($_POST["submit_add"]) && !empty($_POST["nev"]) && !empty($_POST["email"]) && !empty($_POST["mikor"]) && !empty($_POST["ejszakak"])){
    
        $nev = mysql_real_escape_string($_POST["nev"]);
        $email = mysql_real_escape_string($_POST["email"]);
        $mikor = mysql_real_escape_string($_POST["mikor"]);
        $ejszakak = mysql_real_escape_string($_POST["ejszakak"]);
        $nyelv = mysql_real_escape_string($_POST["nyelv"]);
        $megjegyzes = mysql_real_escape_string($_POST["megjegyzes"]);
    
        $check2 = mysql_query("SELECT * FROM torzsvendegek WHERE email = '$email'");
        $br = "<br>";
    
        if (mysql_num_rows($check2) > 0){
            $adatok = mysql_fetch_array($check2);
            $osszesen = ($adatok['ejszakak'] + $ejszakak);
            mysql_query("UPDATE torzsvendegek SET nev = '".$nev."', mikor = '".$adatok['mikor']."".$mikor."".$br."', ejszakak = '".$osszesen."', nyelv = '".$nyelv."', megjegyzes = '".$adatok['megjegyzes']."".$megjegyzes."".$br."' WHERE email = '".$email."'");
            echo "<br>".$email." Updated";
        } else {
            mysql_query("INSERT INTO torzsvendegek (id, nev, email, mikor, ejszakak, nyelv, megjegyzes) VALUES (NULL, '$nev', '$email', '".$mikor."".$br."', '$ejszakak', '$nyelv', '".$megjegyzes."')");
            echo "<br>".$email." Added";
        }
    } else {
        echo "Something is missing";
    }
    
    ?>
    
    <form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>">
        Search: <input placeholder="e-mail address" type="text" name="email_search">
        <input type="submit" name="search" value="Go">
    </form>
    
    <form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>">
        <table width="440" border="0" style="text-align:right;">
            <tr>
                <td>E-mail:</td>
                <td><input type="text" name="email" value="<?php echo $email_search;?>"></td>
            </tr>
            <tr>
                <td>Név:</td>
                <td><input type="text" name="nev" value="<?php echo $s['nev'];?>"></td>
            </tr>
            <tr>
                <td>Mikor:</td>
                <td><input type="text" name="mikor"></td>
            </tr>
            <tr>
                <td>Éjszakák száma:</td>
                <td><input type="text" name="ejszakak"></td>
            </tr>
            <tr>
                <td>Nemzetisége:</td>
                <td align="left">&nbsp;&nbsp;
                    <select name="nyelv">
                        <option value="magyar" <?php if($s['nyelv']=="magyar") echo "selected=\"selected\""; ?>>Magyar</option>
                        <option value="nemet" <?php if($s['nyelv']=="nemet") echo "selected=\"selected\""; ?>>Német</option>
                        <option value="lengyel" <?php if($s['nyelv']=="lengyel") echo "selected=\"selected\""; ?>>Lengyel</option>
                        <option value="roman" <?php if($s['nyelv']=="roman") echo "selected=\"selected\""; ?>>Román</option>
                        <option value="szlovak" <?php if($s['nyelv']=="szlovak") echo "selected=\"selected\""; ?>>Szlovák</option>
                        <option value="egyeb" <?php if($s['nyelv']=="egyeb") echo "selected=\"selected\""; ?>>Egyéb</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Megjegyzés:</td>
                <td><textarea name="megjegyzes"><?php echo htmlspecialchars($s['megjegyzes']);?></textarea></td>
            </tr>
        </table>
        <br>
        <table width="440">
            <tr>
                <td><input type="submit" name="submit_add" value="Hozzáad"></td>
            </tr>
        </table>
    </form>
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部