私はウェブサイトを作成しており、新しい投稿を追加するフォームがあります。私はIEの完全なサポートのためにajaxの代わりにiFrameを使用しています(わかりました。IEは最も嫌悪感があり、最悪のブラウザの1つですが、いくつかのnoobsがそれを使用しています)。基本的に、私がフォームを提出すると、それは私に内部エラー(500)を与えます。ここで は私のフォームです:PHPでアップロード
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionic/1.3.2/css/ionic.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form enctype="multipart/form-data" class="form" id="form" action="./addPost.php" method="POST">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="Title" class="AddPosttitle" name="title">
</label>
<label class="item item-input">
<input class="description" type="text" placeholder="Simple Description (max 60 caracters)" maxlength="60" name="description">
</label>
<label class="item item-input">
<div>
<span id='button_upload'>Image : </span>
<input type='file' class="img" name="img">
</div>
</label>
<label class="item item-input">
<textarea placeholder="Full description" class="full" name="full"></textarea>
</label>
<div class="padding">
<button class="button button-block button-positive submit-btn" type="submit">
Submit
</button>
</div>
</div>
</form>
<style type="text/css">
.form {
background: #FFF;
}
</style>
<?php
if (!empty($_GET['error'])){
?>
<script type="text/javascript">
function findGetParameter(parameterName) {
var result = null,
tmp = [];
var items = location.search.substr(1).split("&");
for (var index = 0; index < items.length; index++) {
tmp = items[index].split("=");
if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
}
return result;
}
alert(findGetParameter("error"));
</script><?php
}
?>
私はいくつかのコンポーネントを愛するという理由だけで、イオンのライブラリを使用していますが、いずれにせよ、これは私のaddPost.php
ファイルです:
<?php
try
{
$db = new PDO('mysql:host=something;dbname=someDB;charset=utf8', 'ID', 'LOL');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$post = $_POST;
$img = base64_encode(file_get_contents($_FILES['img']['tmp_name']));
$title = addslashes($post['title']);
$description = addslashes($post['description']);
$fullDesc = addslashes($post['full']);
// if (!empty($title) & !empty($description) & !empty($fullDesc) & !empty($img)) {
// }
// else {
// // header("Location: form.php?error=Fill the form!");
// }
$sql = "INSERT INTO posts (title, description, img, fullDesc, likes) VALUES ('$title', '$description', hextoraw('$img')', '$fullDesc', 0)";
$db->exec($sql);
// header("Access-Control-Allow-Origin: *");
header("Location: form.php?error=$sql");
私はなぜ知りませんエラーがあります。私はそれがイメージから来ていると思うが、わからない。私はまだ最終的な解決のために努力していますが、私が何かを見つけたら私の質問を編集します(あなたに知らせてください)
ポストへの挿入には余分な引用があります。ちょうどあなたに知らせるために。 – Nello
'hextoraw'が何であっても、文字列を使って関数を呼び出すことはできません。 –