2012. június 7., csütörtök

CMS rendszerek

Ha még nem ismered a html, php, stb. programozásokat vagy nem akarsz vesződni egyedi honlapod elkészítésével, akkor tölts le egy honlapszerkesztő programot vagy egy CMS rendszert.
CMS rendszerek pl.: joomlaWordPressphpbb (magyarul).
Ezek általában ingyen letölthetők.
Letöltés után feltelepíted a tárhelyre(FTP szervere). 
 Fontos , hogy ahova feltöltöd meg legyenek a CMS rendszer rendszerkövetelményei(pl.: futtasson php-t, legyen adatbázisa ...), mert például ha nem futtat php-t akkor nagy eséllyel nem fog működni.
Miután az összes fájlt feltelepítetted nézd meg a honlapod, ha minden jól ment, megjelenik a telepítési útmutató, ahol megadod a kért adatokat és teljesíted a kéréseket, akkor ha minden jó már használhatod is a honlapodat.

A php-ről általában


Hivatalos weboldala: http://www.php.net
A PHP egy olyan programnyelv amelyet a szerver futtat le, ellenben a JavaScripttel, amit a böngésződ dolgoz fel.
Ennek a programozásnak a segítségével lehet dinamikus(változó tartalmú) weblapot készíteni,
pl.: bejelentkezést, chatet, fórumot, űrlap feldolgozót.
 Fontos: a php nem mindegyik szerveren működik.

Bejelentkezés készítése php-val


Követelmények:
-PHP futtatási lehetőség
-Mysql adatbázis
1. lépés: kapcsolat.php létrehozása:
Ez a fájl fogja tárolni az adatbázis adatait.
kapcsolat.php kód:
<?php
$kapcsolat = mysql_connect("host", "azonosító", "jelszó");
if (!$kapcsolat) die("Nem sikerült kapcsolódni az adatbázishoz!");
mysql_select_db("adatbázis", $kapcsolat) or die("Nem sikerült kiválasztani az adatbázist!");
?>

A host általában localhost (/127.0.0.1).
Az azonosító és az adatbázis általában megegyezik.

2. lépés: install.sql létrehozása:
Ez fogja létrehozni az adatbázisban a táblát.
install.php kód:
CREATE TABLE IF NOT EXISTS `regisztracio` (
`name` varchar(100) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
`password` varchar(100) NOT NULL,
`loginid` varchar(100) NOT NULL,
PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Ezzel fogunk létrehozni egy 'regisztracio' nevű táblát, amelyben 3 oszlop lesz (name, password, loginid), az egyedi oszlop a 'name' ahol minden érték más.

3. lépés: belepes.php létrehozása:
Itt lehet majd bejelentkezni.
belepes.php kód:
<html><head>
<title>Bejelentkezés</title>
</head><body>
<div><?
include('kapcsolat.php');

Ez a kód részlet beolvassa a kapcsolat.php-t, hogy hozzáférjen az adatbázishoz. 
belepes.php kód:
if(isset($belep) and $belep == "igen"){
$name = $_POST['name'];
$password = md5($_POST['password']);
$name = mysql_real_escape_string($name);
$password = mysql_real_escape_string($password);
$parancs = "SELECT * FROM regisztracio WHERE name='$name' AND password='$password' ";
$eredmeny = mysql_query($parancs);
while ($sor=mysql_fetch_array($eredmeny))
{
$name=$sor['name'];
$password=$sor['password'];
}

Ez a kódrészlet megnézi, hogy el van-e küldve a bejelentkezési űrlap, ha igen akkor ellenőrzi, hogy a megadott felhasználónévvel és jelszóval van-e felhasználó.
belepes.php kód:
if($kapott=mysql_fetch_array(mysql_query("SELECT * FROM regisztracio WHERE name='$name' AND password = '$password'"))){
if(($kapott['name']==$name)&&($kapott['password']==$password)){
function generateRandomString($hosszusag = 40, $betu = 'qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM')
{ $s = '';
$betuhosszusag = strlen($betu)-1;
for($i = 0 ; $i < $hosszusag ; $i++){
$s .= $betu[rand(0, $betuhosszusag)];}
return $s;
}
$belepoid = generateRandomString();
$parancs = "UPDATE regisztracio SET loginid='$belepoid' WHERE name='$name'";
mysql_query($parancs);
setcookie("be", $belepoid, time()+3600);
include('index.php');
}
}else{
echo "<b>Hiba! Rossz felhasználónevet vagy jelszót adtál meg, próbáld újra </b><br/><br><input type='button' value='Vissza' onClick='history.go(-1)'>";}

Ha a megadott felhasználónévvel és jelszóval már regisztráltak, akkor generál egy azonosítót és elmenti a bejelentkező böngészőjébe (cookiét/sütit) és az adatbázis 'loginid' oszlopába és a kezdőlapra(index.php) lép, ha nincs ilyen felhasználó ugyanazzal a jelszóval , akkor hibát ír ki.
belepes.php kód:
}else{?>
<form action="belepes.php" method="post">
<input type="hidden" name="belep" value="igen"/>
Felhasználó név: <br/><input type="text" name="name" maxlength="20"/><br/>
Jelszó: <br/><input type="password" name="password" maxlength="32"/><br/>
<input type="submit" value="Bejelentkezés" class="button"/>
</form>
</div>
</body>
</html>
<? } ?>

Ha az űrlap még nem lett elküldve akkor megjeleníti az űrlapot.

4. lépés: hiba.php létrehozása:
Ez fogja ellenőrizni,hogy be van-e jelentkezve.
hiba.php kód:
<?
include ('kapcsolat.php');
$loginid = $_COOKIE['be'];
$parancs = "SELECT * FROM regisztracio WHERE loginid='$loginid'";
$eredmeny = mysql_query($parancs);
while ($sor=mysql_fetch_array($eredmeny))
{
$felhasznalo = $sor['felhasznalo'];
}
if($felhasznalo == NULL){
echo 'Bejelentkezés<br>';
include ('belepes.php');
exit();
}else{
echo 'Helló '.$felhasznalo.'!<br><A HREF="kilepes.php">Kilépés</A>';
}
?>

Megnyitja a kapcsolat.php-t, beolvassa a cookiét(/sütit) és megkeresi az adatbázisban, ha meg van köszönti a felhasználót és megjeleníti a kilépés gombot.

5.lépés: kilepes.php létrehozása:
kilepes.php kód:
<html><head>
<title>Kilépés</title>
</head> <body>
<div style="text-align:center;">
<div><?
include("kapcsolat.php");
$belepoid = $_COOKIE['be'];
$parancs = "SELECT * FROM regisztracio WHERE belepoid='$belepoid'";
$eredmeny = mysql_query($parancs);
while ($sor=mysql_fetch_array($eredmeny))
{
$felhasznalo=$sor['felhasznalo'];
}
function generateRandomString($hosszusag = 31, $betu = 'qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM')
{
$s = '';
$betuhosszusag = strlen($betu)-1;
for($i = 0 ; $i < $hosszusag ; $i++){
$s .= $betu[rand(0, $betuhosszusag)];}
return $s;
}
$belepoid = generateRandomString();
$parancs = "UPDATE regisztracio SET belepoid='kilepett.$belepoid' where felhasznalo='$felhasznalo'";
mysql_query($parancs);
setcookie('be','',0);
echo "Sikeresen kiléptél.";
include("index.php");
?> </div></div>
</body></html>

Beolvassa a cookiét generál egy újat, ami elment az adatbázisba, majd törli a cookiét. 

6. lépés: index.php létrehozása:
A kezdőoldal és a többi bejelentkezéshez kötött oldalnak az elejére a következő kódrészlet kell:
index.php kód:
<?
include("kapcsolat.php");
include("hiba.php"); ?>

7. lépés: "telepítés":
install.sql fájlban található kódot futtasd le phpMyadmin-on, majd tölsd fel a többi fájlt a szerverre (install.sql nem kell).
Új felhasználót az adatbázisban tudsz létrehozni, 'regisztracio' táblába új sor beillesztésével, fontos, hogy a 'password' md5-ös kódolással kódolva legyen. 
Új felhasználó sql kód:
INSERT INTO `forum`.`regisztracio` (`name`, `password`, `loginid`) VALUES ('felhasználónév', MD5('jelszó'), 'NULL');

 Csinálj az oldaladnak kinézetet, mert ezek a kódok magában nem néznek ki jól.