PHP записывает содержимое в файл с данными, предоставленными пользователем [дубликаты]

0

Я пытаюсь записать содержимое в файл с данными пользователя. У меня есть текст, который говорит "мое имя", и после этого текста я хочу написать представленное пользователем значение. Как мне это сделать? Я пытаюсь сделать это с помощью кода, приведенного ниже.

<?php
  $fname=$_POST['fname'];
  $lname=$_POST['lname'];
  $my_file='file.txt';
  $handle= fopen($my_file,'w+');
  $data= 'My fname is $name and My lname is $lname';
  $fwrite($handle,$data);
?>

Когда я запускаю этот код, $ name не принимает входное значение и записывает как $name like

"My name is $name"

Как это исправить?

  • 0
    Вы должны поместить это в двойные кавычки! например, $data= "My name is $name"; (Просто подожди вампиров)
Теги:
file-handling

6 ответов

0
Лучший ответ

Вам нужно получить доступ к переменной $name при записи имени в файл. То, как вы делаете это сейчас, не добавляет значения переменной в строку. Для этого вы можете изменить:

$data= 'My fname is $name and My lname is $lname';

в

$data= "My fname is $name and My lname is $lname";

Двойные кавычки заменяют значение переменных в строковом литерале, когда оно вычисляется до того, как оно используется в выражении. Для получения дополнительной информации обратитесь к этому ответу.

или

$data= 'My fname is '.$name.' and My lname is '.$lname;

Здесь строковый литерал конкатенируется со значением переменных с помощью . оператор.

  • 0
    Спасибо @bluefog .. это работает для меня ..
0

В PHP переменная возвращает значение только в двойных кавычках, одинарная цитата рассматривает ее как строку.

0
<?php
     $fname=$_POST['fname']; 
     $lname=$_POST['lname'];
     $my_file='file.txt';
     $handle= fopen($my_file,'w+');
     $data= "My fname is $name and My lname is $lname"; // Change the quote from single to double. for php to parse and replace the variable with it value but single quote is a literal
      $fwrite($handle,$data);
?>
0

Вы должны согласовать строку с переменной.

<?php
  $name=$_POST['name'];
  $my_file='file.txt';
  $handle= fopen($my_file,'w+');
  $data= 'My name is '.$name;
  $fwrite($handle,$data);
  $fclose($handle);
?>
0

Попробуй это:

<?php
$name=$_POST['name'];
$my_file='file.txt';
$handle= fopen($my_file,'w+');
$data= 'My name is ' . $name;
$fwrite($handle, $data);
?>
0

Чтобы получить переменную PHP для вывода, вам нужно использовать двойные кавычки.

$data= "My name is $name";

или

$data = 'My name is '.$name;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню