mic22
(Lksstudzionka)
27 Grudzień 2007 22:28
#1
Witam!
Mam taki kod:
<?php
$konto = $_POST[konto];
include "mysql.inc";
$wynik = mysql_query ("SELECT * FROM konta_td WHERE `nr` = '".$konto."'");
$rekord = mysql_fetch_array ($wynik);
echo "
wybrane konto: $rekord[konto]";
if(!$_POST[nazwa_pliku]) { //brak pliku pokaz formularz
echo "
Wybierz plik do edycji
plik1.html
plik2.html
plik3.html
plik4.html
"; // podaj nazwe pliku do utwozenia
} elseif($_POST[nazwa_pliku]) { //jesli nazwa wpisana otwóż istniejący plik
$plik = "konta/$_POST[konto]/$_POST[nazwa_pliku]";
if (!$_POST[submit]) {//jesli nie wyslano pokaz formularz
$fd = fopen("$plik", "a+"); // otwieramy
$dane = fread($fd, filesize("$plik"));//odczytujemy
$explode=explode("|",$dane);//dzielimy na zaw. i opis.
fclose($fd); //zamykamy
echo "
zawartość pliku
$explode[0]
opis zawartosci (aby w pliku html byl niewidoczny, mozna go ujac w http://perfectionorvanity.com/2005/09/30/komentarze-w-html/
$explode[1]
"; // wyswietlamy zaw. i opis z mozliwoscia edycji (jesli istnieje)
} elseif ($_POST[submit]) {// wysłano, wiec dodaj dane, pokaz komunikat i wyświetl zawartość pliku ;p
$fp = fopen("$plik", "w+"); // otwieramy
$podzialka = '|'; //ustalamy separator
fwrite($fp, "$_POST[zaw] $podzialka $_POST[opis]"); // dodajemy dane
fclose($fp); //zamykamy
echo "
podglad, dla pewności PPM i odśwież ramke
";
}
}
?>[/code]
Kiedy dochodzę do ostatniego kroku wywali mi taki błąd:
Domyślam się, że coś tu jest źle (slashe, brak cudzysłowów, nie wiem :/)
[code] $plik = “konta/$_POST[konto]/$_POST[nazwa_pliku]”;
Próbowałem już wielu kombinacji, ale nic nie działa.
Ścieżka powinna być taka"
a jest taka:
Pozdrawiam, mic22
crew1
(L337 Crew)
27 Grudzień 2007 22:32
#2
$plik = 'konta/'.$_POST['konto'].'/'.$_POST['nazwa_pliku'];
crew1
(L337 Crew)
28 Grudzień 2007 06:33
#4
Wczoraj szedłem spać, więc nawet nie patrzyłem na zamieszczony kod
Dlaczego założyłeś, że przy otwarciu/utworzeniu nowego pliku - utworzy także katalog?
Zrób ręcznie folder, którego nazwa wisi w tablicy $_POST[‘konto’] i odpal skrypt…
Zamieszczam mały przykładzik:
<?php
$konto = 'Webmaster';
$nazwa = 'plik1.html';
$plik = 'konta/'.$konto.'/'.$nazwa;
$zaw = 'hello word';
$opis = 'tego konta uzywać bedzie webmaster';
if(!is_dir('konta/'.$konto)) mkdir ("konta/$konto/", 0755);
$fp = fopen($plik, "w+");
fwrite($fp, $zaw.'|'.$opis);
fclose($fp);
echo 'Dodano. Teraz możesz zobaczyc ten plik klikając tutaj';
?>
[/code]
mic22
(Lksstudzionka)
28 Grudzień 2007 09:34
#5
Katalogi “konta” i “$_POST[‘konto’]” są utworzone przez inny skrypt, więc w momencie wykonywanie tego skryptu one już istnieją.
Dlatego, że katalogów “$_POST[‘konto’]” jest kilka muszę przesłać z innego skryptu jego nazwę którą wybieram z listy rozwijanej. Następnie wybieram z listy nazwę pliku która jest taka sama w każdym folderze (plik1.html […] plik4.html). Jednym zdaniem Skrypt musi mi otworzyć plik z tej ścieżki:
konta/$_POST[konto]/$_POST[nazwa_pliku]
kutar
(Kutar 0)
28 Grudzień 2007 10:26
#6
$plik = $_POST[konto].'/'.$_POST[nazwa_pliku];
mic22
(Lksstudzionka)
28 Grudzień 2007 11:58
#7
Zrobiłem sobie tak i działa:
<?php
$konto = $_POST[konto];
include "mysql.inc";
$wynik = mysql_query ("SELECT * FROM konta_td WHERE `nr` = '".$konto."'");
$rekord = mysql_fetch_array ($wynik);
if(!$_POST[nazwa_pliku]) { //brak pliku pokaz formularz
echo "
Wybierz plik do edycji
plik1.html
plik2.html
plik3.html
plik4.html
"; // podaj nazwe pliku do utwozenia
} elseif($_POST[nazwa_pliku]) { //jesli nazwa wpisana otwóż istniejący plik
$plik = konta.'/'.$_POST[konto].'/'.$_POST[nazwa_pliku];
if (!$_POST[submit]) {//jesli nie wyslano pokaz formularz
$fd = fopen("$plik", "a+"); // otwieramy
$dane = fread($fd, filesize("$plik"));//odczytujemy
$explode=explode("|",$dane);//dzielimy na zaw. i opis.
fclose($fd); //zamykamy
echo "
zawartość pliku
$explode[0]
opis zawartosci (aby w pliku html byl niewidoczny, mozna go ujac w http://perfectionorvanity.com/2005/09/30/komentarze-w-html/
$explode[1]
"; // wyswietlamy zaw. i opis z mozliwoscia edycji (jesli istnieje)
} elseif ($_POST[submit]) {// wysłano, wiec dodaj dane, pokaz komunikat i wyświetl zawartość pliku ;p
$plikk = '.'.$_POST[konto].'/'.$_POST[nazwa_pliku];
$fp = fopen("$plikk", "w+"); // otwieramy
$podzialka = '|'; //ustalamy separator
fwrite($fp, "$_POST[zaw] $podzialka $_POST[opis]"); // dodajemy dane
fclose($fp); //zamykamy
echo "
podglad, dla pewności PPM i odśwież ramke
";
}
}
?>[/code]
Dzięki za pomoc