Welkom, Gast. Je bent niet ingelogd.

PHPTut voor achtergrond

Door Robertenzo op 25 Oct 2007, 12:19

Ik wil eventjes een tut gegeven dat de mensen ZELF de achtergrondkleur van je site kunnen bepalen.

Plaats dit bovenin je pagina

1
2
3
4
5
<? 

$achtergrond=$_POST[\'achtergrond\']; 

?>

Plaats dit ergens in je pagina, niet in een frame!!

1
2
3
4
5
6
7
8
9
<form name=\"achtergrond\" action=\"\" method=\"post\">
  <select name=\"achtergrond\">
  <option value=\"#FFFFFF\">wit</option>
  <option value=\"#000000\">zwart</option>
  <option value=\"#0000FF\">blauw</option>
  </select>
<input name=\"check\" value=\"verander!\"
 type=\"submit\">
</form>

de body moet zo;

1
<body bgcolor=\"<? echo\"$achtergrond ?>\">

je kan altijd meer toevoegen.
ps. ik ben een beginner in PHP, maar dit heb ik zelf gemaakt. en niet geript uit opensource dingentjes ofzo.

Voor exemplaar

Nanne
Doe een wens!
Geplaatst op: 27 Oct 2007, 00:26

Thomaz schreef:

Ik zal morgen eens kijken als mijn externe hdd het doet, dan laat ik een (mooi) javascriptje der voor zien, ooit een x gemaakt voor me portfolio.

Even uit mijn hoofd.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<script language=\"javascript\">
    function CKleur(Kleur)
    {
        document.cookie = \'kleur=\'+Kleur+\';\';
        document.bgColor  = Kleur;
    }
    function ChangeColor(Kleur)
    {
        switch (Kleur)
        {
            case \"#FFFFFF\":
                CKleur(Kleur);
            break;
            case \"#000000\":
                CKleur(Kleur);
            break;
            case \"#0000FF\":
                CKleur(Kleur);
            break;
            default:
                CKleur(\"#FFFFFF\");
        }
    }
</script>
<select>
    <option onclick=\"ChangeColor(\'#000000\')\" style=\"background: #000000; color:#FFFFFF;\">Zwart</option>
    <option onclick=\"ChangeColor(\'#0000FF\')\" style=\"background: #0000FF; color:#FF0000;\";>Blauw</option>
    <option onclick=\"ChangeColor(\'#FFFFFF\')\" style=\"background: #FFFFFF; color:#000000;\">Wit</option>
</select>

Thomaz
'
Geplaatst op: 26 Oct 2007, 23:33

Ik zal morgen eens kijken als mijn externe hdd het doet, dan laat ik een (mooi) javascriptje der voor zien, ooit een x gemaakt voor me portfolio.

Joris
moderator
Geplaatst op: 26 Oct 2007, 19:41

Badeendje schreef:

[...]

- $ip niet ge-escaped, foei.
- Order by id DESC, wtf :\') als het goed is heb je maar 1 resultaat per ip he, als het ip al voorkomt in de database hoor je te updaten, bij 1 resultaat moet je helemaal niet orderen
- waarom $_SERVER[\'REMOTE_ADDR\'] in een var $ip zetten, en nite gewoon meteen in de query gebruiken?
- \"SET kleur = \'\".$_POST[\'kleur\'].\"\'\", oke, Escapen like d0h?

Dat is waar, orderen hoeft idd niet, foutje (maar geen zin om te verbeteren

Waarom zou je het IP escapen? Hij kan nl. nergens veranderd worden
En escapen bij post kleur heb ik niet gedaan, lees onderaan mijn post met daarin alle scripting

Edit: ik weet zeker dat ik dat erbij gezet heb maar het is plots weg ?! maarja

[Laatst bewerkt door Joris op vrijdag 26 oktober 2007, om 19:43]
Badeendje
Pompehdompehdom
moderator
Geplaatst op: 26 Oct 2007, 18:11

Joris schreef:

En je kan het zelfs via een database PER PERSOON doen, dat is beter dan een cookie aangezien die weer kan verlopen:

Het inserten
[...]

Dit is toch wat beter

- $ip niet ge-escaped, foei.
- Order by id DESC, wtf :\') als het goed is heb je maar 1 resultaat per ip he, als het ip al voorkomt in de database hoor je te updaten, bij 1 resultaat moet je helemaal niet orderen
- waarom $_SERVER[\'REMOTE_ADDR\'] in een var $ip zetten, en nite gewoon meteen in de query gebruiken?
- \"SET kleur = \'\".$_POST[\'kleur\'].\"\'\", oke, Escapen like d0h?

Thomaz
'
Geplaatst op: 25 Oct 2007, 22:50

Ik vind dat eigenlijk zo bagger, om met php de achtergrond te regelen. Een refresh, terwijl het gewoon simpelweg via een javascript kan.

Joris
moderator
Geplaatst op: 25 Oct 2007, 22:29

En je kan het zelfs via een database PER PERSOON doen, dat is beter dan een cookie aangezien die weer kan verlopen:

Het inserten

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

// Database connectie hier, doe dit zelf maar invullen hier

// Hier het script van die ene gast die die \"tut\" gemaakt heeft


// Script

$ip=$_SERVER[\'REMOTE_ADDR\'];

$query=mysql_query(\"INSERT INTO colors (kleur, ip) VALUES (\'\".$kleur.\"\',\'\".$ip.\"\')\");




?>

En de achtergrond gebruiken oid:

1
2
3
4
5
6
7
<?php

$query=mysql_query(\"SELECT kleur FROM colors WHERE ip = \'\".$ip.\"\' ORDER BY id DESC LIMIT 1\");
$sql = mysql_fetch_assoc($query);
$kleur = $sql[\'kleur\']; // En $kleur moet je dan gaan verwerken uiteraard

?>

Hij pakt de kleur die het laatste in de DB is gezet PER IP... Maar als iemand nu meerdere keren de kleur veranderd staan er meerdere query´s in de tabel, en daardoor raakt hij te vol... Dus daarom kun je beter dit doen:

1
2
3
4
5
6
7
8
9
10
$query=mysql_query(\"SELECT kleur FROM colors WHERE ip = \'\".$ip.\"\' ORDER BY id DESC LIMIT 1\");

if (mysql_num_rows($query) {
 $query=mysql_query(\"UPDATE colors SET kleur = \'\".$_POST[\'kleur\'].\"\' WHERE ip = \'\".$ip.\"\'\"); // Geen zin om dit script nog te beveiliging tegen SQL & HTML injections etc.... Dit moet je zelf maar doen met vb. htmlspecialchars() en mysql_real_escape_string()

}else{

// hier de query voor het inserten, zie ergens boven in deze post

}

Dit is toch wat beter

BaXiess
Geplaatst op: 25 Oct 2007, 16:25

Robertenzo schreef:

[...]

Ik ben egt een noep in PHP .
Meestal edit ik opensource dingen


als je een \'noep\' bent, waarom post je dan een \'tut\'??

Robertenzo
Geplaatst op: 25 Oct 2007, 16:04

Badeendje schreef:

Nog nooit gehoord van HTML injection ? ga dat dan maar is leren Robert, want dit is wel erg onveilig :\')

Ik ben egt een noep in PHP .
Meestal edit ik opensource dingen

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 25 Oct 2007, 15:22

Nog nooit gehoord van HTML injection ? ga dat dan maar is leren Robert, want dit is wel erg onveilig :\')

Nanne
Doe een wens!
Geplaatst op: 25 Oct 2007, 14:10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$Kleuren = array(\"#FFFFFF\" => \"Wit\", \"#000000\" => \"Zwart\", \"#0000FF\" => \"Blauw\");
if($_POST[\'submit\'])
{
    if($Kleuren[$_POST[\'achtergrond\']])
    {
        set_cookie(\"Achtergrond\", $_POST[\'achtergrond\']);
    }
}
if($Kleuren[$_COOKIE[\'Achtergrond\']])
{
    $Achtergrond=$_COOKIE[\'Achtergrond\'];
}
?> 
<body bgcolor=\"<?php echo $Achtergrond; ?>\">
<form action=\"#\" method=\"post\"> 
  <select name=\"achtergrond\"> 
      <?php
    foreach($Kleuren as $Kleurcode => $Kleurnaam)
    {
        echo \'<option value=\"\'.$Kleurcode.\'\">\'.$Kleurnaam.\'</option>\';
    }
    ?>
  </select> 
<input name=\"submit\" value=\"Verander\" type=\"submit\"> 
</form>
</body>

Dharion
Eat fur, bonehead!
Geplaatst op: 25 Oct 2007, 13:19

En ik haal liever mn script ergens anders vandaan :\')

Riciboy
GewoonBriljant
Geplaatst op: 25 Oct 2007, 12:48

Ja en waar word ingesteld welke kleur het is? Overigens is dit niet eens een tut maar een scriptje wat nog geen plek waard is omdat het zó simpel is

Christan
Pwn erd
Geplaatst op: 25 Oct 2007, 12:27

En nou nog met javascript zodat je je site niet hoeft te refreshen, en de Knop weghalen.

BlackWhizz
Je moeder
Geplaatst op: 25 Oct 2007, 12:26

leuk hoor, kunnen ze je site ook metteen verneuken. Ik zou wel ff kijken of het 6 letters lang is en ook nog een goede Hex code.

📫

Nieuw privébericht

🔥

Registreren


Login