• 締切済み

入力フォーム内容のDB保存について

MySQLへの登録処理についての質問お願いします。 サイトの登録用ページを作っていていて、PHPでmySQLにデータを保存する。 というながれのプログラムを作っています。 空白のまま「送信」を押すと、空白エラー「メールアドレスを入力してください」のメッセージが出るようになっています。 その後のDB保存がどうしてもうまくいかないので間違えをご指摘いただければ幸いです。 DB接続は、 'データベースに接続しました'と表示されています。 soushin.phpの最後に記述しているheader('Location: soushin.php');が正しいのかもわかりません。 よろししくお願いします。 //index.php <html> <body> <form action="" method="POST" > <label for="mail">メールアドレス</label> <input name="mail" type="text" id="mail" size="35" maxlength="255" > <?php if($error['mail'] == 'blank'):?> <p class="error">メールアドレスを入力してください</p> <?php endif; ?> <br> <input type="submit" value="上記に同意して仮登録メールを送信"> </form> </body> </html> //soushin.php <?php session_start(); mysql_connect('localhost','my_db','') or die(mysql_error()); echo 'データベースに接続しました'; mysql_select_db('kaiin_touroku'); mysql_query('SET NAMES UTF8'); if (!isset($_SESSION['join'])) {     header('Location: index.php'); exit(); } if (!empty($_POST)){     //登録を処理する     $sql = sprintf('INSERT INTO kaiin_touroku SET mail="%s"',     mysql_real_escape_string($_SESSION['join']['mail']) ); mysql_query($sql) or die(mysql_error()); header('Location: soushin.php'); } ?> <!DOCTYPE HTML> ・ ・ ・ <form action="" method="post">  <dl>  <dd> <?php echo htmlspecialchars($_SESSION['join']['mail'], ENT_QUOTES, 'UTF-8'); ?>に送信いたしました。  </dd>  </dl>  </form>

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

ANo.1です × mysql_last_error() ○ mysql_error() ですね。失礼しました。

itadaki_funk
質問者

お礼

shimix 様 お礼が遅れました。 前回の質問に続き、ご回答ありがとうございます!! お世話になります!! なんとかフォーム内容のDB保存はクリアすることができました>< まだまだ自分も構築をメインで進めておられる方も、PHPに関して初心者の為、調べながらの構築となっています。。 壁にぶつかってばかりですが、みなさんの回答に助けられて少しずつですが進んでいってます><! 本当に毎回助けられております!! ありがとうございます!

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

何点か・・・ 0) >どうしてもうまくいかない 「登録されない」ということでしょうか?mysql_last_error()でどういうエラーになっているか確認するとか、$sqlの内容を(画面出力して)コピペしてphpMyAdminでSQL実行してみるとか、デバッグとして出来ること・やらなければいけないことはたくさんあると思います。どこまで試されましたか? これがひとつも思いつかないならまだ開発は無理です。いったん習作レベルに戻るべきです。 1) $_SESSION['join']のチェック(存在しなければindex.phpに戻す)はsession_start()の直後でいいのでは(データベース接続のコストを払う意味がない)。 2) 「set names」ではなく、mysql_set_charsetを使ってください(http://jp.php.net/manual/ja/function.mysql-set-charset.php)。 3) >header('Location: soushin.php');が正しいのかもわかりません。 何のために記述しているのかわかりません。データベースに(仮)登録したらメールを送信して(送信結果がNGならレコードのdeleteもあり得る)、あとは「メールを送信しました」の表示でいいのでは? 4) データベースに登録しているのが「メールアドレスだけ」で(過去に何度か指摘された)ハッシュ値も登録日時もありませんね(これから追加するのかもしれませんが)。

関連するQ&A

  • MySQLに格納できない

    INSERT INTOの構文が間違っていると、エラーが出ます。 DB接続はできています。 テーブル名:db_touroku フィールド: id mailaddress created(登録日) としています。 ユーザーにはテキストのフォームにメールアドレスのみを入力してもらい、「submit」でtouroku.phpのページへ移動。 idにはDBでauto_increment をつけています。 //touroku.php $sql = sprintf('INSERT INTO db_touroku VALUE("%d" ,"%s" ,"%s"', 0,mysql_real_escape_string($_SESSION['join']['mailaddress']),date('Y-m-d H:i:s')); mysql_query($sql,$link) or die(mysql_error()); 構文が間違っているでしょうか? どなたかご教授お願いします。

    • ベストアンサー
    • PHP
  • php 会員登録機能

    php初心者のものです。調べたりしたのですがなかなからちが明かず質問させていただきます。 現在会員登録機能をphpで動作確認しています。流れといたしましては index.php(登録作業)→check/php(入力された内容の確認、よければ登録)→thanks.php(会員登録完了) という流れなのですが check.phpで「登録」を押してもthanks.phpに飛びません。 MYSQLのmemberテーブルには[id].[nama].[email].[password].[created].[men].[redy]とフィールドを入れています。データベースにはうまく接続されているみたいなのでcheck.phpがおかしいのでしょうか? ソースはこちらです <?php session_start(); require('../dbconnect.php'); if(!isset($_SESSION['join'])){ header('Location: index.php'); exit(); } if(!empty($_POST)){ //登録処理をする $sql = sprintf ('INSERT INTO member SET nama="%s", email="%s", password="%s",created="%s"', mysqli_real_escape_string($db, $_SESSION['join']['nama']), mysqli_real_escape_string($db, $_SESSION['join']['email']), mysqli_real_escape_string($db, sha1($_SESSION['join']['password'])) ); mysqli_query($db, $sql) or die(mysqli_error($db)); unset($_SESSION['join']); header('Location: thanks.php'); exit();} ?> <html> <head> <meta charset="UTF-8" /> <title>新規会員登録</title> </head> <body> <form action="" method="post"> <dl> <dt>ユーザー名</dt> <dd> <?php echo htmlspecialchars($_SESSION['join']['nama'], ENT_QUOTES, 'UTF-8'); ?> </dd> <dt>メールアドレス</dt> <dd> <?php echo htmlspecialchars($_SESSION['join']['email'], ENT_QUOTES, 'UTF-8'); ?> </dd> <dt>パスワード</dt> <dd> 【表示されません】 </dd> </dl> <div><a href="index.php?action=rewrite">&laquo;&nbsp;書き直す</a> <input type="submit" value="登録する"></div> </form> </body> </html> その他なにか解決方法があればご指摘いただければ幸いです。 どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP入門書で勉強中の初心者

    PHP初心者です。 現在PHPの入門書で勉強中なのですが その中の「一言掲示板を作ってみよう」という内容を今やっていますがエラーが出てしまいます。ググってもググってもよくわからず質問させていただきます。 dbconnect.php ソース <?php mysql_connect('mysql.hostinger.jp','u666462996_*****','******') or die(mysql_error()); mysql_select_db('u666462996_*****'); mysql_query('SET NAMES UTF8'); ?> サーバーのパス ユーザー名は****とさせていただきます。 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> <dt>写真など</dt><dd> <img src="../member_picture/<?php echo $_SESSION['join'] ['image']; ?>" with="100" height="100" alt="" /> </dd> </dl> <div><a href="index.php?action=rewrite">&laquo;&ndsp;入力しなおす</a> | <input type="submit" value="登録する"/></div></form> check.phpを開いたらエラーが出ます。 エラー Warning: require(../dbconnect.php) [function.require]: failed to open stream: No such file or directory in /home/u666462996/public_html/check.php on line 2 Fatal error: require() [function.require]: Failed opening required '../dbconnect.php' (include_path='.:/opt/php-5.2/pear') in /home/u666462996/public_html/check.php on line 2 エラー内容 解決方法をお願いいたします。 dbconnect.phpもエラーが出てましたが phpを5.5から5.2に設定しなおすとエラーはなくなりました。 これもどういうことでしょうか。 ひとつお力を貸してくださいませ。

    • ベストアンサー
    • PHP
  • MySQLでshal()関数のエラーがでます

    Fatal error: Call to undefined function shal() in C:\xampplite\htdocs\HP2\join\check.php on line 14 とエラーがでてきます。 原因がわからなくて困っています。 どなたか回答よろしくお願いします。 if (!empty($_POST)) { //登録処理をする $sql = sprintf('INSERT INTO members SET name="%s", email="%s", password"%s", created"%s"', mysql_real_escape_string($_SESSION['join']['name']), mysql_real_escape_string($_SESSION['join']['email']), shal(mysql_real_escape_string($_SESSION['join']['password'])), date('Y-m-d H:i:s')); mysql_query($sql) or die(mysql_error()); unset($_SESSION['join']); header('Location: thanks.php'); } ?>

    • ベストアンサー
    • MySQL
  • メールフォームでの必須入力チェックについて

    はじめまして。PHP初心者です。PHPを使ってメールフォームを作成しています。入力画面で必須項目が記入されていなかったらエラー画面に飛ぶようにしたいのですが、なかなかうまくいきません。下のソースはサンプルを参考につくりました。 //入力画面 <?php if(isset($_POST['submit'])){ session_start(); $errflg = '1';   /*必須項目*/   if(($_POST['name']) == ""){     $_SESSION['name1'] = "・お名前";     $_SESSION['name1'] = $_POST['name1'];     $errflg = '0';   }else{     $_SESSION['name']="";   }       if($errflg == '0'){         header('Location: error.php');       exit();} ?> 流れとしては、名前の欄が入力されていなかったら、エラー画面に飛ばして「・お名前」と表示させたいです。もし他にいい方法やソースがありましたら教えてください。お願いします。

    • ベストアンサー
    • PHP
  • PHPフォームからのMYSQL保存がマッチしない

    いつもお世話になります。 類似する質問も見つけられず、いろいろ試して悩んだ挙句、アプローチを変えてもう一度投稿することにしました。 発端は、下記のページです。 http://okwave.jp/qa/q8604578.html 問題は、phpmyadminからカラムまたはフィールドに入力したものは重複していればエラー表示されるのですが、PHPのフォームからMYSQLのデータベースに保存したもの(phpmyadmin上ではちゃんと登録されている)は重複とみなされず、エラーとして検出されません。 phpフォームからMYSQLのデータベースを呼び出してカラムまたはフィールド上に同じものがなければ保存、そうでなければエラー表示、といった形で重複させないプログラムを作成するつもりでした。 上記のページでご返信いただいたように、重複させないカラムにユニーク設定してみたのですが、問題は解決されませんでした。 文字コードが違うからと思ったのですが、MYSQL、PHPどちらもUTF-8で統一させています。 フォームからMYSQLへの保存時に問題があるのでは?と思うのですが、どのような形で修正すればうまくいくのか、わかりません。 どうか、知識の足りない私にご教授いただけないでしょうか? PHPの設定とMYSQLへの登録のプログラムは下記の通りです。 PHP・・・5.4.19 XAMPP・・・1.8.2 phpmyadmin・・・4.0.4.1 データベース文字コード(UTF-8) phpの文字コード(php.iniのdefault_characterをUTF-8に設定) <?php //データベースの接続設定 $DB_HOST = "localhost"; $DB_NAME = "○○"; $DB_USER = "○○"; $DB_PASS = "○○"; //データベースに接続する $conn = mysql_connect($DB_HOST,$DB_USER,$DB_PASS) or die("接続エラー"); mysql_select_db($DB_NAME) or die("接続エラー");        //データベース登録前にメール送信する $userID = $_POST['userID']; $password = $_POST['password']; $name = $_POST['name']; $mail1 = $_POST['mail1']; $userID = htmlspecialchars($userID); $password = htmlspecialchars($password); $name = htmlspecialchars($name); $mail1 = htmlspecialchars($mail1); $mail_sub = '登録を受け付けました。'; $mail_body = 'ご登録、誠にありがとうございました。'; $mail_body = html_entity_decode($mail_body,ENT_QUOTES,"UTF-8"); $mail_head = 'From:blowin@horae.dti.ne.jp'; mb_language('Japanese'); mb_internal_encoding("UTF-8"); mb_send_mail($mail1, $mail_sub, $mail_body,$mail_head); ?> <?php //デフォルトのタイムゾーンを日本に設定 date_default_timezone_set("Japan"); //フォーム情報をすべて受信 extract($_POST); //そのまま代入する形ではエラーが起きるため、isset関数を使ってエラー回避する if(isset($_POST['$userID'])){ $userID = cnv_dbstr($_POST['$userID']); } if(isset($_POST['$password'])){ $password = cnv_dbstr($_POST['$password']); } if(isset($_POST['$name'])){ $name = cnv_dbstr($_POST['$name']); } if(isset($_POST['$mail1'])){ $mail1 = cnv_dbstr($_POST['$mail1']); } //データを追加する $sql = "INSERT IGNORE INTO touroku(userID,password,name,email,date)"; $sql .= "VALUES( " ; $sql .= " ' " .$userID. " ', " ; $sql .= " ' " .$password. " ', " ; $sql .= " ' " .$name. " ', " ; $sql .= " ' " .$mail1. " ', " ; $sql .= " ' " .date("Y/m/d H:i:s") . " ' " ; $sql .= " ) " ; $res = mysql_query($sql,$conn) or die("データ追加エラー"); //SQLコマンド用の文字列に変換する関数 function cnv_dbstr($string){ //タグを無効にする $string = htmlspecialchars($string); //magic_quotes_gpcがOnの場合はエスケープを解除する if(get_magic_quotes_gpc()){ $string = stripslashes($string); } //SQLコマンド用の文字列にエスケープする $string = mysql_real_escape_string($string); return $string; } header('location:./testkanryou.php'); exit; ?> 大変申し訳ありませんが、どうか、よろしくお願い申し上げます。

    • 締切済み
    • PHP
  • 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> 文字制限でここまでです すみません。 お願いいたします。

    • ベストアンサー
    • PHP
  • PHPでDBとディレクトリへの画像データ登録方法

    初めて質問させていただきますPHP初心者です。 画像投稿画面を作り、DB(imageフィールド)と任意のディレクトリ(member_picture)へ画像を保存するページを考えてます。 下記が作ったソースになるのですが、 id、message、titleフィールドにはちゃんと投稿内容が入るのですが、 どうしてもimageだけがフィールドにもディレクトリにも入りません。 アドバイスいただけますでしょうか。 <?php session_start(); if(!empty($_POST)) { //画像エラーの確認 $fileName = $_FILES['image']['name']; if(!empty($fileName)) { $ext = substr($fileName, -3); if($ext !='jpg') { $error['image'] = 'type'; } } if(empty($error)) { //画像をアップロードする $image = date('YmdHis') . $_FILES['image']['name']; move_uploaded_file($_FILES['image']['tmp_name'], '../member_picture/' . $image); $_SESSION['join'] = $_POST; $_SESSION['join']['image'] = $image; header('Location: content_upload.php'); } } //記録する if (!empty($_POST)) { if ($_POST['title'] !='') { $sql = sprintf('INSERT INTO post SET member_id=%d, message="%s", title="%s", image="%s", created=NOW()', mysql_real_escape_string($member['id']), mysql_real_escape_string($_POST['message']), mysql_real_escape_string($_POST['title']), mysql_real_escape_string($_POST['image']) ); mysql_query($sql) or die(mysql_error()); header('Location: content_upload.php'); } } ?> <!DOCTYPEうんぬん・・> <html うんぬん・・> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link rel="stylesheet" type="text/css" href="style.css" /> <title>画像投稿ページ</title> </head> <body><div id="wrap"> <div id="head"><h1>画像投稿ページ</h1></div> <form action="" method="post" enctype="multipart/form-data"> <dl><dt>投稿画面</dt> <dd>画像<br> <input type="file" name="image" /> <?php if($error['image'] == 'type'): ?> <p class="error">* 画像は「.jpg」の画像を指定してください</p> <?php endif; ?> <?php if(!empty($error)): ?> <p class="error">* 恐れ入りますが、画像を改めて指定してください</p> <?php endif; ?> </dd> </dl> <div> <p><input type="submit" value="投稿する" /></p> </div> </form> </div> </div> </body> </html> 以上になります。 どこを注意したらいいのかもわからず困ってます! よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • フォームの内容を送信しようとするとエラーが出る

    最近、PHPを勉強し始めた初心者です。 よくわかるPHPの教科書(毎日コミュニケーションズ刊)の239ページに載っているサンプルプログラムを参考に入力フォームに記入した内容を確認ページに反映したいのですが Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\bkconnect.php:10) in C:\xampp\htdocs\input.php on line 31 というエラーが出てしまいます。ヘッダが既に送信されているのでヘッダを変えることができなかったみたいなのですが。 どこがいけないのでしょうか? ●input.php <?php session_start(); require('bkconnect.php'); if (!empty($_POST)) { //エラー項目の確認 if ($_POST['title'] == '') { $error['title'] = 'black'; } if ($_POST['hira'] == '') { $error['hira'] = 'black'; } if ($_POST['management'] == '') { $error['management'] = 'black'; } $fileName = $_FILES['image']['title']; if (!empty($fileName)) { $ext = substr($fileName, -3); if ($ext != 'jpg' && $ext != 'gif') { $error['image'] = 'type'; } } if (empty($error)) { //画像をアップロードする $image = date('YmdHis') . $_FILES['image']['title']; move_uploaded_file($_FILES['image']['tmp_title'], ' ./book_picture/' . $image); $_SESSION['join'] = $_POST; $_SESSION['join']['image'] = $image; header('Location: check.php'); } } //書き直し if ($_REQUEST['action'] == 'rewrite') { $_POST = $_SESSION['join']; $error['rewrite'] = true; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>追加入力フォーム</title> <link rel="stylesheet" type="text/css" href="book.css"> </head> <body> <center> <div> ・・・ よろしくお願いします。

    • ベストアンサー
    • PHP
  • header(Location: next.php) だとPOSTした値が渡らない?

    文末は(だいぶ端折ってますが), (1) エラーがあればエラー表示, (2) エラーがなければnext.phpに飛ぶ という動作をするのですが, next.php 内に echo $_POST["Name"]; とか echo $_POST["reg"]; とか書いても valueの中身が渡ってきていません. header("Location: next.php"); で飛ばすとだめなのでしょうか. http://oshiete1.goo.ne.jp/qa2706500.html でも,#2さんのアドバイスのようにしようとしましたが, #1さんのご教示のように,セッションを利用するしかないですか? ちょっとセッションで値の渡し方がチンプンカンプンなのですが・・・ <?php session_cache_limiter('none'); session_start(); header("Cache-control:no-cache"); header("Pragma:no-cache"); $errFlg=false; if ( $_POST["reg"] == "" ) $errFlg = true; if ( !$errFlg ) { if ( $_POST["Name"] == "" ) { $errFlg = true; $errStr["Name"] = "未入力"; } } if ( $errFlg ) { ?> <html><body> <form method="post" action="<?php $_SERVER["PHP_SELF"] ?>"> <?= $errStr["Name"] ?></td> <input type="text" name="Name" value="<?php echo $_POST["Name"]; ?>"> <input type="submit" name="reg" value="登録"></td> </form> </body></html> <?php } else { header("Location: next.php"); } ?>

    • ベストアンサー
    • PHP