Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “提交”按钮创建输入文本的HTML文件_Php_Html_Css_Forms_Styles - Fatal编程技术网

Php “提交”按钮创建输入文本的HTML文件

Php “提交”按钮创建输入文本的HTML文件,php,html,css,forms,styles,Php,Html,Css,Forms,Styles,在我工作的地方,我们的厨师正试图找出一种简单又别致的方式,把菜单摆出来让员工们看。我已经建立了一个表单,这样他可以在周一到周五进入菜单,但是我需要一些帮助来创建菜单 我希望厨师能够去这个网站已经建立的形式,让他输入菜单的所有信息。一旦他输入了信息,他点击提交,它就会创建一个HTML文件,这个文件已经有了背景图像和字体,但我需要他输入的文本转换到那里 我从目前的一张表格中获取了这些信息,该表格在输入数据时会给我们的人力资源部门发送电子邮件。我知道这与php有关,但我甚至不确定这是否可行 这是我的表

在我工作的地方,我们的厨师正试图找出一种简单又别致的方式,把菜单摆出来让员工们看。我已经建立了一个表单,这样他可以在周一到周五进入菜单,但是我需要一些帮助来创建菜单

我希望厨师能够去这个网站已经建立的形式,让他输入菜单的所有信息。一旦他输入了信息,他点击提交,它就会创建一个HTML文件,这个文件已经有了背景图像和字体,但我需要他输入的文本转换到那里

我从目前的一张表格中获取了这些信息,该表格在输入数据时会给我们的人力资源部门发送电子邮件。我知道这与php有关,但我甚至不确定这是否可行

这是我的表单,我想我只需要php信息

<head>
<title>Cafe Menu Creator</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<link rel="stylesheet" type="text/css" href="cafe.css" />
</head>

<body>
<br />
<br />
<center><h1>Cafe Menu Creator</h1></center>
<div id="page-wrap">
    <div id="contact-area">
        <form method="post" action="cafe.php">
            <label for="Name">Monday:</label>
            <textarea name="Message_Monday" rows="20" cols="20" id="Message_Monday"></textarea>

            <label for="Name">Tuesday:</label>              
            <textarea name="Message_Tuesday" rows="20" cols="20" id="Message_Tuesday"></textarea>

            <label for="Name">Wednesday:</label>            
            <textarea name="Message_Wednesday" rows="20" cols="20" id="Message_Wednesday"></textarea>

            <label for="Name">Thursday:</label>
            <textarea name="Message_Thursday" rows="20" cols="20" id="Message_Thursday"></textarea>

            <label for="Name">Friday:</label>
            <textarea name="Message_Friday" rows="20" cols="20" id="Message_Friday"></textarea>

            <input type="submit" name="submit" value="Submit" class="submit-button" />
        </form>

        <div style="clear: both;"></div>



    </div>

</div>

</body>

</html>
PHP:


首先,我会将您的输入名称更改为一些独特的名称,如message_friday或message[],而不仅仅是message

这个php代码应该可以工作,您仍然需要对路径和文件名进行一些修改,并插入您自己的html

<?php
    $messageMonday = $_POST['message_monday'];
    $messageFriday = $_POST['message_friday'];

    $html = "";

    ob_start();
?>
    <div>Your html stuff</div>
    <div><?php echo $messageMonday; ?></div>
    . . .
<?php
    $html = ob_get_contents();
    ob_end_clean();

    $path = "/path/to/file/";
    $filename = "file_".rand(0,9999).".html";

    file_put_contents($path.$filename, $html);
?>

如果您愿意,可以将其包装成一个函数,返回新的Url:

首先,我会将您的输入名称更改为message\u friday或message[]之类的唯一名称,而不仅仅是message

这个php代码应该可以工作,您仍然需要对路径和文件名进行一些修改,并插入您自己的html

<?php
    $messageMonday = $_POST['message_monday'];
    $messageFriday = $_POST['message_friday'];

    $html = "";

    ob_start();
?>
    <div>Your html stuff</div>
    <div><?php echo $messageMonday; ?></div>
    . . .
<?php
    $html = ob_get_contents();
    ob_end_clean();

    $path = "/path/to/file/";
    $filename = "file_".rand(0,9999).".html";

    file_put_contents($path.$filename, $html);
?>

如果需要,您可以将其封装到一个函数中,该函数返回新的Url:

我不会在调试过程中重新键入我在注释中输入的内容

下面是最终代码应该读作的内容,您的HTML标记中有一些错误,我已修复了这些错误

HTML

参考:

但是,如果您确实想添加HTML标记来动态生成粗体文本,只需输入今天的菜单,然后输入任何其他有效的HTML即可

参考:

即使是动态的HTML表:

<table border="1" width="100%">
  <tr>
    <td width="100%" colspan="2" bgcolor="#99CCFF">
      <p align="center"><b>Today's menu</b></td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Fish and chips</td>
    <td width="50%" bgcolor="#FFFFFF">$3.95</td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Hamburger</td>
    <td width="50%" bgcolor="#FFFFFF">$3.25</td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Cheeseburger</td>
    <td width="50%" bgcolor="#FFFFFF">$3.50</td>
  </tr>
</table>

通过调试,我不会在注释中重新键入我输入的内容

下面是最终代码应该读作的内容,您的HTML标记中有一些错误,我已修复了这些错误

HTML

参考:

但是,如果您确实想添加HTML标记来动态生成粗体文本,只需输入今天的菜单,然后输入任何其他有效的HTML即可

参考:

即使是动态的HTML表:

<table border="1" width="100%">
  <tr>
    <td width="100%" colspan="2" bgcolor="#99CCFF">
      <p align="center"><b>Today's menu</b></td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Fish and chips</td>
    <td width="50%" bgcolor="#FFFFFF">$3.95</td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Hamburger</td>
    <td width="50%" bgcolor="#FFFFFF">$3.25</td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Cheeseburger</td>
    <td width="50%" bgcolor="#FFFFFF">$3.50</td>
  </tr>
</table>

我似乎无法让它工作。我现在已经用我的php文件内容更新了原始帖子。对不起,我对php一无所知。谢谢你迄今为止的帮助!文件需要以.php扩展名结尾,并在web服务器或本地主机上运行。。。你是如何实现的?现在它在我的PC上本地运行,直到我让它工作,然后我会将它移动并更改到它将保留的服务器的文件路径。你需要有一个php服务器运行,并让表单的方法指向php脚本。我似乎无法让它工作。我现在已经用我的php文件内容更新了原始帖子。对不起,我对php一无所知。谢谢你迄今为止的帮助!文件需要以.php扩展名结尾,并在web服务器或本地主机上运行。。。你是如何实现的?现在它在我的电脑上本地运行,直到我让它正常工作,然后我会将它移动并更改它所在服务器的文件路径。你需要运行一个php服务器,并让表单的方法指向php脚本。textarea需要具有唯一的名称属性。您已编辑,但这里有另一个$path=\\server\c$\cafe;那么,我们是否正在编辑我在这里的评论?loloh和$filename=menu.html;这仍然是错误的。应该读为$filename=menu.html;如果要创建menu.html文件。并且您的路径没有尾随斜杠。将读取为path/folderFILE.html。而不是path/folder/FILE.html。可能是因为您没有检查它们,并且可能是文件夹/路径和/或文件的权限问题。错误报告另外,您的文本区域必须具有不同的名称属性,并且POST数组/变量区分大小写。您对它们使用相同的名称,但ID不同,因此如果您不使用JS,代码将失败。根据驱动器,\\server应读为c:\\folder\\etc。您正在尝试访问虚拟机。用我的更改更新了原始帖子。我已将其移动到我的web服务器,因此我将保留所有文件路径,因为它们现在是。textarea需要具有唯一的名称属性。您已编辑,但在此处有另一个$path=\\server\c$\cafe;那么,我们是否正在编辑我在这里的评论?loloh和$filename=menu.html;这仍然是错误的。应该读为$filename=menu.html;如果要创建menu.html文件。并且您的路径没有尾随斜杠。将读取为path/folderFILE.html。而不是path/folder/FILE.html。可能是因为您没有检查它们,并且可能是文件夹/路径和/或文件的权限问题。错误报告另外,您的文本区域必须具有不同的名称属性,并且POST数组/变量是大小写
-敏感。您对它们使用相同的名称,但ID不同,因此如果您不使用JS,代码将失败。根据驱动器,\\server应读为c:\\folder\\etc。您正在尝试访问虚拟机。用我的更改更新了原始帖子。我已经将其移动到我的web服务器上,所以我将保留所有文件路径。
$MessageMonday = strip_tags($_POST['Message_Monday']);
$MessageTuesday = strip_tags($_POST['Message_Tuesday']);
$MessageWednesday= strip_tags($_POST['Message_Wednesday']);
$MessageThursday = strip_tags($_POST['Message_Thursday']);
$MessageFriday = strip_tags($_POST['Message_Friday']);
<table border="1" width="100%">
  <tr>
    <td width="100%" colspan="2" bgcolor="#99CCFF">
      <p align="center"><b>Today's menu</b></td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Fish and chips</td>
    <td width="50%" bgcolor="#FFFFFF">$3.95</td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Hamburger</td>
    <td width="50%" bgcolor="#FFFFFF">$3.25</td>
  </tr>
  <tr>
    <td width="50%" bgcolor="#FFFFFF">Cheeseburger</td>
    <td width="50%" bgcolor="#FFFFFF">$3.50</td>
  </tr>
</table>