Mysqlにデータを登録するPHPフォームでファイル名を登録できません。フォームをファイルではなくテキストにするとMysql内のテーブルに登録されます。
コード内で登録されないフォームの箇所は name="modeling"のフォームです。
エラーも出ずにMysql内でファイル名だけが抜けた状態になるので、解決方法が見当たりません。
よろしくお願いたします。
PHP
1<?php 2 $host = 'hogehoge'; 3 $username = 'hogehoge'; 4 $passwd = 'hogehoge'; 5 $dbname = 'hogehoge'; 6 7 $conn =mysqli_connect($host,$username,$passwd,$dbname); 8 if($conn == false){ 9 die("エラー: 接続できませんでした。" . mysqli_connect_error()); 10 } 11 $modeling= $_FILES['modeling']['name']; 12 $marker= $_REQUEST['marker']; 13 14 $sql ="INSERT INTO artable VALUES ('$modeling','$marker')"; 15 16 if(mysqli_query($conn,$sql)){ 17 echo "<h3>データベースに正常に保存された。</h3>"; 18 echo nl2br("\n$modeling\n $marker\n "); 19 }else{ 20 echo "エラー: $sql. " . mysqli_error($conn); 21 } 22 mysqli_close($conn) 23 ?> 24<!DOCTYPE html> 25<html lang="ja"> 26 27<head> 28 <meta charset="UTF-8"> 29 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 30 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 31 <title>ランディングページ</title> 32 <link rel="stylesheet" href="./assets/css/style.css"> 33 <link rel="stylesheet" href="./assets/css/animate.css"> 34 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/all.css"> 35 <script src="./assets/js/main.js"></script> 36 <script src="./assets/js/wow.min.js"></script> 37 <script src="https://code.jquery.com/jquery-3.6.0.js" 38 integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script> 39</head> 40 41<body> 42 <header> 43 <!-- <div class="topnav1"> 44 <ul class="topmenu"> 45 <li>About</li> 46 <li>System</li> 47 <li>登録されたAR</li> 48 </ul> 49 <ul class="login1"> 50 <li style="margin-top:21px; font-size: 18px; font-weight:600;">◎◎さんこんにちは!</li> 51 </ul> 52 </div> --> 53 </header> 54 <section class="page3content"> 55 <h2 class="page3title">ARを登録しよう!</h2> 56 <div class="form_wrap"> 57 <form action="form.php" method="post" enctype=”multipart/form-data”> <section class="form_section section1"> 58 <header class="form_section_header"> 59 <div class="step"> 60 <p class="progress"><span></span></p> 61 </div> 62 </header> 63 <div class="form_section__body"> 64 <h2>データをアップロードしてください</h2> 65 <div class="form_section-item form_section__name"> 66 67 <div class=""> 68 <div class="aside"> 69 <aside>モデリングデータ(gltf)</aside> 70 </div> 71 <div class="input"><input name="modeling" type="file"></div> 72 </div> 73 </div> 74 </div> 75 <div class="form_section__btn"> 76 <ul> 77 <li class="fas" style="visibility:hidden;"><a href="#1"><i 78 class="fas fa-arrow-circle-left"></i></a></li> 79 <li class="fas"><a href="#2"><i class="fas fa-arrow-circle-right"></i></a></li> 80 </ul> 81 </div> 82 </section> 83 <section class="form_section section2"> 84 <header class="form_section_header"> 85 <div class="step"> 86 <p class="progress"><span></span></p> 87 </div> 88 </header> 89 <div class="form_section__body"> 90 <h2>マーカーのデータ(patt)</h2> 91 <div class="input"><input name="marker" type="text"></div> 92 </div> 93 <div class="form_section__btn"> 94 <ul> 95 <li class="fas"><a href="#1"><i class="fas fa-arrow-circle-left"></i></a></li> 96 97 </ul> 98 </div> 99 <input type="submit" value="ARを登録する"> 100 </form> 101 </section> 102 103 <footer> 104 <div class="copyright"> 105 <hr style="border-color: #eeeeee;"> 106 <p class="copyrighttext">©2022 hogehoge All rights reserved.</p> 107 </div> 108 </footer> 109 110 <script> 111 (function () { 112 //フォームの質問ページ全て取得 113 const sectionAllElm = document.querySelectorAll('.form_section'); 114 115 // ページ切り替え 116 function urlChangeHandler() { 117 const pageid = parseUrl(location.hash); 118 const targetElm = document.querySelector(`.section${pageid}`); 119 120 // 全てのページ非表示 121 sectionAllElm.forEach(function (elm) { 122 elm.classList.remove('appear'); 123 elm.classList.add('disappear'); 124 }); 125 // ページ表示 126 targetElm.classList.remove('page-leave'); 127 targetElm.classList.remove('disappear'); 128 targetElm.classList.add('page-enter'); 129 targetElm.classList.add('appear'); 130 131 //プログレスバー表示 132 progress(); 133 } 134 //プログレスバー表示 135 function progress() { 136 const sectionCount = sectionAllElm.length; 137 const progressWrap = document.querySelectorAll('.progress'); 138 139 progressWrap.forEach(function (progress, i) { 140 progress.style.width = 0; 141 progress.querySelector('span').style.display = "none"; 142 setTimeout(function () { 143 const percentEml = Math.ceil((100 / (sectionCount - 1)) * i) + "%"; 144 progress.style.width = percentEml; 145 progress.querySelector('span').textContent = percentEml; 146 progress.querySelector('span').style.display = "inline"; 147 }, 1000) 148 149 }); 150 } 151 152 // ページ番号取り出し 153 function parseUrl(url) { 154 return url.slice(1) || 1; 155 } 156 157 //ハッシュが変更されたらイベント実行 158 window.addEventListener('hashchange', urlChangeHandler); 159 160 // 初期イベント実行 161 urlChangeHandler(); 162 163 })(); 164 </script> 165</body> 166 167</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/29 07:01
2021/11/29 07:08