왼쪽 광고칸
반응형

Computer Tip's/PHP에 해당하는 글 1

Form에 POST 및 배열로 변수 값 넘기기

Computer Tip's/PHP|2019. 9. 24. 03:07

공감과 구독하기는 블로거에게 힘이 됩니다.

 

- selectResult.php -

<?php
/*
 * Created on 2009. 08. 06
*/
echo "<b>".$_POST[name]."</b>님이 선택하신 상품은 아래와 같습니다.<br/>";
if(!empty($_POST["products"])){
 echo "<ul>";
 foreach ($_POST["products"] as $value){
  echo "<li>$value</li>";
 
 }     // foreach 반복문의 형태를 잘 알아두자. 
 echo "</ul>";
}
?>
<html>
<head>
<title>A simple HTML form</title>
</head>
<body>
<form method="post" action="write_result.php">
<p><strong>이름:</strong><br/>
<input type="text" name="name" maxlength="12"/></p>
<p><strong>메시지:</strong><br/>
<textarea name="content" rows="5" cols="40"></textarea></p>
<p><input type="submit" value="글등록" /></p>
</form>
</body>
</html>

write_result.php -

<?php
/*
 * Created on 2009. 08. 06
*/

echo "<p><b>".$_POST["name"]."님, 환영합니다.</b></p>";
echo "<p>당신의 메시지: ". $_POST["content"]."</p>";
?>

--> $_POST 전역변수로 폼의 데이터를 넘겨 받는다.

==== 배열을 사용한 폼 ====

: select 문에서 다중 선택을 가능하게 하였을 때에는 배열을 사용하여 하나 이상의 값을 넘길 수 있도록 해야된다.

 

selectResult.php -

<html>
<head>
<title>
select 구문을 포함한 form
</title>
</head>
<body>
<form method="post" action="selectResult.php">
<b>이름:</b><br>
<input type="text" name="name" maxlength="12"><br>
<b>상품 선택</b><br>
<select name="products[]" multiple>    // select문에서는 products[]처럼 배열 형태로 값을 넘겨야된다.
<option value="본체">본체</option>
<option value="마우스">마우스</option>
<option value="키보드">키보드</option>
<option value="스피커">스피커</option>
</select><br>
<input type="submit" value="확인"><br>

</form>
</body>
</html>
<?php
/*
 * Created on 2009. 08. 06
*/
echo "<b>".$_POST[name]."</b>님이 선택하신 상품은 아래와 같습니다.<br/>";
if(!empty($_POST["products"])){
 echo "<ul>";
 foreach ($_POST["products"] as $value){
  echo "<li>$value</li>";
 
 }     // foreach 반복문의 형태를 잘 알아두자. 
 echo "</ul>";
}
?>

==== 한페이지에서 HTML과 PHP를 함께 사용하기( 자기자신에게 폼값 넘기기) / 페이지 리다이렉션 ====

* PHP로 작성한 숫자 맞추기 스크립트

--> 단, 정답을 맞추었을 경우 정답 페이지로 리다이렉션한다.

<html>
<head>
<title>자기자신을 호출하는 폼</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
<b>정답 시도 횟수:</b> <?php echo $num_tries;?> 번째 정답 시도를 할 차례입니다.

<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">  // 폼의 데이터값을 자기자신의 페이지에 넘긴다.
<br>당신이 예상하는 숫자:</b><br>
<input type="text" name="guess"/><br>

<input type="hidden" name="num_tries" value="<?php echo $num_tries; ?>">
<input type="submit" value="전송">
</form>
</body>
</html>

 


** self.php **

<?php
$num = 42;

$num_tries = (isset($_POST["num_tries"]))?$_POST["num_tries"]+1:1;  // hidden으로 넘어온 값이 있다면... 삼항 연산자.
if(!isset($_POST["guess"])){     // 처음 페이지를 열었을때 $_POST변수에 값이 설정되어 있지 않다면... 
 $message = "환영합니다.";
}
else if($_POST["guess"]<$num){  // 폼에서 넘어온 값이  42보다 적은 숫자일때
 $message = $_POST["guess"]."는 적은 숫자입니다.더 높은 숫자를 입력하세요";
}

else if($_POST["guess"]>$num){  // 폼에서 넘어온 값이 42보다 클때,
 $message = $_POST["guess"]."는 큰 숫자입니다. 더 낮은 숫자를 입력하세요";
}

else    { // 폼에서 넘어온 값이 42일때,  goodjob.html로 리다이렉션 된다.
header("Location:goodjob.php");

}

 

[mail function]
; For Win32 only.
;SMTP = localhost
 SMTP = mail.hananet.net    // 실제로 사용 가능한 메일서버가 구축되어 있어야 가능함.
smtp_port = 25

; For Win32 only.
;sendmail_from = hjs6877@naver.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
--> mail() 함수를 사용하기 전에 php.ini 파일에서 위와 같이 수정한다.
<html>
<head>
<title>메일 폼</title>
</head>
<body>
<form method="post" action="sendmail.php">
이름: <br/>
<input type="text" size="25" name="name"/></p>
이메일 주소:<br/> <input type="text" size="25" name="email"/></p>
글쓰기:<br/>
<textarea name="message" cols="30" rows="5"></textarea><br/>
<input type="submit" value="전송"/><br/>
</form>
</body>
</html>

** sendmail.php **

 

<html>
<head>
<title>메일 전송</title>
</head>
<body>
<?php
/*
 * Created on 2009. 08. 10
*/

echo "<p><b>".$_POST["name"]."</b>님의 메일이 전송되었습니다.!!</p>";
echo "<p><b>".$_POST["name"]."</b>님의 메일 주소: <b>".$_POST["email"]."</b></p>";
echo "<p><b>메시지 내용: </b><br/>";
echo $_POST["message"]."</p>";

 

// 메일 스트링을 만든다.
$msg = "이름: ".$_POST["name"]."\n";
$msg .= "이메일 주소: ".$_POST["name"]."\n";
$msg .= "메시지 내용: ".$_POST["message"]."\n";

 

//메일을 설정한다.
$recipient = "stlucifel@naver.com"; // 받는 사람 주소
$subject = "From siksco"; // 메일의 제목
$mailheaders = "From: stlucifel@naver.net\n";
$mailheaders .= "Reply-To: ".$_POST["email"];

 

// 메일을 보낸다.
mail($recipient,$subject,$msg,$mailheaders);

// mail() 함수는 받는 사람, 제목, 본문, 메일 헤더 등 네개의 인자를 사용한다.

?>
</body>
</html>

 

 

 

 

 

댓글()
aaaaa
오른쪽 광고칸
반응형