![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 6.12.2003 Skąd: Elbląg City Ostrzeżenie: (0%) ![]() ![]() |
Poniżej przedstawie problem.
wszystko gra, lecz w momecie usuwania dowolnego ogloszenia (np 5-go ogłoszenia z pliku z danymi ) uciekają gdzieś wszystkie znaczniki oddzielające te ogłoszenia. Przedstawie ponizej kody plików: Plik: do usuwania ogloszenia: [php:1:7415147dcc]<?php $linia = addslashes($_REQUEST['linia']); $table=file("adv/dane_data.php"); unset($table[$linia]); for($n=0;$n<count($table);$n++) { $table[$n]=chop($table[$n]); } $cale=implode("rn"$table); $open=fopen("adv/dane_data.php", "w"); fwrite($open,chop($cale)); fclose($open); ?>[/php:1:7415147dcc] plik do zapisywania ogloszenia: [php:1:7415147dcc]<?php $url="http://adres ulr"; $base="adv/dane_data.php"; // zczytuje plik do zmiennej $table=file($base); // wczytuje plik to tablicy // zliczanie ogloszen for($i=0; $i<count($table); $i++)// petla kreci na ostatnia linie { $wiersz=explode("*|*", $table[$i]);// wiersz przypisujemy ostatnia linie } $id = $wiersz[4]+1; //powieksza o jeden id z odtatniego wiersza // koniec zliczania $date=date("d-m-Y"); // przypisuje zmiennej date dzien miesiac i rok $data="$id_og*|*$kontakt*|*$tekst*|*$date*|*$id*|*$cena"; //przypisuje zmiennej data wszystkie dane z formularza $data=str_replace("rn", "<br>", $data); $data="$datan"; $f=fopen($base, a); // otwiera plik z base flock($f, 2); // blokuje plik fputs($f, $data); // zapisuje zmienne data flock($f, 3); // odblokowuje plik fclose($f); // zapisuje plik echo "Wpis został dodany...<br><a href=$url>Pokaż wpisy</a>"; // wyswietla napis ?>[/php:1:7415147dcc] Pozdrwaim |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zgubiłeś przecinek. w linii 9 masz:
[php:1:2f63cb6620]<?php $cale=implode("rn"$table); ?>[/php:1:2f63cb6620] a powinno być [php:1:2f63cb6620]<?php $cale=implode("rn", $table); ?>[/php:1:2f63cb6620] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 6.12.2003 Skąd: Elbląg City Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zgubiłeś przecinek. w linii 9 masz:
[php:1:f5a0398982]<?php $cale=implode("rn"$table); ?>[/php:1:f5a0398982] a powinno być [php:1:f5a0398982]<?php $cale=implode("rn", $table); ?>[/php:1:f5a0398982] faktycznie zpomniałem dodać przecinka;] ale problem pozostaje:( doszedłem do wniosku iż plik odpowiadający za zapisanie danych do pliku dodaje go i na końcu umieszcza znacznik nowej lini "/n"" , a plik usuwający: dzieli dane z pliku na linie, i usuwa ten znacznik. No i w związku z tym proszę o pomoc. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
[php:1:6553689da3]<?php
fwrite($open,chop($cale)); ?>[/php:1:6553689da3] wywal chop() [php:1:6553689da3]<?php fwrite($open,$cale); ?>[/php:1:6553689da3] |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 6.12.2003 Skąd: Elbląg City Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:0622b2593d]<?php
fwrite($open,chop($cale)); ?>[/php:1:0622b2593d] wywal chop() [php:1:0622b2593d]<?php fwrite($open,$cale); ?>[/php:1:0622b2593d] W sumie to nic nie zmieniło:) ale już chyba sobie poradziłem: problem leżał w złym zapisywaniu danych do pliku przy usuwaniu, a konkretnie trzeba było dodać znak przejscia o linie nizej;]: [php:1:0622b2593d]<?php $linia = addslashes($_REQUEST['linia']); $table=file("adv/dane_data.php"); unset($table[$linia]); for($n=0;$n<count($table);$n++) { $table[$n]=chop($table[$n]); } $cale=implode("rn"$table); $cale="$calern"; $open=fopen("adv/dane_data.php", "w"); fwrite($open,$cale); fclose($open); ?>[/php:1:0622b2593d] w kazdym bądź razie dziękuję za pomoc;] pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat W sumie to nic nie zmieniło:) ale już chyba sobie poradziłem:
problem leżał w złym zapisywaniu danych do pliku przy usuwaniu, a konkretnie trzeba było dodać znak przejscia o linie nizej;]: [php:1:eabad096fc]<?php $cale="$calern"; ?>[/php:1:eabad096fc] a ja się upieram, że to przecinek przy implode. powyżej dodałeś tylko znak przejścia do linię niżej od ostatniej linii. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 6.12.2003 Skąd: Elbląg City Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat W sumie to nic nie zmieniło:) ale już chyba sobie poradziłem:
problem leżał w złym zapisywaniu danych do pliku przy usuwaniu, a konkretnie trzeba było dodać znak przejscia o linie nizej;]: [php:1:d5fe4d9c0b]<?php $cale="$calern"; ?>[/php:1:d5fe4d9c0b] a ja się upieram, że to przecinek przy implode. powyżej dodałeś tylko znak przejścia do linię niżej od ostatniej linii. Przyznaję rację ,że przecinek powinien się tam znajdować (i się już znalazł 8) ) ale poprostu człowiek zapomniał;]hehe No i dodałem znak końca lini ponieważ w momencie gdy usuwałem ostanie ogłoszenie to ten sktrypt usuwał wraz z nim ostatni znak przejścia do następnej lini i w konsekwencji w chwili dopisywania nowego ogłoszenia, zostawało ono dopisane do ostatniego ogłoszenia w pliku a nie w nowej ninii;] teraz już wszystko gra i trąbi;] [php:1:d5fe4d9c0b]<?php $linia = addslashes($_REQUEST['linia']); $table=file("adv/dane_data.php"); unset($table[$linia]); for($n=0;$n<count($table);$n++) { $table[$n]=chop($table[$n]); } $cale=implode("rn",$table); $cale="$calern"; $open=fopen("adv/dane_data.php", "w"); fwrite($open,$cale); fclose($open); ?>[/php:1:d5fe4d9c0b] pozdrawiam Ps. powiedz mi jeszcze czemu wcześniej ten chop miał być usunięty?? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
[manual:5f49d98689]chop[/manual:5f49d98689] to alias do [manual:5f49d98689]rtrim[/manual:5f49d98689], a więc usuwa znaki podziału /r/n. Dodawałeś je, a później usuwałeś przy zapisie. :wink:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 15:40 |