Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Edycja pliku
Forum PHP.pl > Forum > PHP
JOHNY
Mam pewien problem z edycją pliku sop.dat u qmpla chodzi pięknie ładnie na servie Kranal a u mnie nie i nie wiem dlaczego. Nawet po wrzuceniu plików na inny server pod linem i zedytowaniu wpisu nie zapisuje go

Oto potrzebne pliki:
sop.dat
Kod
namej|3834738|kam1lejszun@wp.pl|

namek|3834738|kam1lejszun@wp.pl|


sopdel.php:
[php:1:7987dd0703]
<?
echo "<table border="1" cellspacing="1" cellpadding="0" class="textbold"><tr align="center"><td>LP</td><td>Nick</td><td>Nr GG</td><td>E-mail</td></tr>";
$f=file("sop.dat");
for ($i=0; $i<count($f); $i++) {
$z=explode("|", $f[$i]);
echo "<tr class="tekst" align="center"><td>";
echo $i+1;
echo"</td><td>$z[0]</td><td>$z[1]</td><td>$z[2]</td></tr>";
}
$i++;
echo "</table>";
echo "<p class="tekst">Podaj LP do usuniecia<br></p>
<form action="sopusun.php" method="POST" >
<input name="lp">
<input type="submit" value="usuń" name="usunsop">
</form>";
echo "<p class="tekst">Podaj LP do edycji<br></p>
<form action="sopedytuj.php" method="POST" >
<input name="lp">
<input type="submit" value="edytuj" name="edytujsop">
</form>";
?>
[/php:1:7987dd0703]

sopusun.php:
[php:1:7987dd0703]
<?
$id2 = $_POST['lp'];
$id = $id2-1;
$dane=file("sop.dat");
unset($dane[$id]);
$file=fopen("sop.dat","w");
fwrite($file,str_replace("r","",join('',$dane)));
fclose($file);
echo "<p class="windows">AKTUALNIE LISTA SUPER OP-ÓW WYGLˇDA TAK:</p><BR><table border="1" cellspacing="1" cellpadding="0" class="textbold"><tr align="center"><td>LP</td><td>Nick</td><td>Nr GG</td><td>E-mail</td></tr>";
$f=file("../sop/sop.dat");
for ($i=0; $i<count($f); $i++) {
$z=explode("|", $f[$i]);
echo "<tr class="tekst" align="center"><td>";
echo $i+1;
echo "</td><td>";
echo $z[0];
echo "</td><td>";
echo $z[1];
echo "</td><td>";
echo $z[2];
echo "</td></tr>";
}
$i++;
echo "</table>";
?>
[/php:1:7987dd0703]

sopedytuj.php:
[php:1:7987dd0703]
<?
$dane=("sop.dat");
$dane1=file($dane);
$id2 = $lp;
$id = $id2-1;
if($akcja=="zapisz_edycje") {
$z=explode("|", $dane1[$id]);
$after="$z[0]|$z[1]|$z[2]|n";
$before="$nick|$gg|$email|n";
$fp=@fopen($dane, "r");
$a=fread($fp, filesize($dane));
flock($fp,"1");
@fclose($fp);
$before=str_replace("$after","$before",$a);
$fopen=@fopen($dane,"w");
flock($fopen,"2");
fwrite($fopen, $before);
flock($fopen,"3");
@fclose($file);
echo"Zapisane!<br><a href='sopdel.php'>OK</a>";
} else {

$z=explode("|", $dane1[$id]);

echo"Edycja LP: $id2<BR><form action='sopedytuj.php?akcja=zapisz_edycje&lp=$id2' method='post'>Nick:<input name='nick' value='$z[0]' type='text'><BR>GG:<input name='gg' value='$z[1]' type='text'><BR>e-mail:<input name='email' value='$z[2]' type='text'><BR><input type='submit' value='zapisz edycje'></form>";
echo "<tr class="tekst" align="center"><td>"; }

?>
[/php:1:7987dd0703]

Nie wiem co jest nie tak bo wszystko jest pięknie ładnie jak chcę edytować pokazuje mi zawartość konkretnego LP ale nie chce go poprawić po zapisaniu.

Czy mógłby ktoś to sprawdzić u siebie na servie i ewentualnie poprawić sopedytuj.php jeśli jest tam coś źle. (register_global mam włączone jak coś)
JOHNY
widze ze nikomu się nie chce sprawdzić tego dlaczego na krasnalu działa na zwykłym servie nie. Albo w php.ini trzeba coś włączyć lub w apachu wie ktoś czy nie questionmark.gif
cahe
Cytat
widze ze nikomu się nie chce sprawdzić tego dlaczego na krasnalu działa na zwykłym servie nie. Albo w php.ini trzeba coś włączyć lub w apachu wie ktoś czy nie questionmark.gif


Brrr... ten kod aż zniechęca do czytania. Naucz się pisać ładnie (tak btw.) - dobra rada na przyszłość, zobacz:

[php:1:f12b3384af]<?php
$cistam = 1;
$costam = 2;
$plik = fopen($costam, "wb");
if($plik){
costam();
echo('costam');
if($cosstam2){
echo($Ecosta);
}}

?>[/php:1:f12b3384af]

To jest kod brzydki. Teraz to samo:

[php:1:f12b3384af]<?php
////////////////////////////////////////////////////
//Plik do obsługi edycji z poziomu php
////////////////////////////////////////////////////
//Opis ... opis...
//Opis...
////////////////////////////////////////////////////

$cistam = 1;
$costam = 2;

$plik = fopen($costam, "wb"); //Otwieramy plik do zapisu

if(!empty($plik)) // Jeśli się udało
{
costam();
echo('costam');

.... // + komentarze do mniej oczywistych rzeczy

if($cosstam2)
{
echo($Ecosta);
}
}

fclose($plik);
?>[/php:1:f12b3384af]

Prawda że widać różnice? A teraz pomyśl co było by z bardziej skomplikowanym skryptem...
cahe
No i jeszcze jedno: staraj się nie mieszać php i HTML jeśli to nie konieczne. A gdybyś musiał to zrobić to estetyczniej wygląda:

[php:1:3282e748b3]<?php
echo('
<p align="center"><font color="red">Costam</font></p>
<form action="index.php" method="POST">
<input type="hidden" value="' . $zmienna . '" name="costam">');
?>[/php:1:3282e748b3]

Niż:

[php:1:3282e748b3]<?php
echo("<p align="center"><font color="red">Costam</font></p><form action="index.php" method="POST"><input type="hidden" value="$zmienna" name="costam">');
?>[/php:1:3282e748b3]

Nie uważasz?

A przecież można to zrobić tak:

Kod
<p align="center"><font color="red">Costam</font></p>

<form action="index.php" method="POST">

<input type="hidden" value="<?=$zmienna?>" name="costam">

Czyli minimalna ilość kodu php pośród HTML, a nie odwrotnie.
JOHNY
Ok postaram się dostosować na przyszłość ale pytanie jest z goła inne. Powtórze więc jeszcze raz.

[b]Dlaczego na Krasnalu ten strypt działa i zapisuje edycje pliku a na osobno zainstalowanych składnikach nie. Czy mógłby ktoś to sprawdzić u siebie na servie czy działa. (moze coś z konfiguracją apache lub php nie tak. questionmark.gif
cahe
[quote]Ok postaram się dostosować na przyszłość ale pytanie jest z goła inne. Powtórze więc jeszcze raz.

[b]Dlaczego na Krasnalu ten strypt działa i zapisuje edycje pliku a na osobno zainstalowanych składnikach nie. Czy mógłby ktoś to sprawdzić u siebie na servie czy działa. (moze coś z konfiguracją apache lub php nie tak. questionmark.gif

Taaaaaa... teraz to już wszyscy normalni ludzie "rzucą" się do odpowiedzi.
kurtz
Cytat
Mam pewien problem z edycją pliku sop.dat u qmpla chodzi pięknie ładnie na servie Kranal a u mnie nie i nie wiem dlaczego.
Zajrzyj do przyklejonych na tym forum watkow. I na boga.. kulturki troche.. Chyba ze zalezy tobie zeby uzyskac tytul buora roku ;)


Pozdrawiam
JOHNY
Cytat
Cytat
Mam pewien problem z edycją pliku sop.dat u qmpla chodzi pięknie ładnie na servie Kranal a u mnie nie i nie wiem dlaczego.
Zajrzyj do przyklejonych na tym forum watkow. I na boga.. kulturki troche.. Chyba ze zalezy tobie zeby uzyskac tytul buora roku winksmiley.jpg


Pozdrawiam

Kulture to ja mam a pozatym nic takiego hamskiego nie napisałem. No chyba ze ja czytać nie umiem smile.gif
Ok nie ma sprawy zdziobie co i jak może coś znajdę dzieki kurtz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.