1
変数が設定され、すべてがstart.php
に正しく表示されます。表示された両方の変数のどちらかをフォームで選択できます。選択フォームを使用してファイルからファイルに変数を渡す
問題点:変数$projektcheck
または$projektcheckk
は、nxtfile.php
に渡され、フォームが送信されます。私がprint($_POST['prjkttype']);
でそれをチェックすると、変数は未定義で何も印刷されません。それは私のところに瞬時に切り替わります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 note:もしあなたが 'ELSE'で何もしていなければ' ELSE'をコードしないでください – RiggsFolly
あなたのスクリプトは[SQL Injection Attack]の危険にさらされています(http://stackoverflow.com/questions/60174/how -can-i-prevent-sql-injection-in-php) [あなたが入力をエスケープしている場合、その安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets- around-mysql-real-escape-string) [準備済みのパラメータ化された文](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly