PHP表单提交打开空白页面

时间:2014-03-31 16:40:57

标签: php html forms

我将表单的代码复制到我的网站。它没有提交......有人能看到问题吗?

<?php
if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "danielko@intrahouse.co.il";
$email_subject = "פנייה מהאתר";


function died($error) {
    // your error code can go here
    echo "We are very sorry, but there were error(s) found with the form you submitted. ";
    echo "These errors appear below.<br /><br />";
    echo $error."<br /><br />";
    echo " מלא את כל הפרטים בבקשה.<br /><br />";
    die();
}

  // validation expected data exists
  if(!isset($_POST['name']) ||
    !isset($_POST['email']) ||
    !isset($_POST['telephone']) ||
    !isset($_POST['comments'])) {
    died(' אחד הפרטים חסר. מלא את כל הפרטים בבקשה');       
}

$first_name = $_POST['first_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required

$error_message = "נא מלא פרטים נכונים";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'נא מלא פרטים נכונים.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
 $email_message = "Form details below.\n\n";

function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}

$email_message .= "Name: ".clean_string($first_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";


// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);  
?>





<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" dir"=rtl">
<meta name="keywords" content="פורום בית חכם,בית חכם, חשמל חכם, בקרת חשמל, ניהול חשמל,     חסכון בחשמל, אמצעי בקרת חשמל, כמה עולה בית חכם, מחירי חשמל חכם, מערכות בית חכם, תכנון בית חכם">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="stylesheet" href="contact_style.css" type="text/css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"    type="text/javascript" charset="utf-8"></script>
<script src="js/jquery.uniform.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function(e){
$("input:checkbox, input:radio").uniform();
$('#top').css('float','none');
$('.content_window').css('height','auto');
});
</script>
<title>IntraHouse - צור קשר</title>

</head>

<body>
<div class="background">
<div class="content_window">
<header>
<div class="languages">
        <a href="indexEnglish.html">English</a>
        <a href="index.html">עברית</a>
    </div>
<div id="app_theme" style="margin-top:3px" ></div>
    <div id="top" style="margin-top:2px" style="float:none" >
        <nav id="topmenu">
            <ul>
                <li id="home"><a href="index.html">דף הבית </a></li>
                <li id="about"><a href="#">אודות </a></li>
                <li id="prices"><a href="prices.html">מחירים</a></li>
                <li id="projects"><a href="projects.html">פרוייקטים</a></li>
                <li id="store"><a href="store.html">חנות</a></li>
                <li id="contact_us"><a href="contact_us.html">צור קשר</a></li>            
            </ul>
        </nav>
    </div>
</header>
<div class="contact" style="margin-top:10px">
<article dir="rtl">
<h1 style="margin-top:10px"> נשמע מעניין? השאירו פרטים ונחזור אליכם</h1>
<form>
<ul>
    <li>
        <label for="name"> שם: </label>
        <input type="text" size="40" id="name" />
    </li>
    <li>
        <label for="telephone"> טלפון: </label>
        <input type="text" size="40" id="name" />
    </li>
    <li>
        <label for="email"> כתובת אימייל: </label>
        <input type="email" size="40" id="email" />
    </li>  

    </li>     
        <li>
        <label for="message">תוכן ההודעה:</label>
        <textarea cols="50" rows="5" id="message"></textarea>
    </li>
</ul>
<p>
    <button type="reset" class="right"> אפס </button>
    <button type="submit" class="action"> שלח </button>

</p>
</form>
</article>

</div>
</div>
</body>
</html>

<?php
}
?>
正如您所见,最后会出现

HTML。所有按钮都可以工作,并通过电子邮件发送@检查工作,但是表单子断言只会打开一个空页面。

4 个答案:

答案 0 :(得分:0)

您的form没有methodaction我认为这在某些浏览器中无效。

更改

<form>

要:

<form method="post" action="[the url of the page]">

答案 1 :(得分:0)

表单的默认方法是GET,因此如果您不在表单标记中指定它,则需要$_GET而不是$_POST

您还需要一个动作,因此您的标记应如下所示:

<form action="" method="post">

然后,您还需要向所有表单字段添加name属性,因为这是发送到服务器的内容,而不是id

答案 2 :(得分:0)

这是两个关键问题。 HTML元素的id必须是唯一的,因此这里有两个具有相同id的元素:

<li>
    <label for="name"> שם: </label>
    <input type="text" size="40" id="name" />
</li>
<li>
    <label for="telephone"> טלפון: </label>
    <input type="text" size="40" id="name" />
</li>

这需要更改,并且每个元素都需要name属性,否则它将不会正确显示在POST数组中:

<li>
    <label for="name"> שם: </label>
    <input type="text" size="40" id="name" name="name" />
</li>
<li>
    <label for="telephone"> טלפון: </label>
    <input type="text" size="40" id="telephone" name="telephone" />
</li>

等。 - 所有元素必须具有名称和唯一ID。特别是,您的电子邮件字段需要name="email",以便在脚本开头进行if(isset($_POST['email']))检查。此外,表单需要POST方法,以便将这些元素传递到POST数组中。如果您只是省略了操作,表单将提交到同一页面:

<form method="POST">

答案 3 :(得分:0)

您的<form>应具有method="POST"属性 像这样:

<form method="POST">

您有错误:

<input type="email" size="40" id="email" />

应该是

<input type="text" size="40" id="email" name="email" />

请注意,您的代码中包含$_POST['first_name'],因此您必须拥有<input type="text" name="first_name" />,必须拥有name属性。

为了获取php中输入字段的值,您必须使用name属性