2016-06-03 2 views
-3
<?php 
session_start(); 

if (!$_SESSION['loggedInUser']) { 
header("Location: login.php"); 
} 
$resultMessage = null; 
include ('db.php'); 
$query = "SELECT * from user"; 
$result = mysqli_query($connection, $query); 
mysqli_close($connection); 
?> 

<!DOCTYPE html> 
<html lang="en"> 

<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge"> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<title>Client Area</title> 

</head> 

<body> 

<?php 
// Check for Header Injections 
function has_header_injection($str) { 
return preg_match("/[\r\n]/", $str); 
} 

$missingitemname = '<p><strong> Please Enter Item Name</p></strong>'; 

if (isset($_POST['submit_form'])) { 

$itemname = $_POST["item-name"]; 
$brandname = $_POST["brand"]; 
$description = $_POST["description"]; 
$availability = $_POST["availability"]; 
$contact = $_POST["contact-p"]; 
$address = $_POST["address"]; 
$email = $_POST["email"]; 
$location = $_POST["location"]; 
$file = $_FILES["attach"]; 
if (!$itemname) { 
$errors .= $missingitemname; 
} else { 
$itemname = filter_var($itemname, FILTER_SANITIZE_STRING); 
} 

if (!$email) { 
$errors .= $missingemail; 

} else { 
$email = filter_var($email, FILTER_SANITIZE_EMAIL); 
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
$errors .= $invalidEmail; 
} 

} 
if (!$brandname) { 
$errors .= $missingbrandname; 
} else { 
$brandname = filter_var($brandname, FILTER_SANITIZE_STRING); 

} 



if ($errors) { 
$resultMessage = '<div class="alert alert-danger">'. $errors .'</div>'; 
} 
else { 
$to = "[email protected]"; 
$subject ="New Contact"; 
$message ="<p>Item Name: $itemname.</p> 
<p>Brand: $brandname.</p> 
<p>Description: $description.</p> 
<p>Availability: $availability.</p> 
<p>Contact Person: $contact</p> 
<p>Email: $email</p> 
<p>Location: $location</p> 
"; 
$headers ="Content-type: text/html"; 
if (mail($to, $subject, $message, $headers)) { 
$resultMessage = '<div class="alert alert-success">Thank You. Your message has been sent</div>'; 
} else { 
$resultMessage = '<div class="alert alert-danger">Sorry Please Try Again.</div>'; 
} 
} 

} 

?> 

<div class="container"> 
<h1>PinTribe</h1> 
<p>Welcome <?php echo $_SESSION['loggedInUser']; ?></p> 
</div> 
<div class="top-content"> 

<div class="inner-bg"> 
<div class="container"> 
<div class="row"> 
<div class="col-sm-8 col-sm-offset-2 text"> 

</div> 
</div> 
<div class="row"> 
<div class="col-sm-6 col-sm-offset-3 form-box"> 
<div class="form-top"> 
<div class="form-top-left"> 


</div> 

</div> 

<div class="form-bottom"> 
<?php echo $resultMessage; ?> 
<form role="form" action="dashboard.php" method="post" class="login-form" enctype="multipart/form-data"> 
<div class="form-group"> 
<label class="sr-only" for="item-name">Item Name</label> 
<input type="text" name="item-name" placeholder="Item Name" class="username form-control" id="item-name"> 
</div> 

<div class="form-group"> 

<textarea type="text" name="description" placeholder="Description" class="description form-control" id="description" rows="5"></textarea> 
</div> 

<div class="form-group"> 
<label class="sr-only" for="email">Email</label> 
<input type="email" name="email" placeholder="Email.." class="email form-control" id="email"> 
</div> 


</div> 

이것은 내 코드가 내 양식을 제출할 때 내가 받고있는 것입니다 죄송합니다 다시 시도하십시오. 내가 추가 한 실패 메시지입니다. 내 코드를 다시 확인했지만 왜이 오류가 발생하는지 잘 모르겠습니다. 나는 모든 분야를 채웠지 만 여전히 왜 그런 일이 일어나고 있는지 확신 할 수 없다. 아무도 그것을 알아낼 수 있습니까?PHP 문의 양식을 제출하지 않았습니다

+0

서버의 오류 로그를 확인 했습니까? –

+6

Waaayyyy 코드가 너무 많습니다. * 더 많은 * 디버깅을하고 코드의 특정 부분을 좁혀 야합니다. 지금 당장 당신은 많은 코드를 작성하고 테스트하지 않았던 것처럼 보입니다. 이제 우리가 코드를 수정 해주기를 바랍니다. –

+1

문제는 제출하는 필드와 채워지지 않은 필드가 왜 같다고 생각하십니까? 문제는'mail()'함수에 있습니다. 그것이 "죄송합니다"메시지를 표시할지 여부를 결정하는 곳입니다. –

답변

2

mail()if (mail($to, $subject, $message, $headers)) {에 호출하면 false가 반환되기 때문입니다.

실패 이유 : PHP mail form doesn't complete sending e-mail에는 mail()이 이메일을 보내지 않는 이유를 디버깅하는 방법에 대한 세부 정보가 있습니다.

+0

안녕하세요, 오류를 표시하지 않습니다 :/ – Ali

+0

mail()이 이메일을 보내지 않는 이유를 디버깅하려면 http://stackoverflow.com/questions/24644436/php-mail-form-doesnt-complete-sending-e-mail을 확인하십시오. – swa66

1

, 당신의 경우, 메일() 함수 http://php.net/manual/en/function.mail.php

당신이 볼 수 있듯이, 그것은 "부울"값을 반환하기위한 PHP 매뉴얼에 참고하시기 바랍니다, FALSE를 반환합니다. 또한 현재의 값이 무엇인지 볼 위해서 var_dump를 사용할 수 있습니다

mail('[email protected]','My Subject','Testing'); 

: 같은 메일의 빠른 테스트를 들면

()

$to = "[email protected]"; 
$subject ="New Contact"; 
$message ="<p>Item Name: $itemname.</p> 
<p>Brand: $brandname.</p> 
<p>Description: $description.</p> 
<p>Availability: $availability.</p> 
<p>Contact Person: $contact</p> 
<p>Email: $email</p> 
<p>Location: $location</p> 
"; 
$headers ="Content-type: text/html"; 
if (mail($to, $subject, $message, $headers)) { 
$resultMessage = '<div class="alert alert-success">Thank You. Your message has been sent</div>'; 
} else { 
$resultMessage = '<div class="alert alert-danger">Sorry Please Try Again.</div>'; 
} 
} 

간단한 줄을 추가 코드의이 부분을 언급 .

희망이 있습니다.

+0

어떻게 var_dump를 호출하나요? – Ali

+0

일단 그렇게했다면 출력을 알려주십시오. –

+0

bool (false) 이것이 내가 얻은 것입니다. 미리 감사드립니다. – Ali

0

이 줄은 false입니다. if (mail($to, $subject, $message, $headers)) { mail 및 clinches를 삭제하십시오. 전체 기능이 아닌 isset($var)과 같은 다른 조건을 사용해보십시오.

관련 문제