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

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