如何通过PHP发送HTML表单

如何通过PHP发送HTML表单,php,html,forms,contact,Php,Html,Forms,Contact,我正在通过为继父的旅馆建立一个网站来学习。它有一个带有日历的联系人表单,用于选择入住和退房日期。我使用了我在网上找到的很多资源,并试图让它们协同工作,但我无法使表单可发送。当我用这段代码单击submit按钮时,它只显示PHP页面的内容。我希望有人能引导我或指出我做错了什么 <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> <head> <link rel="stylesheet"

我正在通过为继父的旅馆建立一个网站来学习。它有一个带有日历的联系人表单,用于选择入住和退房日期。我使用了我在网上找到的很多资源,并试图让它们协同工作,但我无法使表单可发送。当我用这段代码单击submit按钮时,它只显示PHP页面的内容。我希望有人能引导我或指出我做错了什么

<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<head>
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/pure-min.css">
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/grids-responsive-old-ie-min.css">
<link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.6.0/grids-responsive-min.css">
<link rel="stylesheet" type="text/css" href="css/jquery-ui-1.7.2.custom.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js">         </script>
<script type="text/javascript">
jQuery(function($){
$.datepicker.regional['es'] = {
    closeText: 'Cerrar',
    prevText: '&#x3c;Ant',
    nextText: 'Sig&#x3e;',
    currentText: 'Hoy',
    monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
    'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
    monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
    'Jul','Ago','Sep','Oct','Nov','Dic'],
    dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
    dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
    dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
    weekHeader: 'Sm',
    dateFormat: 'dd/mm/yy',
    firstDay: 1,
    isRTL: false,
    showMonthAfterYear: false,
    yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['es']);
});    

$(document).ready(function() {
var date = new Date();
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();    
$("#llegada").datepicker({minDate: new Date(y, m, d), dateFormat: 'dd/mm/yy'});
$("#salida").datepicker({minDate: new Date(y, m, d), dateFormat: 'dd/mm/yy'});
 });
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
#text {
position: absolute;
left: 282px;
top: 210px;
width: 616px;
height: 40px;
z-index: 1;
text-align: justify;
color: #87796D;
}
</style>
<script language="JavaScript" src="js/gen_validatorv31.js" type="text/javascript"></script>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<div id="text">
<form action="contact.php" method="post" enctype="text/plain" class="pure-form pure-form-stacked" >
<fieldset>
    <legend>Formulario de reserva</legend>

    <div class="pure-g">

        <div class="pure-u-1 pure-u-md-1-3">
            <label for="name">Nombre</label>
            <input id="name" class="pure-u-23-24" type="text">
        </div>

        <div class="pure-u-1 pure-u-md-1-3">
            <label for="email">E-Mail</label>
            <input id="email" class="pure-u-23-24" type="email" required>
        </div>

        <div class="pure-u-1 pure-u-md-1-3">
            <label for="phone">Teléfono</label>
            <input id="phone" class="pure-u-23-24" type="text">
        </div>

        <div class="pure-u-1 pure-u-md-1-3">
<label for="llegada">Check-in:</label>
<input class="pure-u-23-24" type="text" name="datepicker" id="llegada"/>
         </div>

        <div class="pure-u-1 pure-u-md-1-3">
<label for"salida"> Check-out:</label>
<input class="pure-u-23-24" type="text" name="datepicker" id="salida"/>
        </div>
             <div class="pure-u-1 pure-u-md-1-3">
            <textarea for="message" class="pure-input-23-24" placeholder="Mensaje opcional"></textarea>
            </div>       
</fieldset>
<button style="float:right;" type="submit" class="pure-button pure-button-primary">Enviar</button>
</form>
</div>
</body>
</html>

jQuery(函数($){
$.datepicker.regional['es']={
closeText:“Cerrar”,
前文:“<;Ant”,
下一个文本:“Sig>;”,
当前文本:“Hoy”,
monthNames:['Enero','Febrero','Marzo','Abril','Mayo','Junio',',
“朱利奥”、“阿戈斯托”、“七重奏”、“八重奏”、“诺维姆”、“迪西姆”],
Monthnameshort:[Ene'、'Feb'、'Mar'、'Abr'、'May'、'Jun'、月,
‘七月’、‘前’、‘九月’、‘十月’、‘十一月’、‘Dic’,
日名:[“多明戈”、“卢内斯”、“马蒂斯”、“米埃库特;科勒”、“朱埃夫斯”、“维尔内斯”、“S埃库特;巴多”],
dayNamesShort:['Dom'、'Lun'、'Mar'、'Mié;'、'Juv'、'Vie'、'Sá;b'],
dayNamesMin:['Do','Lu','Ma','Mi','Ju','Vi','Sá;'],
周刊头条:“Sm”,
日期格式:“日/月/年”,
第一天:1,
isRTL:错,
showmont第三年:假,
年份后缀:''};
$.datepicker.setDefaults($.datepicker.regional['es']);
});    
$(文档).ready(函数(){
变量日期=新日期();
var m=date.getMonth(),d=date.getDate(),y=date.getFullYear();
$(“#llegada”).datepicker({minDate:newdate(y,m,d),dateFormat:'dd/mm/yy'});
$(“#salida”).datepicker({minDate:new Date(y,m,d),dateFormat:'dd/mm/yy'});
});
#正文{
位置:绝对位置;
左:282px;
顶部:210px;
宽度:616px;
高度:40px;
z指数:1;
文本对齐:对齐;
颜色:#87796D;
}
保留处方
名义
电子邮件
特莱福诺酒店
登记入住:
退房:
羡慕
对于我使用的contact.php页面

<?php
if(!isset($_POST['submit']))
{
echo "error; you need to submit the form!";
}
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$phone = $_POST['phone'];
$llegada = $_POST['llegada'];
$salida = $_POST['salida'];
$message = $_POST['message'];

if(empty($name)||empty($visitor_email)) 
{echo "Por favor, completa los datos requeridos";
exit;}

if(IsInjected($visitor_email))
{echo "Bad email value!";
exit;}

$email_from = 'hostalsierragorda@gmail.com';//
$email_subject = "Mensaje del formulario de reserva";
$email_body = "Mensaje recibido de $name.\n".
          "\n $message".

$to = "hostalsierragorda@gmail.com";//<== update the email address
$headers = "From: $email_from \r\n";
$headers .= "Responder a: $visitor_email \r\n";

mail($to,$email_subject,$email_body,$headers);

header('Location: enviado.html');

function IsInjected($str)
{
$injections = array('(\n+)',
          '(\r+)',
          '(\t+)',
          '(%0A+)',
          '(%0D+)',
          '(%08+)',
          '(%09+)'
          );
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str))
{return true;}
else
{return false;}
}

?>

首先,文档是HTML,其次,输入和按钮需要名称标签,如下所示:

<input id="name" name="name" class="pure-u-23-24" type="text">
                 ^^^^^^^^^^^

^^^^^^^^^^^
在你的
contact.php
上,你要求
$\u POST['submit']
,我以为是关于按钮的,按钮也没有名字标签

为了帮助您运行任何PHP文档,您需要一个服务器,请尝试XAMPP


只要设置这些错误,表单就可以了。

我不想听起来很邪恶,但你应该先从学习开始。愚蠢的问题。。。但是既然你看到了PHP代码。。服务器上是否安装了PHP?PHP文件是否有.PHP扩展名?