简体   繁体   English

表单有时仅适用(PHP mySQL)

[英]Form only works sometimes (PHP mySQL)

i googled quite alot and can't really find an anwer to my problem. 我在Google上搜索了很多,却找不到真正解决我问题的答案。 i created a form to submit some information on my website. 我创建了一个表单以在我的网站上提交一些信息。 the problem is it only works sometimes and i have no idea why. 问题是它有时只能工作,我不知道为什么。 your help would be really appericated, im going crazy here. 您的帮助将非常贴切,我在这里疯了。

PHP 的PHP

 <?php 
require_once("php/verbindung.php");

$partyskill = "";
$partyskill2 = "";
$partylang = "";
$partycount = "";
$drop = "";

$error_count = "";
$error_lang = "";

$freigabe = true;   

if (isset($_POST['submit'])) {

        $partyskill = "$_POST[skill]";
        $partyskill2 = "$_POST[skill2]";
        $partylang = "$_POST[language]";
        $partycount = "$_POST[count]";


        if (strlen($partycount) == 0) { 
            $error_count = "<FONT COLOR='#d1a200'>*please select how many players you are looking for</font>"; 
            $freigabe = false; 
        }

     if (strlen($partylang) == 1) {
                     if($partylang=="1")
                      {$drop="gb.png";}

                     elseif($partylang== "2")
                      {$drop="de.png";}

                     elseif($partylang== "3")
                      {$drop="ru.png";}                                     

                      else {
                       $error_lang = "<FONT COLOR='#d1a200'>*please select a language</font>";
                       $freigabe = false;
                                }
                        }

                      else {
                       $error_lang = "<FONT COLOR='#d1a200'>*please select a language</font>";
                       $freigabe = false;
                        }

        if ($freigabe == true) { 
            $sql = "INSERT INTO ".$tblparty; 
            $sql .= " (skill, skill2, count, language) 
            VALUES ("; 
            $sql .= "'".$partyskill."', "; 
            $sql .= "'".$partyskill2."', "; 
            $sql .= "'".$partycount."', ";
            $sql .= "'".$drop."') "; 

            $query = mysql_query($sql, $verb);

        }                           
}

?> ?>

HTML 的HTML

 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="new_party" >
        <h3>How many players are you searching for?</h3>
            <p>
                <input type="radio" name="count" value="1"> 1
                <input type="radio" name="count" value="2"> 2
                <input type="radio" name="count" value="3"> 3
                <input type="radio" name="count" value="4"> 4
            </p>
            <?php echo $error_count; ?><br/>
        <h3>What is you prefered language?</h3>
            <p>
                <input type="radio" name="language" value="1"><img src="images/flags/gb.png"/>
                <input type="radio" name="language" value="2"><img src="images/flags/de.png"/>
                <input type="radio" name="language" value="3"><img src="images/flags/ru.png"/>
            </p>
                <?php echo $error_lang; ?><br/>
        <h3>What skill are you looking for?</h3>
            from:
            <select name="skill">
                <option value="15">Eagle Master</option>
                <option value="16">Legendary Eagle Master</option>
                <option value="17">Supreme Master First Class</option>
                <option value="18">Global Elite</option>
            </select>
            to:
            <select name="skill2">
                <option value="15">Eagle Master</option>
                <option value="16">Legendary Eagle Master</option>
                <option value="17">Supreme Master First Class</option>
                <option value="18">Global Elite</option>
            </select>
        <input type="submit" value="Send" name="submit"/>
        </form>

Instead of doing: 而不是做:

$sql = "INSERT INTO ".$tblparty; 
$sql .= " (skill, skill2, count, language) 
VALUES ("; 
$sql .= "'".$partyskill."', "; 
$sql .= "'".$partyskill2."', "; 
$sql .= "'".$partycount."', ";
$sql .= "'".$drop."') ";

Change it to: 更改为:

$sql = "INSERT INTO `$tblparty` (`skill`, `skill2`, `count`, `language`) 
VALUES ('".$partyskill."', '".$partyskill2."', '".$partycount."', '".$drop."')";

then delete your skill column and re-create it again. 然后删除您的skill列,然后重新创建。 You could also attempt to rebuild your table. 您也可以尝试重建表。

Also, I suggest that you switch to mysqli_* functions using prepared statements or PDO , mysql_* functions are deprecated and will be deleted in future releases. 另外,我建议您使用prepared statementsPDO切换到mysqli_*函数,不建议使用mysql_*函数,在以后的版本中将删除它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM