エラーがなければ登録+登録完了画面 - PHPプロ!Q&A掲示板
2739
- 0P
- 0P
エラーがなければ登録+登録完了画面
質問日時 / 2010年5月31日 03:18 (最終編集:5月31日 10:55) 回答数 / 17件
Questioner: lsd1192
Tweet
流れとしては、フォーム入力画面⇔エラー処理、エラーがなければ→登録+登録完了画面
regist.php
- echo $message;
- <form action="error_check.php?guid=on" name="form" method="get" utn="utn">
- 名前<input type="text" name="name" maxlength="16" size="16" istyle="1" format="16M" mode="hiragana" accesskey="1" value=" echo $name; " /><br />
- フリガナ<input type="text" name="kana" maxlength="10" size="10" istyle="2" mode="hankakukana" accesskey="2" value=" echo $kana; " /><br />
- ニックネーム<input type="text" name="nick" maxlength="10" size="10" istyle="2" mode="hankakukana" accesskey="3" value=" echo $nick; " /><br />
- <input type="radio" name="sex" value="男" checked="checked" accesskey="4" />男
- <input type="radio" name="sex" value="女" accesskey="5" />女<br />
- パスワード(4文字以上)<br />
- <input type="password" name="pass" maxlength="24" size="12" istyle="4" format="12N" mode="numeric" accesskey="6" value="" /><br />
- パスワード確認<br />
- <input type="password" name="pass2" maxlength="24" size="12" istyle="4" format="12N" mode="numeric" accesskey="6" value="" /><br />
- メールアドレス (変更不可)<br /><br /><br />
- <input type="hidden" name="email" value="" />
- <input type="hidden" name="temp_uid" value="" />
- <input type="submit" value="送信" name="send" accesskey="7" />
- </form>
error_check.php
- $name = $_GET['name'];
- if(empty($name)){
- $message ='未入力があります';
- require_once 'regist.php';
- exit;
- }
- $kana = $_GET['kana'];
- if(empty($kana)){
- $message ='未入力があります';
- require_once 'regist.php';
- exit;
- }
- $nick = $_GET['nick'];
- if(empty($nick)){
- $message ='未入力があります';
- require_once 'regist.php';
- exit;
- }
- $pass = $_GET['pass'];
- if (empty($pass)) {
- $message ='未入力があります';
- require_once 'regist.php';
- exit;
- }
- $pass2 = $_GET['pass2'];
- if (empty($pass2)) {
- $message ='未入力があります';
- require_once 'regist.php';
- exit;
- }
- if($_GET['pass'] and $_GET['pass2'] and ($_GET['pass'] != $_GET['pass2'])){
- $message = 'パスワードが一致しません';
- require_once 'regist.php';
- exit;
- }
- if(!ctype_digit($pass) or 4 > strlen($pass) or 16 < strlen($pass) or !preg_match("/^[a-zA-Z0-9]+$/", $pass)){
- $message = 'パスワードは4文字以上半角英数字で入力してください';
- require_once 'regist.php';
- exit;
- }
- //DBに接続
- $con = mysql_connect("localhost","test","123456")or die(mysql_error());
- mysql_select_db("test")or die(mysql_error());
- // mysql_query("SET NAMES 'utf8'");
- mysql_set_charset('utf8');
- $sql = mysql_insert_string('users', compact('name', 'kana', 'nick', 'sex', 'pass', 'mail'));
- $res = mysql_query($sql) or die(mysql_error());
- mysql_close($con);
- function mysql_insert_string($table_name, $values) {
- $names = '`'.implode('`,`', array_keys($values)).'`';
- $values = implode(',', array_map(mysql_escape, $values));
- return "INSERT INTO `{$table_name}` ({$names}) VALUES({$values});";
- }
- function mysql_escape($value) {
- switch (true) {
- case is_null($value) : return 'NULL';
- case is_bool($value) : return $value ? 1 : 0;
- case is_numeric($value) : return $value;
- default : return "'".mysql_real_escape_string($value)."'";
- }
- }
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。




ページのトップへ


GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。