ugrás a tartalomhoz

file_put_contents()

bence04 · 2010. Júl. 31. (Szo), 20.05
sziasztok
egy olyan problémám lenne hogy van egy php kódom ami egy futószöveget lehet szerkeszteni [colorer="php"]

<?php



$szoveg = $_POST[szoveg];

file_put_contents('futoszoveg.txt', $szoveg);
echo 'A fájl írása sikeresen megtörtént. Automatikusan vissza lesz irányítva a hír szerkesztéséhez';
?>

[colorer]

az a gond hogy szerkesztésenként betesz egy fordított tör jelet (\) nem tudom mi lehet a probléma olyanra gyanakszom hogy a html kódot visszaalakítja hogy ne legyen biztonsági hiba de nem vagyok benne biztos van valami ötletetek? vagy kód hogy mivel lehetne ugyan így szerkeszteni? :):)
Bence
 
1

Több információ

Poetro · 2010. Aug. 1. (V), 08.09
Hova rakja be a \ jelet, és micsoda? Mi szerepel a futoszoveg.txt fájlban, és hogyan jeleníted meg?
2

ezek

bence04 · 2010. Aug. 1. (V), 08.42
a \ a " elé teszi be és így vannak a kódok

kiir.php (a fájl módosítását végzi)
  1. <?php  
  2.   
  3.     
  4.   
  5. $szoveg = $_POST[szoveg];  
  6.    
  7. file_put_contents('futoszoveg.txt'$szoveg);  
  8. echo 'A fájl írása sikeresen megtörtént. Automatikusan vissza lesz irányítva a hír szerkesztéséhez';  
  9. ?>  
hir.php (ebben lehet szerkeszteni a hírt és a gomb megnyomása utána a kiir.php hajtódik végre):
  1. <form name="hir" method="POST" action="kiir.php" >  
  2.    <div>  
  3.     <label for="comment">Hír: </label>  
  4.     <br>  
  5.     <textarea id="comment" name="szoveg" cols="40" rows="15"><?php include("futoszoveg.txt"); ?></textarea>  
  6.     <br>  
  7.     <input type="submit" value="Kiírás új hírnek">  
  8.   </div>  
  9. </form>  
és így jelenítem meg a futoszoveg.txt-t
  1. <form>  
  2.   
  3.  <p  style="text-align: center; font: bold 11px verdana,helvetica,arial,sans-serif;"><marquee direction="left" height="14" width="auto" scrollamount="3" onmouseout="this.start()" onmouseover="this.stop()" style="filter: Alpha(Opacity=100, FinishOpacity=0, Style=1, StartX=0, StartY=30, FinishX=0, FinishY=0); width: auto; height: 14px"><center><span style="color: #ffffff"><span style="font-size: 12px"><span id="1267300224898S" style="display: none">&#160;</span><?php include("futoszoveg.txt"); ?></span></span><span id="1267300224619E" style="display: none">&#160;</span></marquee></p>  
  4.   
  5. </form>  
és a futoszoveg.txt az egy 777-es joggal ellátott fájl amit a hir.php-ban lehet írni és mindig ha szerkesztem mentés után minden " elé betesz egy \ jelet.
3

magic_quotes_gpc

janoszen · 2010. Aug. 1. (V), 08.44
Nézd meg a magic_quotes_gpc nevű PHP funkciót, ez lesz a ludas. Ami a kódodat illeti, lukas mint a svájci sajt. Ismerkedj meg a htmlspecialchars függvénnyel és include helyett inkább használj file_get_contents-et.
4

htmlspecialchars

bence04 · 2010. Aug. 1. (V), 08.51
a htmlspecialchars függvényt ismerem az alakítja át a html-es kódokat a biztonság érdekében ha minden igaz :) és file_get_contents-el hogyan lehet beszúrni fájlokat? :O:O ugyan úgy ahogy írni a file_put_contents-el??
5

köszönöm

bence04 · 2010. Aug. 1. (V), 12.47
köszönöm már működik :):)
6

még egy kérdés

bence04 · 2010. Aug. 6. (P), 10.35
Sziasztok
lenne egy kérdésem megint :)
most így használom a file_put_contents-et :
  1. file_put_contents('feliratkozok.csv'$email, FILE_APPEND);  
hogy lehetne megcsinálni hogy az E-mail cím beszúrása után betegyen egy ; őt szóközzel?

mert próbáltam a kódba így betenni:
  1. file_put_contents('feliratkozok.csv'$email';', FILE_APPEND);  
de hiba üzenetet kaptam valami ötlet?
Bence
7

Majdnem.... :)

nvyktor · 2010. Aug. 6. (P), 10.57
Majdnem.... :)

A php-ban a karakterláncokat a . jellel tudod összefűzni.
Vagyis a kódod helyesen:
  1. file_put_contents('feliratkozok.csv'$email.'; ', FILE_APPEND);  
vagyis fogja a $email változó tartalmát, és ehhez hozzáfűz egy ;-t, és egy szóközt.

A hibaüzenetet azért adta, mert számára nem értelmezhető paramétert adtál a file_put_contents() függvénynek.

Üdv:
V.
9

köszönöm

bence04 · 2010. Aug. 6. (P), 11.11
köszönöm a gyors választ mostmár működik :)
Bence
8

Nem értem

Poetro · 2010. Aug. 6. (P), 10.59
Nem értem a kérdést. Meg nézed a file_put_contents paraméterezését, és alkalmazod.
  1. file_put_contents('feliratkozok.csv'$email . ';     ', FILE_APPEND);