表单输入字段不显示以前的数据正确

时间:2018-03-23 05:56:34

标签: php

使用以下代码,我需要输入包含这些" & ?个字符的跟踪像素代码。 使用下面的代码,它允许输入文本框中的像素保存它,并且文件中的结果行是正确的。 然而,当它重新加载要在表单字段中的值显示的像素时,它已被截断。

<?php
if (isset($_POST["pixel"])) {
  $fp = fopen("config.php", "w") or die("Unable to open file config file");
  fwrite($fp, $_POST["pixel"]."\n");
  fclose($fp);
}
$fp = fopen("configz.php", "r") or die("Unable to open config file");
$pixel = fgets($fp);
fclose($fp);
?>
<form method="post">
Pixel:<input type="text" name="pixel" value="<?=$pixel?>" />
<input type="submit" name="Save" value="Save">
</form>

pixel entered
pixel displayed

3 个答案:

答案 0 :(得分:2)

您需要更改以下代码

<input type="text" name="pixel" value="<?=$pixel?>" />

<input type="text" name="pixel" value='<?=$pixel?>' />

在你的$ pixel字符串中添加单个''值。“它将从第一次出现的“$ pixel。

中断掉字符串

修改

您可以用双引号替换所有单引号。

JS

var b = a.replace(/'/g, '"');

其中a将是你的字符串。

PHP

$pixel = str_replace("'", '"', $pixel);

更新

用表格输入中的单引号替换所有双引号。

var newVal = [];

$('#form_id *').filter(':input').each(function(){
  var k = $(this).attr('name');
  var v = $(this).val();
  newVal[key] = v.replace(/'/g, '"');
});

您可以遍历表单的所有值并将其名称作为键,获取所有值,对所有值执行替换并在空数组中添加key=>value对。在newVal中,您可以使用所需的输出。

答案 1 :(得分:0)

<?php
   if (isset($_POST["pixel"])) {
   $fp = fopen("config.php", "w") or die("Unable to open file config 
   file");
   fwrite($fp, $_POST["pixel"]."\n");
   fclose($fp);
}
$fp = fopen("configz.php", "r") or die("Unable to open config file");
$pixel = fgets($fp);
fclose($fp);
?>
<form method="post">

    Pixel:<input type="text" name="pixel" value='<?=$pixel?>' /> 

  <input type="submit" name="Save" value="Save">
</form>

添加单引号而非双引号。

答案 2 :(得分:0)

我已经解决了我的问题,因为它保留了最初的所有代码,只是更改了fgets行。 这允许字段中包含单引号或双引号,并正确显示数据。 不让我发布它。它在这里改变它。 enter image description here