2011-07-05 19 views
2

名前、場所、URL、電子メールアドレスなどのユーザー情報を収集するフォームと会社のロゴと関連付ける必要のあるカテゴリ($ _POSTのチェックボックス配列を使用) 。

次に、PHPページにリンクする「承認」ボタンを使ってMySQLに保存する前に、そのデータが表示される($ _SESSIONと$ _POSTデータを保持する隠しフォームフィールドを使用して)ページのプレビューを表示しますこれにはMySQL INSERTクエリがあります。私は「未定義のインデックス」を取得

$_SESSION['clogo'] = $_POST['clogo']; 
$_SESSION['cat[]'] = $_POST['cat[]']; 

エラー:

私がいる問題は、データベースへのエントリと服従の間でのプレビューページにはロゴの入力やチェックボックスの配列入力に問題がされていますこれらをプレビューしようとすると、他のすべての標準入力は問題ありません。そして、ユーザーの承認のためにmysqlの挿入クエリに渡されます。さらに、「プレビューページ」をスキップして元のフォームからPHPファイルを挿入すると問題はなく、すべてのデータがデータベースに正しく入力されます。

誰もが

+0

mysqlタグを削除しました。あとでデータを使って何をするつもりでも、それほど重要ではありません。 – evan

答えて

2

私は$_POST['cat']がそれ自身の配列であると推測しています。 (私はあなたの例で[]の後にcatのためにこれを推測しています)。この場合、あなたの例では、$_SESSION['cat[]']を存在しない変数名に設定しています。 $_SESSION['cat']$_POST['cat']に設定してみてください。

+0

あなたは彼らに画像をアップロードすることができますか?その場合は、一時ディレクトリ内のファイルを操作する必要があります。 'tmp_name'の' POST'の後の '$ _FILES'配列を見てください。 'move_uploaded_file'を使ってファイルを移動させなければなりません。 http://us.php.net/manual/en/function.move-uploaded-file.php –

+0

それは、配列のエラーメッセージをソートしましたが、今は配列から選択した項目を保存しません。 6つのチェックボックス)をデータベースに保存すると、それらのすべてが保存されます。何か案は?それをセッション変数に設定する前に 'print_r($ _ POST ['cat'])'を実行してください。 – Dan

+0

フォームが正しく転記されていることを確認してください。 –

1

start_session機能を使用してセッションを開始することを忘れないでください助けることができます。そうしないと、セッションに何も保存されません。

また、サードパーティのアプリケーションを使用すると、すべてのセッション変数が削除される可能性があります。 Wordpressは良い例です。

+0

こんにちは@Ancide、よく私はsession_start()を使用していますが、他のフィールドのいずれかに問題はありません。プレビューするか、承認時にデータベースに追加するだけです。アップロードされた画像とチェックボックス配列です。ボールを弾いていません。おかげで – Dan

1

$ _POST []配列は、プレビューページに投稿してからPHPスクリプトページを挿入するときに再初期化する必要があります... フォームからPHPスクリプトページに直接行くと、POSTに変数がありますそれは正常に動作している必要があります。

+0

OPは "$ _POSTデータを保持する隠しフォームフィールド" –

3

あなたはこのしたくない:

$_SESSION['cat[]'] = $_POST['cat[]']; 

しかし、この:

$_SESSION['cat'] = $_POST['cat']; 

すなわち、「猫」は、それが別であるために参照すること_POST配列のインデックス、および要素であり、アレイ。

0

'cat []'はインデックスではありません。インデックスは配列でなければならない 'cat'になります。

関連する問題