回答よろしくお願いします。
今現在フォームでユーザ登録情報の変更を行なっています。
DBから取得しているのですがそこには数値や文字以外入っておりません。
更新を行うたびに末尾に半角のスペースが現れます。
どう改善すればよろしいでしょうか??
以下のPHPファイル内に記述してある通り
preg_replaceで1度目は削除できるのですが再度変更を行うと再び半角のスペースが出力されます。
PHP
1<?php 2 3require('function.php'); 4 5debug('「「「「「「「「「「「「「「「「「「'); 6debug('プロフィール編集'); 7debug('「「「「「「「「「「「「「「「「「「'); 8debugLogStart(); 9 10require('auth.php'); 11 12 13//ログイン時に取得したuser_id 14$dbFormData = getUser($_SESSION['user_id']); 15 16debug('取得したユーザID:'.print_r($dbFormData,true)); 17 18 19if(!empty($_POST)){ 20 debug('POST送信があります。'); 21 debug('POST情報:'.print_r($_POST,true)); 22 23 $username = $_POST['username']; 24 $age = $_POST['age']; 25 $zip = (!empty($_POST['zip'])) ? $_POST['zip'] : 0 ; 26 $email = $_POST['email']; 27 $tel = $_POST['tel']; 28 29 30//DBの情報と入力値が異なる場合にヴァリデーション 31if($dbFormData['username'] !== $username){ 32 //名前の最大入力文字数 33 validMaxLen($username, 'username'); 34} 35 36if ($dbFormData['age'] !== $age){ 37 //年齢の最大文字数 38 validMaxLen($age, 'age'); 39 //年齢の入力文字 40 validNumber($age, 'age'); 41 42} 43 44if((int)$dbFormData['zip'] !== $zip){ 45 //住所の形式 46 validZip($zip, 'zip'); 47} 48 49if((int)$dbFormData['tel'] !== $tel){ 50 //電話番号の形式 51 validTel($tel,'tel'); 52} 53 54 55if($dbFormData['email'] !== $email){ 56 validMaxLen($email, 'email'); 57 if(empty($err_msg['email'])){ 58 59 validEmailDup($email); 60 } 61 //メールの形式チェック 62 validEmail($email, 'email'); 63} 64 validRequired($email, 'email'); 65 66 67if(empty($err_msg)){ 68 debug('バリデーションOKです'); 69 70 try { 71 72$dbh = dbConnect(); 73 74 $sql = "UPDATE users SET username = :u_name,age =:age zip = :zip, email = :email , tel = :tel 75 WHERE id = :u_id"; 76 77 $data = array(':u_name' => $username, 'age' => $age,':zip' => $zip , ':email' => $email , ':tel' => $tel, ':u_id' =>$dbFormData['id'] ); 78 79 80 $stmt = queryPost($dbh, $sql , $data); 81 82 83 84 85 86 if($stmt){ 87 debug('クエリ成功'); 88 debug('マイページへ遷移します'); 89 header('Location:mypage.php'); 90 }else{ 91 debug('クエリに失敗しました'); 92 $err_msg['common'] = MSG08; 93 } 94 95}catch (Eception $e) { 96 error_log('エラー発生:'.$e->getMessage()); 97 $err_msg['common'] = MSG07; 98 99 } 100} 101} 102 103 104 $dbname = getFormData('username'); 105 $dbname = preg_replace("/( | )/", "", $dbname ); 106 $dbage = getFormData('age'); 107 $dbage = preg_replace("/( | )/", "", $dbage ); 108 $dbzip = getFormData('zip'); 109 $dbzip = preg_replace("/( | )/", "", $dbzip ); 110 $dbemail = getFormData('email'); 111 $dbtel = getFormData('tel'); 112 debug('画面表示終了'); 113 ?> 114 115<?php 116 117$siteTitle = "プロフィール編集"; 118require('head.php'); 119?> 120 121<?php 122require('header.php'); 123?> 124 125 126<div id="contents"> 127 <div class="site-width"> 128 <h1>プロフィール編集</h1> 129 </div> 130</div> 131 132 133 134<section id="main"> 135 <div class="form-container"> 136 <form action="" method="post" class="form"> 137 <div class="area-message"> 138 <?php if(!empty($err_msg['common'])) echo $err_msg['common'];?> 139 </div> 140 <label class="<?php if(!empty($err_msg['name'])) echo 'err' ?>">名前 141 <input type="text" name="username" value="<?php echo $dbname ?>"> 142 </label> 143 <div class="area-msg"> 144 <?php if(!empty($err_msg['username'])) echo $err_msg['username'] ?> 145 </div> 146 147 <label class="<?php if(!empty($err_msg['age'])) echo 'err' ?>">年齢 148 <input type="text" name="age" value="<?php echo $dbage ?> "> 149 </label> 150 <div class="area-msg"> 151 <?php if(!empty($err_msg['age'])) echo $err_msg['age'] ?> 152 </div> 153 <?php var_dump($_POST['age']); 154 var_dump($dbname); 155 var_dump($age); 156 var_dump($zip); 157 var_dump($email); 158 var_dump($tel); 159 160 161 162?> 163 164 165 <label class="<?php if(!empty($err_msg['zip'])) echo 'err' ?>">郵便番号 166 <span style="font-size:12px; margin-left:15px;">*ハイフンなしで記入ください</span> 167 <input type="text" name="zip" value=" 168 <?php echo $dbzip ?> "> 169 </label> 170 <div class="area-msg"> 171 <?php if(!empty($err_msg['zip'])) echo $err_msg['zip'] ;?> 172 </div> 173 174 <label class="<?php if(!empty($err_msg['email'])) echo 'err' ?>">email<span style="font-size:12px; margin-left:15px;">*emailの形式で記入ください</span> 175 <input type="text" name="email" value="<?php echo $dbemail ?> "> 176 </label> 177 <div class="area-msg"> 178 <?php if(!empty($err_msg['email'])) echo $err_msg['email'] ?> 179 </div> 180 181 182 <label class="<?php if(!empty($err_msg['tel'])) echo 'err' ?>">TEL<span style="font-size:12px; margin-left:15px;">*ハイフンなしで記入ください</span> 183 <input type="text" name="tel" value="<?php echo $dbtel ?>"> 184 </label> 185 <div class="area-msg"> 186 <?php if(!empty($err_msg['tel'])) echo $err_msg['tel'] ?> 187 </div> 188 189 <input type="submit" name="submit" value="変更する"> 190 </form> 191 </div> 192</section> 193 194<? 195 require('footer.php'); 196 197 ?> 198 199
ご回答いただけると幸いです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/25 04:29
2019/08/25 04:30
2019/08/25 04:35