В функции fwrite() в php я хочу написать символ «$»?

#php #variables #fwrite

#php #переменные #fwrite

Вопрос:

 <?php

     if(isset($_POST['import'])){
         
           $index = fopen("index.php", "w");

           $indextxt="
<?php 
           

$d='".$domain."'; $u='".$user."';
           
           
           ?>";
          if(fwrite($index, $indextxt)){
             echo"<script> alert('Downloaded!');</script>";
          }        
     } 
?>

  

В приведенном выше коде при импорте файла переменная $ d amp; $ u не отображается (ничего не отображается) в index.php Я хочу, чтобы $ u и $ d отображались как есть, но php рассматривает их как переменную, и поскольку ни одной из переменных не присвоено никакого значения, ничего неотображается, но я хочу отобразить $ d и $ u в виде простого текста, а значение $domain и $user извлекается из базы данных.

 <?php

     if(isset($_POST['import'])){
         
           $index = fopen("index.php", "w");

           $indextxt="
<?php 
           


$user='email@email.com';

$sql='SELECT * from content WHERE email='.$user.'';

$run= mysqli_query($con, $sql);

if (mysqli_num_rows($run) > 0) {
    while($row = mysqli_fetch_array($run)) {
        $id=$row['user_id'];
        $name=$row['c_name'];
        $phone=$row['c_number'];
    $whatsapp=$row['w_number'];
 }
}
$d='".$domain."'; $u='".$user."';
           
           
           ?>";
          if(fwrite($index, $indextxt)){
             echo"<script> alert('Downloaded!');</script>";
          }        
     } 
?>

  

если я хочу снова написать sql-запрос на php, ошибка начинается с строки line $id= $row[‘user_id’]; из-за этой одинарной кавычки ' .

есть ли в php какой-либо способ заставить php понять, что мне нужны $ u и $ d как простой текст, а не как значение php в php-файле в функции fwrite, и какой-либо способ импортировать sql-запрос в php-файл без каких-либо ошибок?

Заранее спасибо.

Комментарии:

1. Ваш запрос также не удался. Вы также открыты для внедрения; используйте подготовленный оператор.

Ответ №1:

ваша проблема заключается в использовании двойных кавычек

в двойных кавычках вы должны использовать $ вместо $, потому что при его использовании php думает, что вы хотите поместить переменную exists в свою строку. попробуйте это:

 <?php

if(isset($_POST['import'])){
    $index = fopen('index.php', 'w');
    $indextxt = "
    <?php 
    $user='email@email.com';
    $sql='SELECT * from content WHERE email='.$user.'';
    $run= mysqli_query($con, $sql);
    if(mysqli_num_rows($run) > 0){
        while($row = mysqli_fetch_array($run)){
            $id = $row['user_id'];
            $name = $row['c_name'];
            $phone = $row['c_number'];
            $whatsapp = $row['w_number'];
        }
    }
    $d = '" . $domain . "';
    $u = '" . $user . "';
    ?>";
    if(fwrite($index, $indextxt)){
        echo"<script> alert('Downloaded!');</script>";
    }
} 
?>