Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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í 3-[3-[

<?
$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?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Já bych to také dával do dalšího sloupečku v tabulce uživatelů/registrovaných v databázi. Prostě by…
Kráťa 15.01.2008 17:30
Kráťa
Jenže to přihlašování ještě nemám domakaný. Po přechodu na jinou stránku přihlášení zmizí. nový
marekdrtic 15.01.2008 19:18
marekdrtic
:-D:-DUž to je domakaný zapomněl jsem u některých dokumentů nastartovat session "kouzelným" příkazem… nový
marekdrtic 15.01.2008 19:26
marekdrtic
Já ti to sem chtěl zrovna pastnout sessions.php a už vlastně zbytečně. nový
Kráťa 15.01.2008 19:32
Kráťa
I tak díky. Jinak Kráťo, nemýlil jsem se, když jsem o Tobě řekl, že si webmaster. :-):beer::beer::be… nový
marekdrtic 15.01.2008 19:36
marekdrtic
Já jsem spíše webučeň. Tady na poradně by se našlo lidu, ke kterým chodím na rozumy, to bys koukal. nový
Kráťa 15.01.2008 19:40
Kráťa
Já jsem spíše webučeň. To já tak trošku taky :-) nový
marekdrtic 15.01.2008 19:48
marekdrtic
Miluji slovní hříčky. Jelikož mé křesní jméno končí na -slav budu webSLAVEk :-) nový
Kráťa 15.01.2008 20:05
Kráťa
první problém: V databázi je v sloupečku "bgcolor" vepsáno jako "blue" <? $bgcolor=$_SESSION['bgcol… nový
marekdrtic 15.01.2008 19:47
marekdrtic
blbě je Golden, správně je PSPad. :-) Tam nemusí být echo? <BODY bgcolor=" <?php echo $bgcolor ?> ">… nový
Kráťa 15.01.2008 19:55
Kráťa
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… nový
Kráťa 15.01.2008 20:09
Kráťa
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ž bud… nový
marekdrtic 15.01.2008 20:29
marekdrtic
Hurá jsem se něco zase přiučil :-) Potřebujete nějakou změnu v tabulce a nevíte jak to naprogramovat… nový
marekdrtic 16.01.2008 15:32
marekdrtic
Takže poslední problém před zdárným koncem: <?php session_start(); // startujeme session. ?> <? $ba… nový
marekdrtic 16.01.2008 16:14
marekdrtic
Tak to si ji asi budes muset vytáhnout selectem, ne? Třeba: SELECT barva FROM uzivatele WHERE uziva… nový
MaSo 16.01.2008 16:19
MaSo
session_start(); // startujeme session. require "db.php"; // pripojime se k databazi $jmeno=trim($_S… nový
marekdrtic 16.01.2008 16:48
marekdrtic
Nevím teda vůbec, jak fungují SESSIONs v PHP, ale jsi si jistý, že se to tahá s databáze? To se mi n… nový
MaSo 16.01.2008 17:01
MaSo
Tahá tahá. Jak by potom mohlo fungovat toto ::) viz 3. řádek. Tohle funguje <? $barva=trim($_POST['… nový
marekdrtic 16.01.2008 17:03
marekdrtic
No jistě, že to funuje, když tam používáš SQL příkaz UPDATE, až ten komunikuje s databází!!! Než něc… nový
MaSo 16.01.2008 17:10
MaSo
Po otevření zdrojového kódu to vyplivne toto: <BODY bgcolor=" Resource id #5 " > ::)::)::) Edit: Al… nový
marekdrtic 16.01.2008 17:22
marekdrtic
No, a co vlastně v té databázi ve sloupečku bgcolor u uživatele, kterého reprezentuje proměnná $jmen… nový
MaSo 16.01.2008 17:26
MaSo
[http://img260.imageshack.us/img260/1386/obrazekks0. jpg] nový
marekdrtic 16.01.2008 17:36
marekdrtic
Přepni se v tom PHPmyAdminu na kartu SQL a zkus tam zadat toto: SELECT `bgcolor` FROM `uzivatele` W… nový
MaSo 16.01.2008 17:44
MaSo
ano, vypsalo nový
marekdrtic 16.01.2008 17:46
marekdrtic
No vídíš, takže toto session_start(); // startujeme session. require "db.php"; // pripojime se k da… nový
MaSo 16.01.2008 17:50
MaSo
:i: Oh, měl bych vyměnit cedník za normální hlavu :-D. Nechybí mi tam náhodou MySQL_Fetch_Array? Ten… nový
marekdrtic 16.01.2008 18:03
marekdrtic
Zkus to takhle: $result = mysql_query("SELECT `bgcolor` FROM `uzivatele` WHERE `jmeno` = '$jmeno'")… nový
MaSo 16.01.2008 18:15
MaSo
Juhůůůůůů P.S. Až to trošku víc rozjedu, budeš mým pomocným adminem. OK? nový
marekdrtic 16.01.2008 18:23
marekdrtic
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í… nový
marekdrtic 16.01.2008 18:26
marekdrtic
Děkuji všem hlavně pak MaSovi, který mi velmi pomohl až do zdárného cíle. Po registraci na Vás čeká… nový
marekdrtic 16.01.2008 20:15
marekdrtic
Ok, jdu se pokusit ti to hacknout...:-D nový
MaSo 16.01.2008 20:18
MaSo
Tohle je ten Easter Egg? :-D Parse error: parse error in /3w/borec.cz/m/mrk/reg_zpracuj.php on line… nový
MaSo 16.01.2008 20:22
MaSo
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 v… nový
marekdrtic 17.01.2008 07:11
marekdrtic
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 o… poslední
MaSo 17.01.2008 20:21
MaSo

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š".

Takže poslední problém před zdárným koncem:

<?php
session_start(); // startujeme session.
?>

<?
$barva=$_SESSION['bgcolor']
?>

<BODY bgcolor="<?php $barva ?>">

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.

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:

echo mysql_query("SELECT `bgcolor` FROM `uzivatele` WHERE `jmeno` = '$jmeno'");

Nebo se to možná musí takto:

$barvazdat = mysql_query("SELECT `bgcolor` FROM `uzivatele` WHERE `jmeno` = '$jmeno'");
echo $barvazdat;

No vídíš, takže toto

session_start(); // startujeme session. 

require "db.php";     // pripojime se k databazi

$jmeno=trim($_SESSION['login']);
$barvapozadi = mysql_query("SELECT `bgcolor` FROM `uzivatele` WHERE `jmeno` = '$jmeno'");
echo ($barvapozadi);

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š.

Zkus to takhle:

$result = mysql_query("SELECT `bgcolor` FROM `uzivatele` WHERE `jmeno` = '$jmeno'");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        printf ("ID: %s  Barva: %s", $row["id"], $row["bgcolor"]);
    }

P.S.: Já se při tobě jestě naučím PHP...:-D

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. :-D 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...:-)

Zpět do poradny Odpovědět na původní otázku Nahoru