Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] odczyt i zapis pliku- początkujący, tylko poważne osoby ...
maxis88
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


Mamm problem ze skryptem do edytowania pliku... Wszystko działa pięknie do momentu wyświetlenia treści na ekranie ... Wtedy dzieją się dwie rzeczy, które psują cały kod ... a mianowicie :
1. ( malo szkodliwe ) - za kazdym zapisaniem pliku na początku tworzy sie kolejny akapit
2. (bardziej szkodliwy)- wszystkie znaki "\" są powielane więc po czterech zapisach zamiast mieć :

\" Tekst \" to mam \\\\" Tekst \\\\"

i nie wiem co z tym fantem zrobić ( chociaż domyślam sie że to wina funkcji file() ... )

poniżej zamieszczam linka do plików

http://www.upik.pl/index.php?id=740605dc87...596a370802c7311

z gory dzięki ;P

Ten post edytował maxis88 23.12.2008, 14:59:21
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Google: magic_quotes
Go to the top of the page
+Quote Post
mike
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Przenosze z PHP na Przedszkole.
Go to the top of the page
+Quote Post
maxis88
post
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


szukałem o tych magic_quotes, znalazłem kilka linijek kodu które niby to usuwają ale nic nie działa ;/ może mi ktoś napisać konkretny przykład pasujący do mojego "projektu"?
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A może konkretny kod, którego użyłeś?
Go to the top of the page
+Quote Post
maxis88
post
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


<?php
$zmienna = escape_data($zmienna ); // Ta zmienna, z której chcemy się pozbyć slash'y przed cudzysłowami etc
?>

oraz

<?php
if(get_magic_quotes_gpc()){
function stripslashes_deep($value){
$value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);}
?>


w pierwszym pisze mi ze nie wie co to za funkcja a w drugim nie widac reakcji ... chyba ze cos zle robie ...
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




set_magic_quotes_runtime" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
maxis88
post
Post #8





Grupa: Zarejestrowani
Postów: 110
Pomógł: 1
Dołączył: 17.09.2007

Ostrzeżenie: (0%)
-----


dodałem kod:
"rewind($fp);
set_magic_quotes_runtime(false); "

zmieniając oczywiście nazwę zmiennej ale nadal powiela mi znaki "\"... zauważyłem też że tylko do 2 razy bo potem w ogole nie moge wyswietlic strony ;P

oto kod:

function save_file(){

global $filename, $filebody, $dir, $PHP_SELF;

rewind($filebody);
set_magic_quotes_runtime(false);


if(file_exists("$filename")) {

echo "<script>result = confirm(\"Nadpisać '$filename'?\");
if(!result) history.go(-1)</script>";

}
if($file=fopen("$filename", "w+")){

fputs($file, $filebody);
fclose($file);
}else

error_message("Nie mogę zapisać $filepath", 1);
echo "<script>self.location.href='$PHP_SELF?filename=$filename';</script>";
}


co nadal robię źle ? próbowalem dodać tą drugą linijkę kodu na początek pliku php ale też nic nie daje ...


ok już znalazłem rozwiązanie ...

function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);

return $value;
}


function save_file(){

global $filename, $filebody, $dir, $PHP_SELF;



if(file_exists("$filename")) {

echo "<script>result = confirm(\"Nadpisać '$filename'?\");
if(!result) history.go(-1)</script>";

}
if($file=fopen("$filename", "w")){
$filebody = stripslashes_deep($filebody);

fputs($file, $filebody);
fclose($file);
}else

error_message("Nie mogę zapisać $filepath", 1);
echo "<script>self.location.href='$PHP_SELF?filename=$filename';</script>";
}


tylko pozostaje problem akapitów na początku... wie ktos dlaczego one powstają ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 15:51