Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapis z forumlarza PHP do pliku CSS
Forum PHP.pl > Forum > Przedszkole
_Cartman
Witam was!
Chciałem sobie zrobić banalny edytor plików CSS, ale za każdym razem, gdy każe mu wyświetylić wyniki (chodzi mi o to:

  1. <?
  2. echo &#092;"Zmieniono arkusz styli kaskadowych na <br><br><tt>$newstyle</tt><br><a href=\"../index.php?module=styles\">Powrót do edytora styli</a><br>\";
  3.  
  4. ?>


Czyli po prostu wyświetlenie wyników z przesylając4ego formularza.
Cały czas wyświetla mi wartość 0, a plik pozostaje nie zmieniony. W czym tkwi problem?? czy php nie może zapisywać do pliku z rozszeżeniem CSS?
hmmm
moze, nie moze - tego nie wiem, ale style mozesz umiescic w pliku z rozszerzeniem *.php jak cos ;P
_Cartman
aha, czyli potem jak bede chciał wykorzystac ten plik to moge dac:

  1. <link href="style.php" rel="stylesheet" type="text/css">
hmmm
nom winksmiley.jpg
bela
Cytat(_Cartman @ 2005-02-22 19:21:27)
aha, czyli potem jak bede chciał wykorzystac ten plik to moge dac:

  1. <link href="style.php" rel="stylesheet" type="text/css">

A dokładniej
  1. <link href="style.php" rel="stylesheet" type="text/css" />
. Bo to pusty tag smile.gif
borec
@hmmm skad Tys sie urwal? jasne ze mozesz zapisac plik css, nie ma znaczenia jakie rozszerzenie ma plik, moze miec nawet .PomozHaliniePrac a moze nie miec wogole.

jesli dobrze zrozumialem zmienna $newstyle pochodzi z formularza, w takim razie poczytaj sobie o register_globals.
hmmm
a skad ty? bo tez jestem ciekaw :]

Cytat
moze, nie moze - tego nie wiem, ale style mozesz umiescic w pliku z rozszerzeniem *.php jak cos ;P

dla nierozumiejacych - wydaje mi sie, ze wyraznie napisalem " NIE WIEM ", wiec w czym problem?
zasugerowalem tylko jedno z mozliwych rozwiazan, a napisanie " NIE WIEM " sugeruje, ze moga byc jeszcze inne, np. Twoje, wiec w czym problem?

edit: poprawilem literowke.

a poza tym, to nieladnie pisac w ten sposob
Cytat
skad Tys sie urwal
sam kiedys dostalem ostrzezenie, nie rozumiem tego regulaminu ...
borec
jak NIE WIESZ to PO CO sie odzywasz? btw co by zrobil z tym plikiem .php? nie uzyl by tego jako css'a bo serwer bedzie mu to parsowal i wywal bledy zamiast stylow

edit: nieladnie... nieladnie jest pisac takie bzdury i wprowadzac innych w blad
hmmm
a czy moje rozwiazanie jest zle?

a poza tym, sam mam css w pliku z rozszerzeniem *.php i jakos dziala mi bez zarzutu, a zrobilem tak, tylko dlatego, ze generuje losowo kolory ...
borec
jestes madrzejszy. eot
xarr
I wczytujesz style css z pliku php? To, ze ci to dziala nie znaczy ze jest to poprawne. Generowanie losowych kolorow mozna rozwiazac na wiele sposobow. Mozesz tez nawet generowac sobie pliki css, zapisywac w nich dane generowane z poziomu php, a na koncu wczytywac stworzony plik .css pehapem lub nawet sobie losowac jaki arkusz wczytac. Nieco finezji smile.gif Jak to zrobic? Pomysl, a napewno wpadniesz, ew. uzyj searcha bo wczytywanie css z pliku bylo poruszane nie raz i tu i na google biggrin.gif
Fipaj
Żeby wygenerować kod CSS na podstawie formularza w pliku .php robimy coś takiego:
  1. <style>
  2. body {
  3. <?php
  4. print 'color:' . $_POST['kolor'] . ';';
  5. ?>
  6. }
  7. </style>


Proste, nie?
hmmm
hehe. no to poprosze o jedno z rozwiazan, ktore spelnia moje warunki - tak z ciekawosci, bo lubie sie uczyc ...

1. chce generowac losowy kolor.
2. nie chce umieszczac styli w naglowku pomiedzy <head> i </head>, czyli include odpada i bezposrednie umieszczenie ich tam.
3. nie chce zmieniac konfiguracji i dodawac pliki z rozszerzeniem *.css do listy plikow wykonujacych skrypty php.
4. nie umiem bawic sie funkcjami na plikach - odczyt, zapis, itd.

finezja? po co, skoro dziala i jest poprawne. nie chodzi przeciez o to, by sobie utrudniac zycie ..., czy moze jednak?

pokaz mi prosze cos, gdzie jest mowa, ze jest to niepoprawne.

@fipaj, a to do kogo i do czego? bo nie rozumiem aluzji 'proste, nie?'
umiem poslugiwac sie zmiennymi globalnymi na tym poziomie ...
Fipaj
Myślę, że umieszczenie pliku CSS między znacznikami <head> nie jest wcale takim złym pomysłem.

@hmmm: ja tylko wytłumaczyłem, jak prosto można odczytać wartość. Po tym zapisanie jej będzie drobnostką
hmmm
no umieszczenie css pomiedzy <head> i </head> nie jest zle, ale ja chce trzymac css w oddzielnym pliku.

a teraz wracajac do twojego rozwiazania:
przypuscmy, ze tworze sobie forlumarz, badz cos innego, co bedzie mi przesylalo zmienna $kolor. no niech to bedzie juz formularz.
i teraz co?
mam umiescic kod php wyswietlajacy mi wartosc zmiennej kolor w pliku z rozszerzeniem *.css? niby jak - pytam sie, skoro *.css nie obsluguja domyslnie php. to po pierwsze.
a drugie, jezeli mialbym jednak dodane pliki z rozszerzeniem *.css do listy plikow obslugujacych php, to po co mialbym przesylac zmienna $kolor formularzem, a nie po prostu wygenerowac ja w pliku css?
logiczne, nie? cool.gif
crash
styl.php:
  1. <?php
  2. header('Content-type: text/css'); // bez tego FF nie łapie pliku jako CSS...
  3.  
  4. ?>
  5. body {
  6.    color: #<?= dechex(rand(0, 255)).dechex(rand(0, 255)).dechex(rand(0, 255)); ?>;
  7. }
  8. ipt itd...

I masz piekny losowy kolor... Tylko po co? tongue.gif

Dołączasz do pliku:
  1. <link href="style.php" rel="stylesheet" type="text/css">

A to czy ma być > czy /> zależy już od typu dokumentu...
hmmm
  1. <?php
  2. header('Content-type: text/css');
  3. ?>
to mi sie przyda, dziekuje winksmiley.jpg

hehe, a losowy to nie chodzi mi o generowanie koloru z calej palety, ale tylko z posrod okreslonych przeze mnie.
robie to w ten sposob:
  1. <?php
  2. $liczba = rand(1,5);
  3. switch ($liczba) {
  4.         case '1':
  5.         $kolor = '#d94268;';
  6.         break;
  7.         case '2':
  8.         $kolor = '#9d8772;';
  9.         break;
  10.         case '3':
  11.         $kolor = '#631c22;';
  12.         break;
  13.         case '4':
  14.         $kolor = '#70aaa4;';
  15.         break;
  16.         case '5':
  17.         $kolor = '#008a59;';
  18.         break;
  19. }
  20. ?>
i potem gdzies tam sobie w stylu umieszczam <?=$kolor;?>

i wszystko juz mialem zrobione, no tylko musze teraz dodac to, co napisales (@crashu) ;P
xarr
W tej intencji sprawdzilem jeszcze raz co mowia na w3c i faktycznie... nie jest to niepoprawne, ale nie jest to zalecane. Style powinny byc wczytywane z pliku albo z rozszerzeniem .css, albo bez rozszerzenia wogole. Jest to tylko niezalecane, wiec... do as ya wish.

Z drugiej strony mozesz tez poczytac o tym typie tj. text/css i dowiedziec sie jak to dziala i po co on wogole jest. Puki co mozesz wiec tak wczytywac wszystko i ci zatyra, a validator pewnie ku uciesze tworcy wyswietli "zielone swiatlo". Coz... sztywne definiowanie odpowiednich znacznikow, atrybutow i nacisk na poprawna semantycznie strykture kodu jest dosyc mlodym trendem w temacie html`a, ale wazne ze proces juz sie rozpoczol smile.gif

Pozdrowka
hmmm
dzieki smile.gif
dr_bonzo
  1. <?php
  2. $liczba = rand(1,5);
  3. switch ($liczba) {
  4. case '1':
  5. $kolor = '#d94268;';
  6. break;
  7. case '2':
  8. $kolor = '#9d8772;';
  9. break;
  10. case '3':
  11. $kolor = '#631c22;';
  12. break;
  13. case '4':
  14. $kolor = '#70aaa4;';
  15. break;
  16. case '5':
  17. $kolor = '#008a59;';
  18. break;
  19. }
  20. ?>

OMG: jak widze cos takiego to mi rece odpadaja
do takich rzeczy sa TABLICE:
  1. <?php
  2. $kolory = array();
  3. $kolory[] = '#d94268';
  4. $kolory[] = '#9d8772';
  5. $kolory[] = '#631c22';
  6. // itd.
  7.  
  8. $losowy_kolor = array_rand( $kolory );
  9. ?>

Nie jest prosciej?
Fipaj
Moim zdaniem można jeszcze ten kod uprościć:
  1. <?php
  2.  
  3. $kolory = array('#d94268', '#9d8772', '#631c22');
  4. $losowy_kolor = array_rand ($kolory);
  5.  
  6. ?>


dwie linijki kodu zamiast ośmiu
hmmm
o tablicach pomyslalem dopiero po wklejeniu, ale nie mialem czasu na napisanie skryptu i edytowanie posta tongue.gif
dzieki za rade i pomoc smile.gif
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.