2017-08-23 32 views
1

变量的设置,一切都显示在start.php正确的。我可以选择之间的形式都显示的变量。从文件传递变量通过选择表格提交

问题是:变量$projektcheck$projektcheckk未被传递到nxtfile.php当选择和表单提交。当我用print($_POST['prjkttype']);检查它时,变量是未定义的,没有打印。它instanly切换到我的echo"Data is wrong";

为什么它没有获得通过的其他文件,尽管它被设置和选择?

start.php:

<?PHP 
    session_start(); 
    $projektcheck = $_SESSION['projektname']; 
    $projektcheckk = $_SESSION['projektnamee'];     
?> 
[other codestuff] 
<script> 
function validateForm() { 
    var fields = ['prjkttype'] 

    var i, l = fields.length; 
    var fieldname; 
    for (i = 0; i < l; i++) { 
     fieldname = fields[i]; 
    } 
    f1.method="POST"; 
    f1.submit(); 
} 
</script> 


[other codestuff] 

<form action="nxtfile.php" method="POST" name="f1"> 
    <select class="selectstyle" name="prjkttype" form="submit"> 
<?PHP 
    if (isset($projektcheck)) { 
     echo"<option value='1'>$projektcheck </option>";  
    } else { 
    } 

    if (isset($projektcheckk)) { 
     echo"<option value='2'>$projektcheckk </option>"; 
    } else { 
    } 
?> 
    </select> 

    <input type=button name=s1 value="Insert" onClick="validateForm()"> 

</form> 
[other codestuff] 

nxtfile.php:

<?PHP 
session_start(); 
include ("../connection.php"); 
$prjkttype=$_POST['prjkttype']; 


print($_POST['prjkttype']); 

$checkindb="SELECT * FROM projekte WHERE (projektname = '$prjkttype')"; 
$dbcheckk=mysqli_query($con ,$checkindb); 
$dbcheckedd=mysqli_fetch_array($dbcheckk); 

if($dbcheckedd > 0){ 
    header ("Location: xy.php"); 
} else { 
    echo "Data is wrong."; 
} 
?> 
+1

一些明智的代码缩进将是一个不错的主意。它可以帮助我们阅读代码,更重要的是,它可以帮助您**调试您的代码** [快速浏览编码标准](http://www.php-fig.org/psr/psr-2/ )为了您自己的利益。您可能会被要求在几周/几个月内修改此代码 ,最后您会感谢我。 – RiggsFolly

+1

_small注:_如果你不有什么在'ELSE'然后不代码'ELSE' – RiggsFolly

+0

你的脚本是[SQL注入攻击]的风险(http://stackoverflow.com/questions/60174/how - 可以-I-防止-SQL注入式-PHP) 即使[如果你逃避的投入,它不是安全!(http://stackoverflow.com/questions/5741187/sql-injection-that-gets-围绕MySQL的实时转义字符串) 使用的方法制得的参数化的语句(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

回答

1

您需要的值设置为您的变量像下面。它会传递值而不是变量。这将工作:

if (isset($projektcheck)) { 
     echo"<option value='$projektcheck'>$projektcheck </option>";  
    } 

    if (isset($projektcheckk)) { 
     echo"<option value='$projektcheckk'>$projektcheckk </option>"; 
    }