2017-02-22 34 views
-1

我怎樣寫一個變量作爲字符串使用fwrite的一個外部文件 - 用單引號「(VAR)」周圍的變量:編寫HTML與PHP變量到一個外部文件

$sql_data_element = "UPDATE artister SET data_two="$data_two" WHERE brugernavn= ' . $brugernavn . '"; 

寫data_two = 「$ data_two」給出了一個錯誤 - 需要適當逃避工作...

赫斯完整的代碼被寫入到外部文件:

$file = fopen($dir . '/' . $file_to_write,"w"); 

$template_content = ' 
<article class="text" style="display:block"> 
<div class="wrap_om_artisten_top clearfix"> <!-- CLEAR FLOATS I wrap_profile_image OG data_elements_upload_section --> 

    <!-- PROFIL FOTO -->  
    <div class="wrap_profile_image"> 
     <figure class="profile_image"> 
      <!-- PROFIL FOTO HER --> 
     </figure> 

     <div class="wrap_form_image"> 
      <form enctype="multipart/form-data" method="post" class="form_img_profile"> 
       <input type="file" name="img_profile_upload" id="img_profile_upload" style="display:none;" accept="image/*" /> 
       <label for="img_profile_upload" class="choose_profile_img button">Vælg billede</label> 
                      <!-- LABEL: OMGÅ BROWSER DEFAULT-TEXT: "Ingen fil valgt." -->  
       <input id="submit" type="submit" name="submit_image_profile" value="Tilføj foto" class="submit_img_upload button">     
      </form> 
     </div> 
    </div> 

    <!-- INOF --> 
    <div class="data_elements_upload_section"> 

     <!-- INDSÆT DATA ELEMENT I MYSQL --> 
     <?php 
      $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
      if ($conn->connect_error) { 
       die("Connection failed: " . $conn->connect_error); 
      } else { 
       //echo("ja conn ok <br />"); 
      } 

      // HVIS DER ER INDTASTET NOGET ("isset") I FORM INPUT...  
      $data_one = isset($_POST["data_one"]) ? $_POST["data_one"] : "";  
      $data_two = isset($_POST["data_two"]) ? $_POST["data_two"] : "";  
      $data_three = isset($_POST["data_three"]) ? $_POST["data_three"] : ""; 


      // ERRORS 
      function show_error_data($error_text) { 
       echo \'<div class="error_overlay"> \n\'; 
       echo  \'<div class="error_text_wrap"> \n\'; 
       echo   \'<p class="error_text">$error_text</p>\'; // HUSK FORSKEL PÅ ENKELT - OG DOBBELT 
       echo   \'<button class="error_close">Prøv igen</button> \n\'; 
       echo  \'</div> \n\'; 
       echo \'</div>\'; 
      } 

      // HVIS FORM SUBMIT ER TRYKKKET... 
      if (isset($_POST["submit_data_one"])) {  
       // BESTEM HVOR OG HVAD DER SKLA INDSÆTTES 
       $sql_data_element = "UPDATE artister SET data_one='\$data_one' WHERE brugernavn= \'' . $brugernavn . '\'"; 
       //INDSÆT INDTASTEDE DATA I MYSQL 
       $conn -> query($sql_data_element); 
      } 
      else if (isset($_POST["submit_data_two"])) {   
       if (empty($_POST["data_one"])) { // HVIS data_one ER TOM.. 
        show_error_data("Udyld Info 1 først!"); 
       } else {  
        $sql_data_element = "UPDATE artister SET data_two="$data_two" WHERE brugernavn= ' . $brugernavn . '"; 
        $conn -> query($sql_data_element); 
       } 
      } // END OF submit_data_two 
      else if (isset($_POST["submit_data_three"])) { 
       if ((empty($_POST["data_one"])) || (empty($_POST["data_two"]))) { 
        show_error_data("Udyld Info 1 og 2 først!"); 
       } else {  
        $sql_data_element = "UPDATE artister SET data_three="$data_three" WHERE brugernavn= ' . $brugernavn . '"; 
        $conn -> query($sql_data_element); 
       } 
      } // END OF submit_data_three   
     ?> 

     <aside class="wrap_data_elements"> 
    <!--  <button type="button" class="wrap_close_text"> 
       <img src="/images/slideren/icons/icon_close_fullscreen.png" class="close_text" 
        alt="Skjul informationer om kunsteneren og vend tilbage til visning af kunsteksemksempler" /> 
      </button>--> 



      <div class="data_element"> 
       <h1>' . $brugernavn . '</h1> 
      </div>   

      <div class="data_element"> 
       <?php 
        $query = "SELECT data_one FROM artister WHERE brugernavn = ' . $brugernavn . '"; 
        $result = mysqli_query($conn,$query) or die (mysqli_error($conn)); 

        while($row = mysqli_fetch_array($result)) { 
         $data_one = $row["data_one"]; 
         echo $data_one; 
        } 
       ?> 
      </div> 
      <div class="data_element"> 
       <?php 
        $query = "SELECT data_two FROM artister WHERE brugernavn = ' . $brugernavn . '"; 
        $result = mysqli_query($conn,$query) or die (mysqli_error($conn)); 

        while($row = mysqli_fetch_array($result)) { 
         $data_two = $row["data_two"]; 
         echo $data_two; 
        } 
       ?> 
      </div> 
      <div class="data_element"> 
       <?php 
        $query = "SELECT data_three FROM artister WHERE brugernavn = ' . $brugernavn . '"; 
        $result = mysqli_query($conn,$query) or die (mysqli_error($conn)); 

        while($row = mysqli_fetch_array($result)) { 
         $data_three = $row["data_three"]; 
         echo $data_three; 
        } 
       ?> 
      </div> 

      <!--<ul class="wrap_se_mere">  
       <li class="overskrift_se_mere">DENNE KUNSTNER HAR MERE</li> 
        <ul class="second_se_mere"> 
         <li class="se_mere">MUSIK</li> 
         <li class="se_mere">kunst</li> 
         <li class="se_mere">FILM</li> 
        </ul> 
       </li> 
      </ul> -->  
     </aside> 

     <div class="wrap_form_data"> 
      <button class="show_form_data button">Opret info</button> 

      <!-- OPRET DATA ELEMENT 1 --> 
      <form action="<?=$_SERVER["PHP_SELF"]?>" method="post" class="form_data_element"> 
       <input type="text" name="data_one" placeholder="Data 1" class="data_input"/> 
       <input type="submit" name="submit_data_one" class="submit_data button" value="Opret data 1" />  
      </form> 
      <!-- OPRET DATA ELEMENT 2 --> 
      <form action="<?=$_SERVER["PHP_SELF"]?>" method="post" class="form_data_element"> 
       <input type="text" name="data_two" placeholder="Data 2" class="data_input"/> 
       <input type="submit" name="submit_data_two" class="submit_data button" value="Opret data 2" />  
      </form> 
      <!-- OPRET DATA ELEMENT 3 --> 
      <form action="<?=$_SERVER["PHP_SELF"]?>" method="post" class="form_data_element"> 
       <input type="text" name="data_three" placeholder="Data 3" class="data_input"/> 
       <input type="submit" name="submit_data_three" class="submit_data button" value="Opret data 3" />   
      </form> 
      <button class="cancel_data button"></button> 
     </div> 
    </div> <!-- end of data_elements_upload_section --> 

</div> <!-- END OF wrap_om_artisten_top --> 



    <!-- VIS BESKRIVELSE --> 
    <div class="wrap_om_artisten_bottom_broedtekst">  
     <?php 
      $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
      $query = "SELECT beskrivelse FROM artister WHERE brugernavn = \'' . $brugernavn . '\' "; 
      $result = mysqli_query($conn,$query) or die (mysqli_error()); 

      while($row = mysqli_fetch_array($result)) { 
       $beskrivelse = $row["beskrivelse"]; 
       echo $beskrivelse; 
      } 
     ?> 
    </div> <!-- END OF wrap_om_artisten_bottom_broedtekst --> 


    <!-- OPRET BESKRIVELSE --> 
    <form action="<?=$_SERVER["PHP_SELF"]?>" method="post" class="form_beskrivelse"> 
     <label>Beskrivelse:</label> 
     <textarea id="editor1" name="beskrivelse" placeholder="Beskrivelse her"   
      value="<?php echo isset($_POST["beskrivelse"]) ? $_POST["beskrivelse"] : ""; // UPLOAD TEXT TIL MYSQL ?>"> 
      <?php echo $beskrivelse; // VIS OG EDIT EKSISTERENDE MYSQL-TEXT ?> 
     </textarea> 
     <script> 
      // VIS ckeDITOREN 
      CKEDITOR.replace("editor1"); 
     </script> 
     <br /> 

     <input type="submit" name="submit_beskrivelse" value="Opret beskrivelse" />  
    </form> 


    <!-- ART UPLOADS --> 
    <div class="wrap_uploads" > 
    <?php 
     include ("links_art_uploads.php"); 
    ?> 
    </div> 

    <div class="upload_section">  
     <form id="Upload" action="" enctype="multipart/form-data" method="post"> 
      <p> 
       <label>Upload et billede:</label> 
       <!-- TYPE file FINDER IMG LOCATION - id + CCS-STYLE + button MED JS ER HER FOR AT OMG? BROWSER-DEFAULT TEXTEN: "Ingen fil valgt." --> 
       <input type="file" name="img_art_upload" id="img_art_upload" style="display:none;" 
       accept="image/*" onchange="showMyImage(this)"/> <!-- TIL PREVIEW - SE script function showMyImage OG body <input type="file"... --> 
       <button type="button" class="input_style button" onClick="document.getElementById("img_art_upload").click();">Vælg billede</button> 
      </p> 

      <p> 
       <label>Skift navn på billede</label> 
       <input type="text" name="img_nyt_navn" maxlength="26" /> 
      </p> 

      <p> 
       <label>Press to...</label> 
       <input id="submit" type="submit" name="submit_art_upload" class="button" value="Upload"> 

      </p>  
     </form> 
    </div> 



<!-- <div class="preview_wrap"style="position: absolute; bottom: 0; border: 2px solid red;"> 
     <img id="preview" class="preview_size"/> <!-- TIL PREVIEW - SE script og <input type="file"... --> 
    </div>--> 

<!-- vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --> 

<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
<script> 
$(document).ready(function(){ 

    // PROFIL FOTO - HENT OG VIS FRA ROOT 
    $("figure.profile_image").load("links_to_uploads_template.php"); 

    // PROFIL FOTO - TOGGLE BUTTONS 
    $("label.choose_profile_img").click(function() { 
     $(this).hide(); 
     $("input.submit_img_upload").fadeIn(400); 
     $("body").css({"background" : "black" }); 
    }); 

    // TIL UPLOAD AF SATA 
    $("form.form_data_element").hide(); 

    $("button.show_form_data").click(function() { 
     $(this).hide(); 
     $("form.form_data_element:nth-of-type(1)").fadeIn(400); 
     $("form.form_data_element:nth-of-type(2)").fadeIn(400); 
     $("form.form_data_element:nth-of-type(3)").fadeIn(400); 
    }); 

    $("form.form_data_element").click(function() { 
     $("form.form_data_element").not(this).hide(); 
     $(this).css({"float" : "left"}); // KUN NØDVENDIG PGA FOMM 3 SOM FLOATER RIGHT - HVILKET PALCERER button.cancel_data YDERST TIL VENSTRE 
     $(this).css({"width" : "calc(100% - 30px)"}); // BREDDE FORM MINUS BREDDEN AF button.cancel_data 30PX 
     $(this).find("input.data_input").css({"float" : "left", "width" : "calc(100% - 120px)"}); // BREDDE MINUS input.submit_data 
     $(this).find("input.submit_data").fadeIn(400); 
     $("button.cancel_data").fadeIn(400); 
    }); 

    $("button.cancel_data").click(function() { 
     $("button.show_form_data").fadeIn(400); 
     $(this).hide(); 
     $("form.form_data_element").removeAttr("style").hide(); 
     $("input.data_input").removeAttr("style"); 
     $("input.submit_data").removeAttr("style"); 
    }); 

var half_height = $(window).height()/2; 


$("button.next_image").click(function() { 
    var viewport_height = $(window).height(); // OGSÅ DEFINERET I custom_fullscreen.js 
    var next_image = $(this).next(".window_element").outerHeight(true); // HØJDE + MARGIN + PADDING 
    $("html, body").animate({ 
//  scrollTop: $(".top_img").offset().top - ($(window).height() - $(".top_img").outerHeight(true))/2 
     scrollTop: $(".top_img").offset().top - (viewport_height - next_image)/2 
    }, 1000, "swing"); 
}); 

//var position = $(".window_element").offset(); /*it gets the position of the div 
//          "fixed" relative to the document*/ 
//$(".window_element").html(position.top); 


}); // END OF DOC READY 
</script> 

</article> <!-- END OF article class="text" --> 
'; // END OG HTML 

fwrite($file, $template_content); 

fclose($file); 

寫入外部文件的HTML必須經過像這樣:

$sql_data_element = "UPDATE artister SET data_one='$data_one' WHERE username='new user' "; 

這是怎麼回事:提交用戶名,密碼,MySQL中「的index.php」後從$template_content寫入一個新的文件,並重定向到這一點。基於新文件用戶的書面內容有更多選擇。

+0

更新你以什麼文件的內容是現在的問題,和/或var_dump。 –

+0

我已更新內容 - – jan199674

+0

我不知道你爲什麼要在文件中寫出所有內容。你首先使用的是純html,然後是一個沒有php標籤的db查詢,然後是js。我覺得你需要重新考慮這一點。就像我上面提到的;用你現在得到的輸出更新你的問題。看來你想排除html和js,只將查詢寫入文件,對嗎? –

回答

0
$template_content = '$sql_data_element = "UPDATE artister SET data_one="\'$data_one\'" WHERE username= \'' . $username . '\'";'; 

將輸出

$sql_data_element = "UPDATE artister SET data_one='$data_one' WHERE username='new user' "; 

按照您的要求

你確定你不想輸出

$sql_data_element = "UPDATE artister SET data_one='some value' WHERE username='new user' ";

+0

上拋出錯誤,意外的'''已經嘗試過 - HTML將是單引號和雙引號: data_one =「'$ data_one'」 我需要它只有單引號: data_one ='$ data_one' – jan199674

1

注意你的報價字符,並使用heredoc,以增強可讀性:

<?php 

$username = 'James Bond'; 
$template_content = <<<CODE 
\$sql_data_element = "UPDATE artister SET data_one='\$data_one' WHERE username='$username'"; 
CODE; 

var_dump($template_content); 

的上面的輸出顯然是:

string(91) "$sql_data_element = "UPDATE artister SET data_one='$data_one' WHERE username='James Bond'";" 
+0

無法使用HEREDOC - $ template_content同時包含PHP,HTML和JQuery在外部文件中使用 – jan199674

+0

@ jan199674我不明白這個聲明 - 一個字符串包含什麼或者在以後的某個時間點如何使用它與它的定義無關,你可以在這樣一個字符串中混合你想要的任何標記或代碼在古典或'heredoc'風格的字符串定義中沒有區別 – arkascha

+1

@arkascha你有沒有看到他們的編輯?我真的不知道是什麼你要在這裏做;請參閱[我的評論](http://stackoverflow.com/questions/42392330/writing-html-with-php-variable-to-an-external-file?noredirect=1#comment71933428_42392330)。 –

相關問題