Jump to content

PHPSuperNewb

Members
  • Posts

    40
  • Joined

  • Last visited

    Never

Everything posted by PHPSuperNewb

  1. ok, so for some reason as long as my icon was called blood.ico inside my folder it would have a white background. I changed it to anothername.ico inside that folder and now all of a sudden it works in both browsers :S? Really strange but solved? I really don't get it :S
  2. Hello everyone, I have no idea if this is the right forum to ask this so please move this if nessecary. I have a problem with icons being displayed in my url bar, tabs and favorites. I've created an icon with a transparant background using alpha channels. I did this so that the "famous" white background behind an icon gets removed. The problem however is that my icon does get displayed properly in firefox but not in internet explorer. I've put the .png I used to create the .ico and 2 pictures of how the icon looks inside firefox and internet explorer in the attachments. As you can see in internet explorer it displays a white background however in firefox it doesn't. My .ico file is converted through an online png to ico converter and is 16x16. I used the following html to add the icon to my url and tab bar: <link rel="icon" href="templates/afbeeldingen/blood.png" type="image/png"/> <link rel="shortcut icon" href="templates/afbeeldingen/blood.ico" /> I've read somewhere that putting the <link rel="icon"> infront of the <link rel="shortcut icon"> would make it so that it'll work for different browsers. I'm not sure about this. If anyone could explain to me what I'm doing wrong I highly appreciate it. [attachment deleted by admin]
  3. thanks everyone for your great help, I finally found a solution and it works I'm happy right now
  4. This is my view_manager: <?php class view_beheer { private $tpl; function __construct() { } function toonStatus() { $status = file_get_contents("templates/status.tpl"); $this->tpl = str_replace("%content%", $status, $this->tpl); } function toonLogin() { $this->tpl = file_get_contents("templates/login.tpl"); } function toonHome() { $this->tpl = file_get_contents("templates/home.tpl"); } function toon() { echo $this->tpl; } } ?> In my login I call my view object to show my templates. The view object is created in my action_handler. <?php abstract class Actie_Handler { protected $sessie; protected $view; protected $dbh; function construct() { $this->sessie=new Sessie(); $this->view=new view_beheer(); $this->dbh=new DatabaseHelper(); } abstract function secured_handler(); } ?> It seems like I"m using file_get_contents() :S The strange thing is that it did display properly half a week ago And I have no idea that I had changed that since then :S might something like this be possible instead? (Haven't tryed it though): <?php $string = get_include_contents('templates/status.tpl'); $this->tpl = str_replace("%content%", $string, $this->tpl); function get_include_contents($filename) { if (is_file($filename)) { ob_start(); include $filename; return ob_get_clean(); } return false; } ?>
  5. I have this file called class.Handler_Login.php <?php class Handler_Login extends Actie_Handler { function __construct($actie_handle) { parent::construct($actie_handle); $this->actie = $actie_handle; } function secured_handler() { if ($this->sessie->check_sessie() == false) { if (isset($_POST['r'])) { $paswoord = $_POST['paswoord']; $gebruikersnaam = $_POST['gebruikersnaam']; $login = $this->dbh->Login($gebruikersnaam, $paswoord); if ($login == true) { $this->sessie->set('gebruikersnaam', $gebruikersnaam); $this->view->toonHome(); $this->view->toon(); exit; } if ($login == false) { echo "U bent niet ingelogd"; exit; } } if (!isset($_POST['r'])) { $this->view->toonLogin(); $this->view->toon(); exit; } } if ($this->sessie->check_sessie() == true) { $this->view->toonHome(); $this->view->toon(); } } } ?> and this file called login.tpl: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Snitch</title> <link rel="stylesheet" type="text/css" href="templates/css/snitch1440x900.css" /> </head> <body> <div id="login-achtergrond"> <div id="login"> <form action="." id="loginform" name="login" method="post"> <input type="hidden" name="actie" value="Login"/> <input type="hidden" name="r" value="<?php echo microtime();?>"/> <input type="text" id="gebruikersnaam" name="gebruikersnaam" value="" style="opacity:0.7;filter:alpha(opacity=70)"/> <input type="paswoord" id="paswoord" name="paswoord" value="" style="opacity:0.7;filter:alpha(opacity=70)"/> <input id="aanmelden" type="submit" name="submit" value="" style="opacity:0;filter:alpha(opacity=0)"/> </form> </div> <div id="registreer"> </div> </div> </body> </html> About half a week ago it displayed the microtime inside my browser like it should. I have no idea what I have changed since then to make it not work anymore. It doesn't display anything. So I debugged my script through nusphere and it told me that the variable r contains "<?php echo microtime();?>" instead of the actual microtime. Thats how I've found out about this. If you want I can post the entire script? Allthough it doesn't have a lot to do with it I think :S EDIT: Hmmm I remember myself saving the variable r inside a session and later returned it inside my script.. I think it got something to do with that... Not sure though :S Testing it right away
  6. My form as in the html that I just posted or the login page? if you meant what I have posted then no its a .tpl file if it's the login page then yes. what would I need to do to make sure it works in the .tpl file? and yes I'm browsing to the url.
  7. ok so this problem has been laughing at me for quite some time now :-\ I tryed using some inline php in a form to pass it to my login script. The problem is that whenever the form gets submitted the variable r doesn't contain the actual microtime but it contains the inline php as a string: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Snitch</title> <link rel="stylesheet" type="text/css" href="templates/css/snitch1440x900.css" /> </head> <body> <div id="login-achtergrond"> <div id="login"> <form action="." id="loginform" name="login" method="post"> <input type="hidden" name="actie" value="Login"></input> <input type="hidden" name="r" value="<?php echo microtime();?>"></input> <input type="text" id="gebruikersnaam" name="gebruikersnaam" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input type="password" id="paswoord" name="paswoord" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input id="aanmelden" type="submit" name="submit" value="" style="opacity:0;filter:alpha(opacity=0)"> </form> </div> <div id="registreer"> </div> </div> </body> </html> the $_POST['r']; contains "<?php echo microtime();?>" instead of for example: 0.53192500 1305636839 does someone know what I am doing wrong here? I also tryed doing it like this: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Snitch</title> <link rel="stylesheet" type="text/css" href="templates/css/snitch1440x900.css" /> </head> <body> <div id="login-achtergrond"> <div id="login"> <form action=".r=<?php echo microtime();?>" id="loginform" name="login" method="post"> <input type="hidden" name="actie" value="Login"></input> <input type="text" id="gebruikersnaam" name="gebruikersnaam" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input type="password" id="paswoord" name="paswoord" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input id="aanmelden" type="submit" name="submit" value="" style="opacity:0;filter:alpha(opacity=0)"> </form> </div> <div id="registreer"> </div> </div> </body> </html> both $_POST and $_GET contains a string instead of the actual microtime single quotes didn't work eather
  8. the form is in a template file .tpl and the login script is in php, strange thing is that it did work before. I copyed over my previous version and it still didnt work :S I checked everything and everything is like the way it was >.< I thought I finally found my solution and then it gets fked up >.>
  9. Yes, if you structure your form like this <form action='somescript.php?getvariable=something' method='post'> <input type='submit' name='submit' value='Submit' /> </form> The GET variable is in the form action, although the method is to POST, the GET var will still show up on somescript.php ok so I had the microtime working for a while since it was echo'ing but now all of a sudden it doesn't show the echo anymore :S all it does right now is say that the variable contains a string called:"<?php echo microtime(); ?>" it doesn't contain the actual microtime for some particulair reason. I tryed it with get and with post and both didn't show up anything :S I tryed this: <form action=".?r=<?php echo microtime();?>" id="loginform" name="login" method="post"> and this: <input type="hidden" name="r" value="<?php echo microtime();?>"/> it did work before but for some reason r contains "<?php echo microtime();?>" instead of the actual microtime right now any idea? the strange thing is even though I tryed echo'ing $_POST['r']; and $_GET['r']; they both didn't display anything but when I debug my script through a program like nusphere it says that r does contain the string...
  10. Yes, this technique is meant to be used with GET, otherwise you just have another POST variable hanging out. Also, $r is undefined because you're not checking it's existence with isset. If you change you post action to include this GET variable .... it might just work. Is it possible to have get and post methods in 1 form? Because I can not use a second form. I can however make all my data input get and use a .htaccess file for my login which isn't really what I want though :S I can't quite figure this out It feels like I'm so close to solving this problem
  11. Zanus, I think I have understood what you meant with the microtime. What your saying is that your posting the microtime to the login script when the user logs in. When the user goes back in history to get to the login page again that microtime should still be in the cache which means that the microtime is the same as the one from before right? However it's different when you go to the login without going back in history since it's then posted again instead of still being in the cache. I think I finally understand. I have tested it and came to 1 small problem... When I send it through post and go back in history the post is undefined. I will test this for $_get but I'm not sure if it's going to work. Could you please show me an example of how you would've done it? Here is mine: class.Handler_Login.php: <?php class Handler_Login extends Actie_Handler { function __construct($actie_handle) { parent::construct($actie_handle); $this->actie = $actie_handle; } function secured_handler() { if ($this->sessie->check_sessie() == false) { $time = $_POST['r']; $previous_time = $this->sessie->get('r'); $this->sessie->set('r', $time); if ($previous_time == $time) { $this->view->toonLogin(); $this->view->toon(); } if ($previous_time == false || $previous_time != $time) { $paswoord = $_POST['paswoord']; $gebruikersnaam = $_POST['gebruikersnaam']; $login = $this->dbh->Login($gebruikersnaam, $paswoord); if ($login == true) { $this->sessie->set('gebruikersnaam', $gebruikersnaam); $this->view->toonHome(); $this->view->toon(); } else { echo "U bent niet ingelogd"; } } if ($this->sessie->check_sessie() == true) { $this->view->toonHome(); $this->view->toon(); } } } } ?> class.Sessie.php: <?php class Sessie { function __construct() { if(!isset($_SESSION)) { session_start(); } } function set($naam, $waarde) { $_SESSION[$naam] = $waarde; } function get($name) { if (isset($_SESSION[$name])) { return $_SESSION[$name]; } else { return false; } } function stopSessie() { unset($_SESSION['gebruikersnaam']); } function sessie_bericht($naam) { return print_r($_SESSION[$naam]); } function check_sessie() { if(isset($_SESSION['gebruikersnaam']) && !empty($_SESSION['gebruikersnaam'])) { return true; } else { return false; } } } ?> Login.tpl: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Snitch</title> <link rel="stylesheet" type="text/css" href="templates/css/snitch1440x900.css" /> </head> <body> <div id="login-achtergrond"> <div id="login"> <form action="." id="loginform" name="login" method="post"> <input type="hidden" name="actie" value="Login"/> <input type="hidden" name="r" value="<?php echo microtime();?>"/> <input type="text" id="gebruikersnaam" name="gebruikersnaam" value="" style="opacity:0.7;filter:alpha(opacity=70)"/> <input type="paswoord" id="paswoord" name="paswoord" value="" style="opacity:0.7;filter:alpha(opacity=70)"/> <input id="aanmelden" type="submit" name="submit" value="" style="opacity:0;filter:alpha(opacity=0)"/> </form> </div> <div id="registreer"> </div> </div> </body> </html> so.. when I went back in history and pressed the resend button I got an error telling me that r was undefined at class.Handler_Login.php at this line: $time = $_POST['r']; However, when I use it without going back in history it does work. I think you are right, this should be done through get, I'm going to test it right away. EDIT: sorry for yet another double post
  12. Adding microtime to the end of a file...as a querystring will guarentee that it is a new reference every time. Much like the way a few people setup their stylesheets so others won't have to clear their cache every time a change is made... meaning it's a NEW stylesheet every time. This may or may not work like I'm thinking for POST reloads, but it's worth a shot to see. One last thing. Your markup isn't right. INPUT tags are self-closing.. and even though you didn't "self-close" them all, you forgot to close the last one... the submit button. yes, thanks for the elaboration and pointing that out for my inputs ^.^ allthough I'm quite sure I've already changed that in my code since I just posted a older version of it. I will try to use a post method for the microtime, however I still don't quite get how it works. Do I have to create a condition in my login script of the posted microtime to check if it's a new stylesheet? How would this condition look like? I am quite new to this so I'll just have to try. I'll be back to you when I think I did it right I feel like such a newb right now edit: b.t.w. if sending the microtime through post doesn't work would it be safe for me to use $_GET instead for all of my user input data with a .htaccess file? I don't know of any security issues it might cause but maybe someone else does
  13. This might give you a better understanding why I use the dot in there index.php: <?php function __autoload($class_name) { @include_once 'classes/class.' .$class_name . '.php'; } try { if(isset($_REQUEST['actie']) && !empty($_REQUEST['actie'])) { $actie = $_REQUEST['actie']; } else { $actie = 'home'; } $disp = new Dispatcher($actie); $disp->handle_de_actie(); } catch(Exception $e) { $error_handler = new Handler_error($e); $error_handler->handled_actie(); } ?> dispatcher: <?php class Dispatcher { private $handle; function __construct($actie_handle) { $this->handle = $actie_handle; } function handle_de_actie() { $naam = "Handler_{$this->handle}"; if (class_exists("$naam")) { $handler_obj = new $naam($this->handle); $handler_obj->secured_handler(); } else { throw new Exception("Can't handle this"); } } } ?> actie_handler: <?php abstract class Actie_Handler { protected $sessie; protected $view; protected $dbh; function construct() { $this->sessie=new Sessie(); $this->view=new view_beheer(); $this->dbh=new DatabaseHelper(); } abstract function secured_handler(); } ?> Everything is written in dutch so some things might not be acurate with my other scripts, don't worry I changed my other scripts for readabillity, however I'm to lasy to do it with these though However this should be pretty straight-forward. <form action="." id="loginform" name="login" method="post"> <input type="hidden" name="actie" value="Login"></input> <input type="text" id="username" name="username" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input type="password" id="password" name="password" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input id="aanmelden" type="submit" name="submit" value="" style="opacity:0;filter:alpha(opacity=0)"> </form> This basically puts out this url: ?actie=Login&username="someuserinput"&password="someuserinput" which then calls my class.Handler_Login.php Also.. I don't quite understand what you have posted. How can time affect this? I really don't understand it, could you please elaborate further. I'd love to hear a solution ^.^
  14. Ok, I'm trying to do this right but I still don't 100% understand session_id's here is my code, please don't laugh xD How would I do this the correct way? I think something is wrong in this condition in my session: if(!isset($_SESSION['ID_old']) || $_SESSION['ID_old'] == $_SESSION['ID_new']) I'm not sure though... Login: <?php class Handler_Login extends Actie_Handler { function __construct($actie_handle) { parent::construct($actie_handle); $this->actie = $actie_handle; } function secured_handler() { if ($this->session->check_session() == false) { $ID = $this->session->check_session_id(); if ($ID == false) { echo "false"; $password = $_POST['password']; $username = $_POST['username']; $login = $this->dbh->Login($username, $password); if ($login == true) { $this->session->set('username', $username); $this->view->displayHome(); $this->view->display(); } else { echo "you are not logged in"; } } else { echo "true"; $this->view->displayLogin(); $this->view->display(); } if ($this->session->check_session() == true) { $this->view->displayHome(); $this->view->display(); } } } } ?> session: <?php class Session { function __construct() { if(!isset($_SESSION)) { session_start(); } } function set($name, $value) { $_SESSION[$name] = $value; } function get($name) { return $_SESSION[$name]; } function stopSession() { unset($_SESSION['username']); $_SESSION['ID_old'] = session_id(); echo "<pre>"; print_r($_SESSION['ID_old']); echo "</pre>"; session_regenerate_id(); $_SESSION['ID_new'] = session_id(); echo "<pre>"; print_r($_SESSION['ID_new']); echo "</pre>"; } function session_message($name) { return print_r($_SESSION[$name]); } function check_session() { if(isset($_SESSION['username']) && !empty($_SESSION['username'])) { return true; } else { return false; } } function check_session_id() { if(!isset($_SESSION['ID_old']) || $_SESSION['ID_old'] == $_SESSION['ID_new']) { echo "<pre>"; print_r($_SESSION['ID_old']); echo "</pre>"; print_r($_SESSION['ID_new']); echo "</pre>"; return true; } else { echo "<pre>"; print_r($_SESSION['ID_old']); echo "</pre>"; print_r($_SESSION['ID_new']); echo "</pre>"; return false; } } } ?> edit: sorry for my double post, I couldn't edit my previous one :S
  15. check my login page and my check_session, it does exactly that. The problem here is that whenever it has logged out the user should be redirected to the login page which is impossible because that would create an infinite loop of redirecting in the login page. Thank you, I haven't taken a look into session ID's, I'll try to figure out how they work and get back to you Hopefully this works, because I'm out of ideas Eeeerm would I have to store the session_id in a cookie? because the session kinda gets destroyed when the user logs out :S? EDIT: Ah nevermind I see what you did there! This sounds good
  16. Hmm that sounds interesting but I can't quite figure out how I would do that 0.0 sorry :-\ edit: How would I check if the user submitted the information through form or through the previous header information?
  17. so.. Isn't there a way to remove all the header information? (I've seen this before but can't remember where) Because I still see this as a security threat. Imagine: you are going outside and logged out of the website. Your little brother goes on your computer and goes back in history to see what you did. All of a sudden he is on your account OH NOES! There should be a solution, I've seen tons of sites who got a good looking login which works the way I want it to :S...
  18. Hello everyone, I am having a problem since some time now and need some help. I have created a login page where the user has to input a username and password to login. The username will be put in a session and when the user logs out the session data and session itself gets destroyed. However when I go back in the browser history to the page where I logged in I get the "famous" resend information dialog that asks you to resend the information from the login form. Which means that all the post data gets resend and the user logs in again without having to put in a username and password. Here is my code: Login.tpl: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Snitch</title> <link rel="stylesheet" type="text/css" href="templates/css/snitch1440x900.css" /> </head> <body> <div id="login-achtergrond"> <div id="login"> <form action="." id="loginform" name="login" method="post"> <input type="hidden" name="actie" value="Login"></input> <input type="text" id="username" name="username" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input type="password" id="password" name="password" value="" style="opacity:0.7;filter:alpha(opacity=70)"></input> <input id="aanmelden" type="submit" name="submit" value="" style="opacity:0;filter:alpha(opacity=0)"> </form> </div> <div id="registreer"> </div> </div> </body> </html> Here is the code of my login page (I created this in a OOP way): <?php class Handler_Login extends Actie_Handler { function __construct($actie_handle) { parent::construct($actie_handle); $this->actie = $actie_handle; } function secured_handler() { if ($this->session->check_session() == false) { $password = $_POST['password']; $username = $_POST['username']; $login = $this->dbh->Login($username, $password); if ($login == true) { $this->session->set('username', $username); $this->view->displayHome(); $this->view->display(); } else { echo "You are not logged in!"; } unset($_POST['password']); unset($_POST['username']); } if ($this->session->check_session() == true) { $this->view->displayHome(); $this->view->display(); } } } ?> Here is the code of my logout: <?php class Handler_Loguit extends Actie_Handler { function __construct($actie_handle) { parent::construct($actie_handle); $this->actie = $actie_handle; } function secured_handler() { $this->session->stopSession(); $this->view->displayLogin(); $this->view->display(); } } ?> Here is the code of my session: <?php class Session { function __construct() { if(!isset($_SESSION)) { session_start(); } } function set($name, $value) { $_SESSION[$name] = $value; } function get($name) { return $_SESSION[$name]; } function stopSession() { $_SESSION = array(); //even though I don't use any cookies someone told me that I had to remove the cookie of the session to completely destroy it? //please tell me if this is correct if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } session_destroy(); } function session_message($naam) { return print_r($_SESSION[$naam]); } function check_session() { if(isset($_SESSION['username']) && !empty($_SESSION['username'])) { return true; } else { return false; } } } ?> this is the code of my view for those who might be interested: <?php class view_manager { private $tpl; function __construct() { } function displayStatus() { $status = file_get_contents("templates/status.tpl"); $this->tpl = str_replace("%content%", $status, $this->tpl); } function displayLogin() { $this->tpl = file_get_contents("templates/login.tpl"); } function displayHome() { $this->tpl = file_get_contents("templates/home.tpl"); } function display() { echo $this->tpl; } } ?> using a header to redirect to the login page is not going to work since I use my view_manager to display the pages. Does anyone know of any solution to get rid of that stupid resend information dialog without using a header? I tryed unsetting the values of POST in my login code but that did not seem to work. Please help me out I've been looking for an answer for over 1 and a half week so far Is there anyone who knows how to remove the POST data from a form when the user goes back in browser history? If it's not possible, is there any solution except using a header?
  19. basically your if looks like this: if $race is set and race = 0 and race is not black and race is not white then how can the if be executed when $race = hispanic? also I don't get why you are doing this: $member_id = $member_id; what is the point in that? You have already passed $member_id inside the function. Declaring $member_id as $member_id does not make sense to me :S? I failed to modify my post, so sorry for this double post... if (isset($race) && $race !== 'White' && $race !== 'Black'){ } don't you want to do something like this instead? The if will now be executed when $race = anything but black or white
  20. your if doesn't contain an else so whenever the value of $race has changed to another value that is not white, black or 0 the function is supposed not to do anything. This is the same with the switch. Also I don't see how the if can be executed when the value of $race is white or black. Have you posted the entire function or just a part of it? basically your if looks like this: if $race is set and race = 0 and race is not black and race is not white then how can the if be executed when $race = hispanic? also I don't get why you are doing this: $member_id = $member_id; what is the point in that? You have already passed $member_id inside the function. Declaring $member_id as $member_id does not make sense to me :S?
  21. you didn't define the variable $table if I'm correct? Then how can you select something from a table that doesn't exist ? unless you did that in contentdb.php ofcourse.. But I wouldn't really know :S which error are you recieving? and if it says undefined variable, then where did you define your $table variable?
  22. I can try helping you out, what are you aiming for? Is there any theme you want to give to your picture? Any characters you want to be shown in the picture? Does it need a lot of blood? Try finding some recources on the internet and then start "blending" them together a bit in photoshop I can give you some neat tutorials on creating backgrounds. Just a second maybe it's better if we talk through msn or something like that, would be a lot easyer instead of posting in this thread... mine is hylkutje_rugby@hotmail.com is it ok if I add you?
  23. erm could you define graphix? Because photoshop is quite easy to use when creating your own images you just have to learn some of the basic tools and effects that photoshop has. The more your getting used to those effects and tools, the better your pictures are going to look Try starting off with something you want to create and look up a tutorial on that specific thing you want to create. There are lots of tutorials arround. It shouldn't be that hard.. make some abstract picture with effects, download some renders, c4d's, adjust some blending options, filters, layer adjustments and voila you already have a pretty neat looking background xD
  24. you can try paint.net, it's free and looks a bit like photoshop, has some great plug-ins (personally I preferr a cracked version of photoshop ^.^, pm me....) ow and also, if your having any trouble at all with your html and css I would suggest to look at this site: http://www.w3schools.com/ it has great explenations
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.