私は以下のコードを取得しています。実際にはサーバーにイメージをアップロードし、イメージへのリンクとその他の情報をデータベースに挿入します。何とかmysqliのデータベース挿入部分をスキップします毎回。PHP/mysqli:理由なしで行がスキップされる
私は間違っていますか? mysqli-part行の間にエコーを挿入しても、それらをエコーしません。このコードは真剣にスキップされているのですか?
<?php
//Handle IMG Upload - copyied from w3schools
//THIS WORKS!
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif") {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
exit("Sorry, your file was not uploaded.");
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded.";
echo "File branche: ". $_FILES["fileToUpload"]["name"];
} else {
echo "Sorry, there was an error uploading your file.";
}
}
//Database Upload
//It starts to skip right after the mysqli_connect command - with skipping i mean that it doesn´t even execute the echos i have inserted in between.
//The vars $_POST["txtpost"] and $target_file are completly fine. I checked it, no reason to question this
//The password for connection is completly correct. No reason to question.
//This code is actually one phrase in german, cause i´m german. verbindung is translated in connection.
$verbindung = mysqli_connect('placeholder','placeholder','placeholder','placeholder');
if(mysqli_connect_errno()) {
die('Connect Error');
}
$verbindung->set_charset("utf8");
$txtpost = $_POST["txtpost"];
$success = $connection->query("INSERT INTO XXX (Txt, ImageURL) VALUES('$txtpost','$target_file')");
if (!$sucess) {
$connection->close();
die("Query did not succeed");
}
$connection->close();
echo "Query did succeed";
}
//This above database action snippet is just being skipped
?>
<html>
<head>
<title>Example Title</title>
</head>
<body>
<form action="thisdocument.php" method="post" enctype="multipart/form-data">
Text Data: <input type="text" name="txtpost"> <br /> Image Data: <input type="file" name="fileToUpload" id="fileToUpload"> <br /> Date: (USING CURRENT_TIMESTAMP) <br /> Indexing ID Number: (USING AI) <br />
<input type="submit" value="Submit Data" name="submit">
</form>
</body>
</html>
画像アップロードは完全に機能し、w3schools.comからコピーされます。すべての個人情報などは明白な言葉に置き換えられます。私は、他に何かを明確にするコメントをコードに挿入しました。
WOOPS:私はちょうどスタックオーバーフローのスニペットエディタが総混乱にこのスニペットを「整理」ことに気づきました。申し訳ありません。明確にするために、if(isset($_POST["submit"])) {
部分はコードのまわりにあり、壊れたmysqli部分の周りにもあります。
行がnot__スキップ__are $成功するはずです。コードにはエラーがあり、気づかない場合があります。 –
SQLインジェクションにはオープンしており、パラメータ化されたクエリを使用しています。 – chris85
'$ verbindung'と' $ connection'と '$ success'と' $ sucess' ... –