PHP(json_encode,爆破)将数据存储在txt文件中

时间:2019-02-27 00:07:27

标签: php

我正在尝试将数据存储在.txt文件中。 数据已经出现在我的HTML页面上,但是我不知道如何将它们发布到txt文件中或将它们存储在会话中。

在主页上:

<?php
echo implode('<br/>', $res->email);
echo json_encode($res->password);
?>'

我想做以下事情:

<?php
    $login = "
    EMAIL   : $_POST['$res->email'];
    PASSWORD: $_POST['$res->password']; ";

    $path = "login.txt";
    $fp = fopen($path, "a");
    fwrite($fp,$login);
    fclose($fp);
    ?>

因此,此$ _POST ['$ res-> email'];不适合我,我进入login.txt:

EMAIL   : json_encode(Array)
PASSWORD: implode('<br/>', Array)

2 个答案:

答案 0 :(得分:1)

  

string/interpolation context中,函数调用和$ _POST ['$ res-> email']都不起作用。

不熟悉时,您应该逐行组装文本数据:

$login =  "    EMAIL   : ";                  # string literal
$login .= implode('<br/>', $res->email);     # append function/expression result
$login .= CRLF;                              # linebreak
$login .= "    PASSWORD: ";                  # string literal
$login .= json_encode($res->password);       # append function/expression result
$login .= CRLF;                              # linebreak

代替老式的fopen / fwrite,只需将file_put_contentsFILE_APPEND标志一起使用。

答案 1 :(得分:1)

当您使用发布数据时,您会在php文件中接收它。您不从php文件发送帖子数据。考虑到这一点,您可以通过以下方式使用php处理此数据:

如果您收到的是邮寄数据:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="ReimbursementApp.Pages.MenuPage"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             xmlns:telerik="clr-namespace:Telerik.XamarinForms.DataControls;assembly=Telerik.XamarinForms.DataControls"
             Title="Menu">
    <!--<ContentPage.ToolbarItems>
        <ToolbarItem Activated="OnToolbarButtonClick" Order="Primary" Priority="0" Icon="hamburgerButtonIcon"/>
    </ContentPage.ToolbarItems>
    <Grid>
        <telerikPrimitives:RadSideDrawer x:Name="drawer" DrawerLength="250">
        </telerikPrimitives:RadSideDrawer>
    </Grid>-->

    <StackLayout VerticalOptions="FillAndExpand">
        <ListView x:Name="ListViewMenu"
                    HasUnevenRows="True">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid Padding="10">
                            <Label Text="{Binding Title}" FontSize="20"/>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage>

这将显示已发布数据中存储在字段变量上的消息。但是请检查该字段是否始终是字符串(即使内容可能不是这样) 如果要动态访问字段,请记住该字段应为字符串,例如:

echo $_POST['field'];

这不会返回已发布的电子邮件,但会从Post中的一个名为“ example@gmail.com”的变量中返回内容。与:

相同
$email = "example@gmail.com";
echo $_POST[$email] 

但是现在做一个正确的例子。如果您的网页中包含此html

echo $_POST["example@gmail.com"];

您将能够从名为“电子邮件”的输入字段中恢复数据

<form action="/yourphp.php" method="post" target="_blank">
  <input type="text" name="email">
  <input type="submit" value="Submit">
</form>

,这将在输入内容中返回电子邮件。

清除此内容后,可以用不同的方式处理数据以将其发送到文件,但是通常您必须实例化处理程序,打开文件,写入内容,保存和关闭文件,具体取决于您的处理程序。