Strona 1 z 1
[tablice] tylko pierwszy?
: pn mar 01, 2004 7:44 pm
autor: Dreen
czesc. mam taki problem:
roszerzenia.php - > tutaj trzymam rozszerzenia i ich opisy (do takiej malej przegladarki) w takiej formie:
$ext["<format>"] = "<opis>";
i teraz mam problem, bo w narzedziu konfiguracyjnym do tejze przegladarki robie listing wszystkich rozrzezen i ich opisow w takiej formie:
[php]<?php
include ("rozszerzenia.php");
echo "<h3>Edycja tablicy rozszerzeń</h3><br><hr><br><br><form method=post action=\"writec.php?what=ext\">
<table border=1 cellspacing=2 align=center><tr><th>Numer</th><th>Rozszerzenie</th><th>Opis</th></tr>";
$q = 1;
foreach ($ext as $key => $value) { echo "<tr><td>$q</td><td>$key</td><td><input type=text name=\"$key\" value=$value></td></tr>"; $q++; }
?>[/php]
no i nie zabardzo mi to wychodzi bo do komorki, tam gdzie ma byc opis wpisuje mi tylko pierwszy wyraz opisu, odcinajac reszte!
czy wiecie jak temu zarardzic?
Re: [tablice] tylko pierwszy?
: pn mar 01, 2004 9:03 pm
autor: wixor
Wszystko mi wskazuje na problem w pliku rozszerzenia.php... daj go na forum
Re: [tablice] tylko pierwszy?
: pn mar 01, 2004 9:13 pm
autor: Dreen
[php]<?php
$ext = array();
$ext["php"] = "Plik PHP Hypertext Protocol";
$ext["txt"] = "Plik tekstowy";
$ext["jpg"] = $ext["jpeg"] = "Obrazek JPEG";
$ext["gif"] = "Obrazek GIF";
$ext["htm"] = $ext["html"] = "Strona internetowa HTML";
$ext["ace"] = "Archiwum ACE";
$ext["aif"] = $ext["aifc"] = $ext["aiff"] = "Plik audio AIFF";
$ext["ani"] = "Animacja";
$ext["arj"] = "Archiwum ARJ (RAR)";
$ext["asf"] = "Wideo ASF";
$ext["asp"] = "Plik aktywnej strony serwera";
$ext["avi"] = "Wideo AVI";
$ext["bat"] = "Plik wsadowy MS-DOS";
$ext["bmp"] = "Bitmapa BMP";
...
?>[/php]
i jeszcze troche rozszerzen, w sumie dokladnie 61
ps. yay! to moj setny post!
Re: [tablice] tylko pierwszy?
: śr mar 03, 2004 3:00 pm
autor: Grzegorz Winiarski
Musisz jedynie poprawić funkcje echo wewnątrz pętli foreach na taką:
[php]
<?php
echo "<tr><td>$q</td><td>$key</td><td><input
type=text name=\"$key\" value=\"$value\"></td></tr>";
?>
[/php]
Re: [tablice] tylko pierwszy?
: śr mar 03, 2004 5:54 pm
autor: Dreen
w morde... blad w html... teraz rozumiem, zamiast szukac bledow w rzeczach podstawowych zawsze doszukuje sie usterek w tych co bardziej zaawansowanych kwestiach... w kazdym razie dzieki!
Re: [tablice] tylko pierwszy?
: czw mar 04, 2004 9:46 am
autor: dzieciol4
staraj sie jednak oddzielac htmla od php bo wtedy jest latwiej, czytelniej i nie wychodza ci takie buraczki

jak ten powyzej bo wszystko zobaczysz co zle w htmlu w przegladarce

Re: [tablice] tylko pierwszy?
: czw mar 04, 2004 10:45 am
autor: wixor
Jak ja mam jakiś taki błąd to zawsze robię podgląd źródła i HTML-owe błędy wychodzą od razu...
Re: [tablice] tylko pierwszy?
: pt mar 05, 2004 11:02 am
autor: Dreen
dobra - teraz mam problem z php - chodzi o zapisywanie samej tablicy. niby wszystko powinno dzialac ok, ale jak juz cos zapisuje to robi mi bajzel z pliku rozszerzenia.php. oto kody plikow:
formularz wysylajacy:
[php]<?php
include ("rozszerzenia.php");
echo "<h3>Edycja opisów tablicy rozszerzeń</h3><br><hr><br><br><form method=post action=\"config.php?write=ext&config=3\">
<table border=1 cellspacing=1 align=center bordercolor=black><tr><th><div>lp</div></th>
<th><div>Rozszerzenie</div></th><th bgcolor=#eeeeee><div>Opis</div></th></tr>";
$q = 1;
foreach ($ext as $key => $value) {
echo "<tr><td><div>$q</div></td><td align=center><div>$key</div></td>
<td><input type=text name=\"pext[$q]\" value=\"$value\" class=\"q\" size=80></td></tr>";
$q++;
}
echo "</table><br><hr><div align=right>Żeby dodać nowe rozszerzenia należy edytować plik rozszerzenia.php ręcznie.</div>"; break;
?>[/php]
a teraz skrypt:
[php]<?php
include ("rozszerzenia.php");
$count = count($ext);
for ($i=1; $i<$count; $i++)
{
$text[$i] = $_POST['pext'][$i];
}
$zaczep = fopen("rozszerzenia.php", "r+");
rewind($zaczep);
fwrite ($zaczep, "<?php\n// tablica rozszerzen - modyfikowac wedle potrzeb lub uzywajac panelu konfiguracyjnego\n\n\$ext = array();\n\n");
$q=0;
foreach ($ext as $key => $value)
{
fwrite ($zaczep, "\$ext[$key] = \"$text[$q]\";\n");
$q++;
}
fclose ($zaczep);
?>[/php]
ps. wszystko znajduje sie w jednym pliku - akcje wywolywane sa za pomoca get-a
Re: [tablice] tylko pierwszy?
: pt mar 05, 2004 12:02 pm
autor: Grzegorz Winiarski
Nie możesz w ten sposób dopisywać kodu PHP do pliku rozszerzenia.php.
Najlepszym rozwiązaniem będzie wrzucić wszystkie rozszerzenia do bazy danych ewentualnie do pliku .txt
Re: [tablice] tylko pierwszy?
: pt mar 05, 2004 7:29 pm
autor: Dreen
grzegorz mowisz o czyms takim zebym mogl to rozpakowywac przez exploda?
hmm myslalem o tym wiesz ale jakos zdecydowalem sie to zrobic tak.
a dlaczego nie moge tak pisac kodu? przeciez tworzony plik bedzie po prostu ciagiem znakow, ktore utworza kod.
Re: [tablice] tylko pierwszy?
: sob mar 06, 2004 3:03 pm
autor: Dreen
hath! rozwiazalem juz problem!
tylko przed chwila okazalo sie ze nie dziala
plik rozszerzenia.txt:
[php]<?php
txt|plik tekstowy
gif| obrazek gif
... // itd.
?>[/php]pobieranie rozszerzen:[php]<?php
$zaczep = fopen ("rozszerzenia.txt", "a+"); $n=0;
while (!feof ($zaczep)) {
$exsts[$n] = fgets ($zaczep); $n++;
}
fclose ($zaczep);
$count = count($exts);
for ($n=0; $n<$count; $n++) {
$tmpvar = explode ("|", $exsts[$n]);
$ext[$tmpvar[0]] = $tmpvar[1];
}
foreach ($ext as $key => $value)
{
echo "<br>$key = > $value";
}
?>[/php]foreachem narazie sprawdzam czy dobrze wyszlo i wyskakuje mi blad
Re: [tablice] tylko pierwszy?
: sob mar 06, 2004 5:21 pm
autor: Grzegorz Winiarski
Zrobiles literówke w lini 7
[php]
<?php
$count = count($exsts);
?>
[/php]
Re: [tablice] tylko pierwszy?
: sob mar 06, 2004 9:06 pm
autor: Dreen
damn! zawsze trafi sie jakis glupi blad.

mam talent do literowek.
dzieki jeszcze raz hmmmm