質問編集履歴

2

文法の修正

2016/04/17 04:07

投稿

KotaMiura
KotaMiura

スコア10

test CHANGED
File without changes
test CHANGED
@@ -6,49 +6,29 @@
6
6
 
7
7
  という流れです。
8
8
 
9
- 入力ページ送信ページのphpを教えてください
9
+ 入力ページでチェックし、大丈夫ならメール送信し、送信完了ページに飛ぶ設定です
10
10
 
11
- 合わせページ(contact.php)のhtmlはこれです。
11
+ ここまで出来ましたが、アドバイスします。
12
12
 
13
13
  ```ここに言語を入力
14
14
 
15
- <form name="contact" action="send.php" method="post">
15
+ <?php
16
16
 
17
- <p>your name</p>
17
+ header("Content-Type: text/html;charset=UTF-8");
18
18
 
19
- <p>
20
19
 
21
- <input type="text" name="name" maxlength="100" value="">
22
20
 
23
- </p>
21
+ error_reporting(0);
24
22
 
25
- <p>your e-mail</p>
26
23
 
27
- <p><input type="text" name="e-mail" maxlength="100" value=""></p>
28
24
 
29
- <p>subject</p>
25
+ $name = htmlspecialchars($_POST["name"],ENT_QUOTES);
30
26
 
31
- <p><input type="text" name="subject" maxlength="100" value=""></p>
27
+ $e_mail = htmlspecialchars($_POST["e-mail"],ENT_QUOTES);
32
28
 
33
- <p>message</p>
29
+ $subject = htmlspecialchars($_POST["subject"],ENT_QUOTES);
34
30
 
35
- <p><textarea name="message" maxlength="5000" style="width:100%; height:100px;"></textarea></p>
36
-
37
- <p><input type="submit" name="submit" value="SEND" id="send"></p>
38
-
39
- </form>
40
-
41
- ```
42
-
43
- send.phpのhtmlです。
44
-
45
- ```ここに言語を入力
46
-
47
- $name = $_POST["name"];
48
-
49
- $email = $_POST["e-mail"];
50
-
51
- $message = $_POST["message"];
31
+ $message = htmlspecialchars($_POST["message"],ENT_QUOTES);
52
32
 
53
33
 
54
34
 
@@ -56,13 +36,17 @@
56
36
 
57
37
  $errormsg1 = "<span class='f_red'> 必須項目</span>";
58
38
 
39
+
40
+
59
41
  }
60
42
 
61
43
 
62
44
 
63
- if ($email == null) {
45
+ if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $e_mail)) {
64
46
 
47
+ } else {
48
+
65
- $errormsg2 = "<span class='f_red'> 必須項目</span>";
49
+ $errormsg2 = "<span class='f_red'> 必須項目</span>";
66
50
 
67
51
  }
68
52
 
@@ -76,19 +60,63 @@
76
60
 
77
61
 
78
62
 
79
- mb_language("Japanese");
63
+ if($errormsg1!="<span class='f_red'> 必須項目</span>" && $errormsg2!="<span class='f_red'> 必須項目</span>" && $errormsg3!="<span class='f_red'> 必須項目</span>"){
80
64
 
81
- mb_internal_encoding("UTF-8");
65
+ mb_language("Japanese");
82
66
 
67
+ mb_internal_encoding("UTF-8");
83
68
 
69
+
84
70
 
85
- $message = "名前:".$_POST["name"]."\n メールアドレス:".$_POST["e-mail"]."\n 件名:".$_POST["subject"]."\n お問い合わせ内容:".$_POST["message"];
71
+ $message2 = "名前:".$name."\n メールアドレス:".$e_mail."\n 件名:".$subject."\n お問い合わせ内容:".$message;
86
72
 
73
+
87
74
 
75
+ if (mb_send_mail("crack-.-tmrku327@ezweb.ne.jp", "お問い合わせ", $message2, "From: " . $_POST["e-mail"])) {
88
76
 
89
- if (!mb_send_mail("crack-.-tmrku327@ezweb.ne.jp", "お問い合わせ", $message, "From: " . $_POST["e-mail"])) {
77
+ header('location: send.php');
90
78
 
79
+ }else{
80
+
91
- exit("error");
81
+ exit("error");
82
+
83
+ }
84
+
85
+ }
86
+
87
+ ?>
88
+
89
+ ```
90
+
91
+ contact.phpのhtmlです。
92
+
93
+ ```ここに言語を入力
94
+
95
+ <form name="contact" action="contact.php" method="post">
96
+
97
+ <p>your name<?php echo $errormsg1; ?></p>
98
+
99
+ <p>
100
+
101
+ <input type="text" name="name" maxlength="100" value="<?php echo $name; ?>">
102
+
103
+ </p>
104
+
105
+ <p>your e-mail<?php echo $errormsg2; ?></p>
106
+
107
+ <p><input type="text" name="e-mail" maxlength="100" value="<?php echo $e_mail; ?>"></p>
108
+
109
+ <p>subject</p>
110
+
111
+ <p><input type="text" name="subject" maxlength="100" value="<?php echo $subject; ?>"></p>
112
+
113
+ <p>message<?php echo $errormsg3; ?></p>
114
+
115
+ <p><textarea name="message" maxlength="5000" style="width:100%; height:100px;"><?php echo $message;?></textarea></p>
116
+
117
+ <p><input type="submit" name="submit" value="SEND" id="send"></p>
118
+
119
+ </form>
92
120
 
93
121
  ```
94
122
 

1

phpを作り直しました。

2016/04/17 04:07

投稿

KotaMiura
KotaMiura

スコア10

test CHANGED
File without changes
test CHANGED
@@ -40,8 +40,60 @@
40
40
 
41
41
  ```
42
42
 
43
+ send.phpのhtmlです。
44
+
45
+ ```ここに言語を入力
46
+
47
+ $name = $_POST["name"];
48
+
49
+ $email = $_POST["e-mail"];
50
+
51
+ $message = $_POST["message"];
43
52
 
44
53
 
45
- 必須項目はyourname,your e-mail,messegeで、your e-mailは正しい形式かもチェックしたいです。
46
54
 
47
- よろしくお願いします。
55
+ if ($name == null) {
56
+
57
+ $errormsg1 = "<span class='f_red'> 必須項目</span>";
58
+
59
+ }
60
+
61
+
62
+
63
+ if ($email == null) {
64
+
65
+ $errormsg2 = "<span class='f_red'> 必須項目</span>";
66
+
67
+ }
68
+
69
+
70
+
71
+ if ($message == null) {
72
+
73
+ $errormsg3 = "<span class='f_red'> 必須項目</span>";
74
+
75
+ }
76
+
77
+
78
+
79
+ mb_language("Japanese");
80
+
81
+ mb_internal_encoding("UTF-8");
82
+
83
+
84
+
85
+ $message = "名前:".$_POST["name"]."\n メールアドレス:".$_POST["e-mail"]."\n 件名:".$_POST["subject"]."\n お問い合わせ内容:".$_POST["message"];
86
+
87
+
88
+
89
+ if (!mb_send_mail("crack-.-tmrku327@ezweb.ne.jp", "お問い合わせ", $message, "From: " . $_POST["e-mail"])) {
90
+
91
+ exit("error");
92
+
93
+ ```
94
+
95
+ $name,$email,$messageのどれかに値が代入されいなかったら、contact.phpに戻り、$errormsg1,$errormsg2,$errormsg3のうち代入されているものをechoで表示させたいです。
96
+
97
+ もしすべての値が取れていたら、メールを送信するようにしたいです。
98
+
99
+ 今できているphpはここまでです。何かアドバイスありませんか??