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.";
}
?>
一些明智的代码缩进将是一个不错的主意。它可以帮助我们阅读代码,更重要的是,它可以帮助您**调试您的代码** [快速浏览编码标准](http://www.php-fig.org/psr/psr-2/ )为了您自己的利益。您可能会被要求在几周/几个月内修改此代码 ,最后您会感谢我。 – RiggsFolly
_small注:_如果你不有什么在'ELSE'然后不代码'ELSE' – RiggsFolly
你的脚本是[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