【问题标题】:How to upload input to a text file in php如何在php中将输入上传到文本文件
【发布时间】:2015-10-30 17:26:15
【问题描述】:

我想使用php将文本框中写入的内容上传到一个文本文件中。但也应该只在字符串包含特定模式时才写入它们。

这是我的 php 代码

<?php

$data = $_POST["text"];
public function copy(){
    if (strpos($data, '123') !== false){
    $myfile = "uploads/mydata.txt";
    $fh = fopen($myfile, 'w') or die("can't open file");
    fwrite($fh, $data);
    fclose($fh);
    }
}
?>

它在第 4 行显示出乎意料的公开。 我的表格是:

    <?php require_once('tally.php') ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>
    </title>
    </head>
    <body>
    <form action="index.php" method="post">
        Input the first record
        <input type="text" name="text">
        <input type="submit" name="submit" action="submit">
        Submit
        </submit>
    </form>
    </body>
    </html>

感谢您的帮助

【问题讨论】:

    标签: php html forms upload submit


    【解决方案1】:

    你为什么使用 fopen,只使用 file_put_contents。

    输入名称是文本,在 php 中您试图接收 $_POST['data']。 更改数据输入的名称或更改 php 代码并获取 $_POST['text']。

    您的提交按钮也不符合 xhtml 或 html5 标准。将其更改为不需要结束标记或其他文本。

    我看不到你在哪里调用复制函数。

    代码应该是这样的。

    <?php
    
    $data = $_POST["data"];
    if(!empty($data)) {
        copy2($data);
    }
    function copy2($data){
        if (strpos($data, '123') !== false){
        $myfile = "uploads/mydata.txt";
        $fh = fopen($myfile, 'w') or die("can't open file");
        fwrite($fh, $data);
        fclose($fh);
        }
    }
    ?>
    

    HTML 是这样的:

    <?php require_once('tally.php') ?>
        <!DOCTYPE html>
        <html>
        <head>
        <title>
        </title>
        </head>
        <body>
        <form action="index.php" method="post">
            Input the first record
            <input type="text" name="text">
            <input type="submit" value="submit">
        </form>
        </body>
        </html>
    

    【讨论】:

    • 哦!我现在在做什么我使用了 file_put_contents 并将其更改为 $_POST['text'] 但它仍然给出相同的错误@KoKo这里是新代码: 仍然报同样的错误
    • 你能显示错误吗?为什么要检查 strpos($data, '123')?
    • 好吧,我认为 php 使用预定义的复制功能,所以我将其更改为 copy2。错误已被删除,但它仍然没有写入文件@KoKo。 N是的,我需要检查该字符串是否出现,以便仅在输入包含'123'时才上传
    • 谢谢你!有效。问题是我从未调用过该函数。无论如何,再次感谢。
    【解决方案2】:

    如果此函数不在类中,请删除单词 public。

    public function copy(){
    

    变成

    function copy(){
    

    【讨论】:

    • 我在@Christian 之前尝试过,它说不能在第 11 行重新声明 copy()
    • 然后你在其他地方有另一个同名的函数。将函数重命名为 copy_b 看看是否有效
    【解决方案3】:

    没有与数据关联的标签。请补充:

     <input type="text" name="data">
    

    【讨论】:

    • 您好。您的许多答案都将介绍性段落格式化为代码,这正在创建编辑工作。请仅将代码块格式应用于需要它的内容 - 谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 2020-09-06
    • 2021-05-14
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多