php ひとこと掲示板について
お世話になります。
現在php初心者で勉強中のものです。
現在「ひとこと掲示板を作る」というのをやっています。
ちなみに書籍はたにぐちまことの よくわかるPHPの教科書です。
1
ログイン画面で ハンドルネーム アドレス 写真を入れる項目があるのですが、画像を入れても check.phpで 画像が×になります。 解決方法が知りたいです。
2
登録と押しても登録できません エラーは出ませんがMyAdominに会員登録情報のデータも送信されていませんでした。
ソース
index.php
<?php require('../dbconnect.php');
session_start();
if (!empty($_POST)){ //エラーの確認
if ($_POST['name'] == ''){
$error['name'] ='blank';}
if ($_POST['email'] == ''){
$error['email'] = 'blank';}
if (strlen($_POST['password']) < 4)
{ $error['password'] = 'length';}
if($_POST['password'] == ''){
$error['password'] = 'blank';}
$fileName = $_FILES['image']['name'];
if (!empty($fileName)) {
$ext = substr($fileName, -3);
if ($ext !='jpg' && $ext !='gif'){
$error['image'] = 'type'; } }
//重複アカウントのチェック
if(empty($error)){
$sql = sprintf('SELECT COUNT(*) AS cnt FROM members WHERE email="%s"',
mysql_real_escape_string($_POST['email']));
$record = mysql_query($sql) or die(mysql_error());
$table = mysql_fetch_assoc($record);
if($table['cnt'] > 0){
$error['email'] = 'duplicate'; } }
if(empty($error)){ //画像をアップロードする
$image = date('YmdHis') . $_FILES['image']['name'];
move_uploaded_file($_FILES['imge']['tmp_name'], '../member_picture/'. $image);
$_SESSION['join']=$_POST;
$_SESSION['join']['image'] = $image;
header('Location: check.php'); exit(); }}
//書き直し機能
if ($_REQUEST['action'] == 'rewrite') {
$_POST = $_SESSION['join'];
$error['rewrite'] = true;}?>
<p>会員登録画面に必要事項を記入ください</p>
<form action="" method="post" enctype="multipart/form-data">
<dl>
<dt>ハンドルネーム<span class="required">必須</span></dt>
<dd> <input type="text" name="name" size="35" maxlegth="255"
value="<?php echo htmlspecialchars($_POST['name'], ENT_QUOTES,'UTF-8'); ?>" />
<?php if($error['name'] == 'blank'):?>
<p clas="error">*ハンドルネームを入力してください</p>
<?php endif; ?> </dd> <dt>メールアドレス<span class="required">必須</span></dt>
<dd><input type="text" name="email" size="35" maxlegth="225"
value="<?php echo htmlspecialchars($_POST['email'],ENT_QUOTES,'UTF-8');?>" />
<?php if($error['email'] == 'blank'): ?>
<p class="error">*メールアドレスを入力してください</p>
<?php endif; ?>
<?php if($error['email'] =='duplicate'): ?>
<p class="error">*指定されたメールアドレスは既に登録されています</p>
<?php endif; ?> </dd>
<dt>パスワード<span class="required">必須</span></dt>
<dd><input type="password" name="password" size="10" maxlength="20"
value="<?php echo htmlspecialchars($_POST['password'], ENT_QUOTES,'UTF-8'); ?>" />
<?php if($error['password'] == 'blank'): ?>
<p class="error">*パスワードを入力してください</p>
<?php endif; ?>
<?php if($error['password'] == 'length'): ?>
<p class="error">*パスワードは4文字以上で入力してください</p>
<?php endif; ?></dd>
<dt>写真など</dt>
<dd><input type="file" name="image" size="35"/>
<?php if ($error ['image'] == 'type'): ?>
<p class="error">写真などは[.gif]または[.jpg]の画像を指定してください</p>
<?php endif; ?>
<?php if (!empty($error)): ?>
<p class="error">恐れ入りますが画像を改めて指定してください</p>
<?php endif; ?> </dd>
<div><input type="submit" value="入力内容を確認する"/></div></form>
check.php
<?php session_start();
require('../dbconnect.php');
if(!isset($_SESSION['join'])) {
header('Location: index.php');
exit();}
if(!empty($_POST)) {
//登録処理をする
$sql = sprintf('INSERT INTO members SET name="%s", email="%s",
password="%s",picture="%s",created="%s"',
mysql_real_escape_string($_SESSION['join']['name']),
mysql_real_escape_string($_SESSION['join']['email']),
mysql_real_escape_string(shal($_SESSION['join']['password'])),
mysql_real_escape_string($_SESSION['join']['image']),
date('Y-m-d H:i:s'));
mysql_query($sql) or die(mysql_error());
unset($_SESSION['join']);
header('Location: thanks.php');
exit(); }?>
<form action="" method="post"
<input type="hidden" name="action" value="submit"/>
<dl>
<dr>ハンドルネーム</dr>
<dd>
<?php echo htmlspecialchars($_SESSION['join']['name'],ENT_QUOTES, 'UTF-8'); ?></dd>
<dt>メールアドレス</dt>
<dd>
<?php echo htmlspecialchars($_SESSION['join']['email'],ENT_QUOTES, 'UTF-8'); ?></dd>
<dt>パスワード</dt>
<dd>[表示されません]</dd>
文字制限でここまでです すみません。 お願いいたします。
お礼
LancerVIIさま ご回答ありがとうございます! 〉'(シングルクォーテションのとじ忘れです) アドバイスの通り '(シングルクォーテション)を 入れると、画面の遷移ができました! 助かりました。