Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP]Zapis textarea do pliku

Napisany przez: Niree 17.07.2019, 14:42:03

Witam, chciałbym zrobic edytor pliku PHP.

Biorę więc:

  1. $schema = http://www.php.net/file_get_contents('plik.php');

(plik.php)
  1. <?php
  2. $title = 'Rejestracja';
  3. $callout = '<p class="callout" style="padding:15px;background-color:#ECF8FF;margin-bottom: 15px;">Wiadomość wysłana automatycznie, prosimy na nią nie odpowiadać.</p>';
  4. ?>

  1. <http://december.com/html/4/element/form.html>
  2. <http://december.com/html/4/element/textarea.html class="form-control" rows="3" name="schema" style="height: 800px;"><?php echo $schema;?></http://december.com/html/4/element/textarea.html>
  3. ... submit itp...
  4. </http://december.com/html/4/element/form.html>


Kod pokazuje się OK. Po kliknięciu submit, w _POST mam nowy kod php. W momencie zapisu tego _POST do pliku, w pliku pojawiają się jakieś krzaki typu &lt; &gt; zamiast czystego kodu z _POST;

  1. file_put_contents('plik.php', $_POST['schema']);


Proszę o pomoc.


Napisany przez: nospor 17.07.2019, 14:43:24

Wyglada jakbys po drodze gdzie filtrowal dane z POST

Napisany przez: Niree 17.07.2019, 14:47:51

Po debugu print_r($_POST):

  1. Array ( [schema] => <?php $title = 'Aktualizacja zgłoszenia'; $subject = 'Aktualizacja '.$complaintinfo->unique_id; $callout = '<p class="callout" style="padding:15px;background-color:#ECF8FF;margin-bottom: 15px;">Wiadomość wysłana automatycznie, prosimy na nią nie odpowiadać.</p>'; ?> )


Kod:
  1. if(http://www.php.net/isset($_POST['processEmailTemplate']))
  2. {
  3. file_put_contents('plik.php', $_POST['schema']);
  4. $json['message'] = 'Dokonano edycji. Konieczne będzie odświeżenie strony...';
  5. http://www.php.net/echo json_encode($json);
  6. }


Kod po zapisie:
  1. &lt;?php
  2. $title = 'Aktualizacja zgłoszenia';
  3. $subject = 'Aktualizacja '.$complaintinfo-&gt;unique_id;
  4. $callout = '&lt;p class=&quot;callout&quot; style=&quot;padding:15px;background-color:#ECF8FF;margin-bottom: 15px;&quot;&gt;Wiadomość wysłana automatycznie, prosimy na nią nie odpowiadać.&lt;/p&gt;';
  5. ?&gt;


Napisany przez: nospor 17.07.2019, 14:50:26

Zobacz jak wyglada twoj print_r w zrodle strony a nie tak sprawdzasz.... by wejsc w zrodlo strony zazwyczaj trzeba wcisnac CTRL+U

Napisany przez: Niree 17.07.2019, 14:52:23

Cytat(nospor @ 17.07.2019, 15:50:26 ) *
Zobacz jak wyglada twoj print_r w zrodle strony a nie tak sprawdzasz.... by wejsc w zrodlo strony zazwyczaj trzeba wcisnac CTRL+U


Wiesz co... Potwierdziło się to filtrowanie. Mam klasę filtrującą $_POST, kompletnie o niej zapomniałem.

  1. if (http://www.php.net/ini_get('magic_quotes_gpc')) {
  2. $data = http://www.php.net/stripslashes($data);
  3. } else {
  4. $data = http://www.php.net/htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
  5. }


stripslashes czy htmlspecialchars powoduje zmianę tych wszystkich znaków na tekstowe?

Napisany przez: nospor 17.07.2019, 14:54:00

Tak, to wlasnie to.

Kiedy wy sie nauczycie by nie robic takich cudow? To sie robilo 100 lat temu...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)