

PHP - cookie a barva pozadí stránky - jak to udělat
Ahoj, jak jste si možná už někteří všimli, na mých webovkách ( www.mrk.borec.cz ) přibyla možnost registrace a celé jsou ve formátu php, takže už není problém doprogramovávat. V uživatelském rozhraní, které je bohužel uvolněno jen pro registrované, je možnost downloadu a seznamu členů. Rád bych tam přidal možnost změny barvy pozadí a barvy toho barevného přechodu (to by bylo asi jenom 20 možností). Narazil jsem ale na problém. Jak to udělat, aby se to uložilo do cookie a potom se to znova vyvolalo. Už to mám nějak načrtnuto:
1.soubor=(asi)funguje
<form action="test.php" method="post">
<input name="pozadi" type="text" value="#">
<input type="submit" value="odešli">
</form>
2.soubor=možná funkční
<?
setcookie ("cookie", "echo $pozadi;");
$bl="test_vysledek.php";
header("location: $bl"); // přesměrování na výsledek
?>
3.soubor=nefunkční
<?
$zkouska = $_COOKIE['cookie'];
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1250">
<TITLE>Bez titulku</TITLE>
</HEAD>
<BODY bgcolor="<? echo $zkouska; ?>">
</BODY>
</HTML>
Nevíte co s tím?
Ahoj.
Ukládat uživatelské nastavení do cookies není dobré, protože:
- Uživatel použivající více počítačů bude zmaten
- Vymazaním cookies (z jakéhokoliv důvodu) přijde o všechna nastavení.
Proto je toto řešeno (např. tady na poradně) zápisem do databáze na straně serveru.
Ale když to máš takto vymyšlené, tak to tak můžeš udělat.
Získáš další zkušenosti.
Databázi MySQL už mám zabranou pro registraci uživatelů. Ty stránky nejsou pro blbce ale pro trošku pokročilejší(V ŽÁDNÉM PŘÍPADĚ NEMYSLÍM TEBE!!!)
Co tím chtěl autor říci
- Uživatel použivající více počítačů bude zmaten
- Vymazaním cookies (z jakéhokoliv důvodu) přijde o všechna nastavení.
Trošku pokročilejší uživatel musí vědět, že při přechodu na jiný PC tam nebudou nastavení a při smazání cookies taktéž
Pokud uživatele upozorníš, že uživatelské nastavení je ukládáno do cookies na straně klienta. Protože ani sebezkušenější uživatel neví, že si toto ukládáš do cookies. Navíc zkušený uživatel ti radí, abys to uložil do sloupečku v databázi. Nezkušený uživatel ani neví, co to cookies jsou.
LOL!
Tak schválně, zašifruj nějaké třeba i čtyř znakové slovo do MD5, pak ti sem napíšu, kolik sekund mi trvalo na něj přijít...
to je oblbovačka
, jinak z Wikipedie
Nechápu, co to má za smysl. Píšeš, že žádná UnMD5 fce není, ale je. Každá šifra se dá zlomit, to je zákon šifrování...
Jinak nevíš, jak to udělat?
<BODY bgcolor="<? echo $zkouska; ?>">
Tohle nefunguje. Potřeboval bych dostat obsah toho cookie do pole bgcolor="sem"
To nevím, v PHP se nevyznám...
Neví nikdo jiný?
Ak je cookie dobre nastavený, tak ten kód by mal fungovať.
- S akými parametrami voláš funkciu setcookie v PHP?
- Skontroluj si vo svojom prehliadači, ako máš nastavené cookie pre svoju stránku.
Já bych to také dával do dalšího sloupečku v tabulce uživatelů/registrovaných v databázi. Prostě by tam měl jen údaj např "blue" (sloupeček s názvem pozadi) a načetlo by se mu po přihlášení "blue".
Nějaké sušenky jsou na tohle myslím nevhodné. Co bys do toho nastavil, aby měl blue i registrovaný, co si to nastaví a vrátí se za půl roku? Platnost rok? Když to bude v databázi, může přijít kdykoli a odkudkoli, přihlásí se a má "blue".
Do sušenky možná přihlašovací údaje, aby se s tím nemusel vypisovat.
Přidat sloupeček do tabulky a udělat ukládání nastavení pozadí by nemělo být o moc více práce jako to, s čím se "pereš".
Taky bych to tak udělal...
Jenže to přihlašování ještě nemám domakaný. Po přechodu na jinou stránku přihlášení zmizí.
Edit: HURÁ NA DATABÁZI
Já ti to sem chtěl zrovna pastnout
sessions.php
a už vlastně zbytečně.
I tak díky.



Jinak Kráťo, nemýlil jsem se, když jsem o Tobě řekl, že si webmaster.
Já jsem spíše webučeň. Tady na poradně by se našlo lidu, ke kterým chodím na rozumy, to bys koukal.
To já tak trošku taky
Miluji slovní hříčky. Jelikož mé křesní jméno končí na -slav budu
webSLAVEk
první problém:
V databázi je v sloupečku "bgcolor" vepsáno jako "blue"
Co je blbě? V GOLDEN mi to ten otazník na uzavření php na konci ukazuje modře. Nemůže to být problém?
blbě je Golden, správně je PSPad.
Tam nemusí být echo?
<BODY bgcolor=" <?php echo $bgcolor ?> ">
Já tomu PHP také rozumím jako naše Kordula thaištině...
Já psal také jen <? a pak mi něco někde nechodilo, přitom jinde ano a co mi to dalo práce, než jsem vyštudoval, že tam musí být <?php a chodí to i tam kde před tím nee...
Konkrétně na Webuzdarma to chodilo a na bubakov.net ne.
Se na to kouknu zítra. Nejdříve udělám přidání dat do databáze a až mi bude tohle chodit, tak už budu dělat to pozadí. A pokud jde o ty slovní hříčky, tak protože se jmenuji Novák, tak budu:
webOVÁK
Hurá jsem se něco zase přiučil
Potřebujete nějakou změnu v tabulce a nevíte jak to naprogramovat? V PHPMyAdmin uděláte ten příkaz ručně a potom ten kód, co je napsaný pod "nadpisem" SQL dotaz vložíte do
Takže poslední problém před zdárným koncem:
Tag BODY prosím neberte jako součást kódu ohraničenou <?php ?>
Rád bych, aby se z databáze nahrála barva(např. BLUE) a ta se uložila <BODY bgcolor="sem">. Jak to prosím Vás udělat? Budu vděčný za jakoukoliv pomoc.
Tak to si ji asi budes muset vytáhnout selectem, ne? Třeba:
MySQL SELECTy neumím, takže budeš muset změnit ten syntax...
A co takhle jako to tahám obvykle?
Nevím teda vůbec, jak fungují SESSIONs v PHP, ale jsi si jistý, že se to tahá s databáze? To se mi nezdá, podle mě ten SELECT bude nutný...
Tahá tahá.
viz 3. řádek. Tohle funguje
Jak by potom mohlo fungovat toto
No jistě, že to funuje, když tam používáš SQL příkaz UPDATE, až ten komunikuje s databází!!! Než něco programuješ, nastuduj alespoň základní věci!
Pro vypsání z databáze, by mohlo fungovat toto:
Nebo se to možná musí takto:
Po otevření zdrojového kódu to vyplivne toto:
<BODY bgcolor=" Resource id #5 " >


Edit: Alespoň nějaký pokrok, něco z tý databáze leze
No, a co vlastně v té databázi ve sloupečku bgcolor u uživatele, kterého reprezentuje proměnná $jmeno, máš? Jakou máš vubec strukturu té tabulky? Co je primární klíč?
Přepni se v tom PHPmyAdminu na kartu SQL a zkus tam zadat toto:
Mělo by to vypsat "D0D0D0".
ano, vypsalo
No vídíš, takže toto
by v PHP souboru mělo dělat to samé, pokud se přihlásí uživatel s tím jménem, co je v databázi...
Nastuduj zádklady SQL, bez toho se nehneš.
Myslím, že asi nějak takhle(je to na 99% blbě):
while ($zaznam = MySQL_Fetch_Array($barvapozadi))
{
$bgcolor=$zazna m["5"];...
}
Zkus to takhle:
P.S.: Já se při tobě jestě naučím PHP...
Juhůůůůůů
P.S. Až to trošku víc rozjedu, budeš mým pomocným adminem. OK?
Jo a mám ještě dotaz
Funguje mi to, ale jak to mám přesně napsat do <BODY bgcolor=" sem ">, aby s tím nebyly nikde problémy?
Děkuji všem hlavně pak MaSovi, který mi velmi pomohl až do zdárného cíle. Po registraci na Vás čeká ukrytý Easter Egg, který jsem udělal sám
Edit: Bubák to není
Ok, jdu se pokusit ti to hacknout...
Tohle je ten Easter Egg?
nn už je to good já jsem měnil všude index_soubory/pozadi.jpg za ten kód a ze seznamu jsem zapoměl vyřadit reg_zpracuj.php Můžeš hackovat ale buď tak hodný a nic mi v databázi nerozházej. OK?
Ten easter egg je změna pozadí např. z bílé na červenou, modrou......
Tak jsem ti to hacknul, teďka každý kdo se přihlásí a pak klikne na stránku s výhodami, bude muset odkliknout hlášku, že to bylo hacknuto.
Popřemýšlej, kde si udělal chybu. Je docela nebezpečné. Věřím, že IgorK nebo MM.. by ti s tím udělali krátký proces...