php - 如何使用 fopen() 和来自表单 $value 的变量创建基于表单的文件?

标签 php html css

我已经使用这个表单脚本多年了,但是有一段时间没有检查它,似乎它不再工作了。

粘贴简化版本,不确定如何在 PHP5 中继续使用它,因为在过去它工作正常。

在表单中,用户在一个字段中输入他/她的名字,然后在提交时,脚本应该创建一个名为“save his/her name.html”的文件,但是在提交时,服务器收到一个文件“save .html "每个 $value 都未填充。

我的服务器目前安装了 PHP 5.4.45,尝试过过去的 PHP5 版本以及 PHP7,但没有成功。

还尝试了几个 $_POST 选项,但是没有成功,所以粘贴到最后一个已知的工作版本上。

形成 PHP 文件

<html>

<head>
<meta http-equiv='Content-Type' CONTENT='text/html; charset=utf-8'>
<meta name='GENERATOR'>
<meta name='ProgId'>
<title>Save form</title>
<SCRIPT>
function makevisible(cur,which){
if (which==0)
cur.filters.alpha.opacity=100
else
cur.filters.alpha.opacity=50
}
</SCRIPT>
<style type='text/css' rel='StyleSheet'>
A:link {
       COLOR: White; TEXT-DECORATION: none
}
A:visited {
       COLOR: White; TEXT-DECORATION: none
}
A:active {
       COLOR: White; TEXT-DECORATION: none
}
A:hover {
       COLOR: White; TEXT-DECORATION: underline
}
P {
       FONT-SIZE: 10px; COLOR: White; FONT-FAMILY: Verdana; TEXT-DECORATION: none
}
B {
       FONT-SIZE: 10px; COLOR: White; FONT-FAMILY: Verdana; TEXT-DECORATION: none
}
TD {
       FONT-SIZE: 10px; COLOR: White; FONT-FAMILY: Verdana; TEXT-DECORATION: none
}
BODY {
       FONT-FAMILY: Verdana; FONT-SIZE: 10px; MARGIN: 0px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
--></style>

</head>
<body bgcolor='#00500B'>

<p>Please fill the form</p>

<form action="save.php" method="post" enctype="multipart/form-data">
  <table width='100%'>
    <tbody>
      <tr>
        <td width='478' height='25'>Player:<br>
          <p>&nbsp;</p>
        </td>
        <td vAlign='top' width='278' height='24'><input name='player' id='player' size='20'></td>
        </tr>
        <tr>
        <td width='478' height='25'>Character:<br>
          <p>&nbsp;</p>
        </td>
        <td vAlign='top' width='278' height='24'><input type="text" name="charactername" id="charactername" size='20'></td>
        </tr>
      <tr>
        <td width='478' height='25'>Type:
          <p>&nbsp;</p>
        </td>
        <td vAlign='top' width='278' height='25'><select size='1' name='type' id='type'>
            <option value='type1' selected>Type one</option>
            <option value='type2'>Type two</option>
          </select></td>
      </tr>
      <tr>
        <td width='692' colSpan='2' height='20'>
          <p align='center'><br>
          <input type='submit' value='Submit the form'><br>
          </p>
        </td>
      </tr>
      </FORM>
    </tbody>
  </table>

</html>

应该创建文件的 SAVE.PHP 脚本:

<html>
<head>
<meta http-equiv="Content-Type" CONTENT="text/html; charset=utf-8">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Page Title</title>
<style type="text/css" rel="StyleSheet">
A:link {
       COLOR: #FFFFFF; TEXT-DECORATION: none
}
A:visited {
       COLOR: #FFFFFF; TEXT-DECORATION: none
}
A:active {
       COLOR: #FFFFFF; TEXT-DECORATION: none
}
A:hover {
       COLOR: #FFFFFF; TEXT-DECORATION: underline
}
P {
       FONT-SIZE: 10px; COLOR: #FFFFFF; FONT-FAMILY: Verdana; TEXT-DECORATION: none
}
B {
       FONT-SIZE: 10px; COLOR: #FFFFFF; FONT-FAMILY: Verdana; TEXT-DECORATION: none
}
TD {
       FONT-SIZE: 10px; COLOR: #FFFFFF; FONT-FAMILY: Verdana; TEXT-DECORATION: none
}
BODY {
       FONT-FAMILY: Verdana; FONT-SIZE: 10px; MARGIN: 0px; PADDING-BOTTOM: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; PADDING-TOP: 0px
}
--></style>

</head>
<?
$file = fopen("save $charactername.html","w");
$a="
<html>
<head>
<title>Page title</title>
<meta http-equiv='Content-Type' CONTENT='text/html; charset=utf-8'>

<style type='text/css'> 
<!-- 

div#menu { padding-left: 4px; color: #FFFFFF; float: center; font-family: Verdana; margin-right: 0px; font-size: 10px; } 

div#menu a { padding-left: 4px; text-decoration: none; font-family: Verdana; color: #FFFFFF; padding: 1px; margin-top: 0px; width: 100px; } 

div#menu a:hover { color: #C0C0C0; font-family: Verdana; } 

div#text { padding-left: 3px; padding-right: 3px; padding-top: 3px; float: center; font-family: Verdana; text-size: 9px; font-size: 10px; text-decoration: none; color: #FFFFFF; }

div#text a { color: #FFFFFF; }

div#text a:hover { color: #C0C0C0; }

div#title { font-weight: bold; padding-left: 10px; float: center; margin-right: 4px; font-family: Verdana; text-size: 9px; font-size: 10px; text-decoration: none; color: #FFFFFF; }

div#title { font-weight: bold; padding-left: 65px; float: center; margin-right: 4px; font-family: Verdana; text-size: 9px; font-size: 10px; text-decoration: none; color: #FFFFFF; }

--> 
</style>
</HEAD>
<html>
<body bottommargin='0' leftmargin='0' topmargin='0' style='cursor:crosshair; background-color:#000B26; color:#999500' bgcolor='#000B26'>
<center>
    <table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' width='300' height='500' id='text' background='$type.jpg'>
        <tr>
            <td rowspan='6' width='25'>&nbsp;</td>
            <td width='250' height='24' colspan='2' valign='top'>
                    <center>
                        <div id='text'>
                            <b>Player</b>: $player &nbsp;&nbsp; 
                            <b>Character</b>: $charactername
                        </div>
                    </center>
            </td>
            <td rowspan='6' width='25'>&nbsp;</td>
        </tr>
    </table>
</center>

</body>
</html>
";
fputs($file,"$a\n");
fclose($file);
print('Save has been sent to server. Thank you');
?>
</html>

您能否建议如何更改/修复代码,以便: 1.创建一个文件名正确的文件 2. 根据用户的输入将所有变量 $ 填充到创建的文件中。

最佳答案

您要访问的任何变量都需要通过 $_POST 访问.

在脚本的顶部,您可以像这样声明每个变量:

$charactername = $_POST["$charactername"];

或者在内容本身中使用这样的大括号:

{$_POST["charactername"]}

还有: 在你的<form标签,去掉 enctype="multipart/form-data" .在通过 file 上传二进制文件时使用输入。

关于php - 如何使用 fopen() 和来自表单 $value 的变量创建基于表单的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55872381/

相关文章:

javascript - 使用jQuery在ajax请求后交换图像src

php - 如何在一组动态选择中构建mysql的bind_param()?

css - 移动网站链接变为静态

javascript - 未捕获的 TypeError : firebase. 存储不是函数

html - 有没有办法创建纯 CSS2 跨浏览器三 Angular 形?

html - 如何设置 html "select"元素的选项样式?

html - 如何正确设置带有字母的复选框的样式?

php - 比较字段并获取百分比

php - 在 Web 应用程序之间共享模型数据

css - 用自定义的覆盖 primefaces css