Anonymous
28.05.2004, 15:00:14
Witam
Mam coś takiego:
[php:1:3880336462]
<?php
$id = $_GET['id'];
$sciezka = "pliki";
$roz = ".txt";
if(empty($id)){
echo "<form action="index.php/?id=q" method="post">
<input type="text" name="nazwa">
<textarea name="tresc" rows="7" cols="12"></textarea>
<input type="submit" value="Wy¶lij">
</form>
";
}
else if ($id=="q"){
$nazwa = stripslashes(trim($_POST["nazwa"]));
$tresc = stripslashes(trim($_POST["tresc"]));
echo "$nazwa$roz <br>";
echo "$tresc <br>";
echo "<a href=java script:history.go(-1)>Popraw</a> <a href=?id=y>Zapisz</a> ";
}
if ($id=="y"){
$plik = fopen("$sciezka/$nazwa$roz", "w+");
fwrite($plik,$tresc);
fclose($plik);
}
?>
[/php:1:3880336462]
Czy może mi ktoś powiedzieć, jak zrobić, żeby nie tracić danych w tym
[php:1:3880336462]<?php
if ($id=="y"){
?>[/php:1:3880336462] momencie?
Prosze używac do kodu php odpowiednich znaczników [php]
hwao
michaloo
28.05.2004, 15:04:20
tracic danych?? co masz na mysli? Proponuje lepiej opisac problem bo jak dla mnie jest on niezrozumialy...
Anonymous
28.05.2004, 15:08:49
OK
Ten scrypt jeśłi w adresie jest "?id=" wyświetla pola w które wpisuje się nazwę i treść, po wysłaniu, jesteśmy na stronie "?id=q" co powoduje wyświetlenie zawartości pól wcześniej wpisanych, z kolei, jak kliknę zapisz, to uzyskuję komunikat:
Notice: Undefined variable: nazwa in C:serverwwwkatalog2index.php on line 24
Notice: Undefined variable: tresc in C:serverwwwkatalog2index.php on line 25
i to jestnazwane przeze mnie utratą danych ze zmiennych $nazwa i $tresc. Nie wiem jak to umieścić, żeby je zachować do końca.
michaloo
28.05.2004, 15:16:48
możesz te dane przezkazac przez GETa (czyli dopisac do url'a) badz zapisac jako zmienne sesyne, jednak wydaje mi sie ze peirwszy sposob bedzie lepszy
[php:1:5b437d4221]<?php
$id = $_GET['id'];
$sciezka = "pliki";
$roz = ".txt";
if(empty($id)){
echo "<form action="index.php/?id=q" method="post">
<input type="text" name="nazwa">
<textarea name="tresc" rows="7" cols="12"></textarea>
<input type="submit" value="Wy¶lij">
</form>
";
}
else if ($id=="q"){
$nazwa = stripslashes(trim($_POST["nazwa"]));
$tresc = stripslashes(trim($_POST["tresc"]));
echo "$nazwa$roz <br>";
echo "$tresc <br>";
echo "<a href=java script:history.go(-1)>Popraw</a> <a href=?id=y&nazwa=$nazwa&tresc=$tresc>Zapisz</a> ";
}
if ($id=="y"){
$nazwa = GET['nazwa'];
$tresc = GET['tresc'];
$plik = fopen("$sciezka/$nazwa$roz", "w+");
fwrite($plik,$tresc);
fclose($plik);
}
?>[/php:1:5b437d4221]
Anonymous
28.05.2004, 15:25:47
niestety, wynik jaki uzyskałem to: "Parse error: parse error, unexpected '[' in C:serverwwwkatalog2index2.php on line 25"
matys
28.05.2004, 15:27:34
Popraw w 20 linijce z tym space
Anonymous
28.05.2004, 15:30:33
nadal ten sam komunikat
michaloo
28.05.2004, 15:32:12
uups... :oops: ma byc oczywisci $_GET['nazwa'] i odpowiednio dla tresci
Anonymous
28.05.2004, 15:36:16
ok działa

, ale czy nie da się tego inną metodą przesłać? bo GET hmm ona ma chyba jakieś ograniczenia czyż nie?
michaloo
28.05.2004, 15:40:58
POST (przez formularz) badz przez sesje...wdaje mi sie ze przerobienie tego bedzie juz latwe.
W przypadku gdy wybrales POST to musisz zrobic formularz z dwoma polami hidden badz (gdy wybrales sesje) to w dopisac session_start(); oraz stworzenie zmiennych sesyjnych ($_SESSION['nazwa'] = $nazwa; ) i w if(id=='y') zamiast GET to SESSION
Anonymous
28.05.2004, 17:04:45
Dzięki! jest lux, wykorzystałem POST, i na tej drugiej stronie wstawiłem <input type=text> dzięki czemu poprawki mogę wprowadzić już przy wynikach i nie trzeba powracać do początku
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.