Popular Post

Popular Post

Posted by : Unknown Monday, September 16, 2013

PHP Form Register & Login untuk Member

Kali ini saya memberikan tips dan trik bagaimana cara membuat form untuk meregister sekaligus login untuk member terdaftar, dan sudah tentu kita akan menggunakan database MySQL untuk menyimpan data para member terdaftar. Perlu diingat source PHP yang saya tulis ini berjalan pada PHP 4.2.3 atau lebih disarankan untuk menggunakan PHP versi 4.3 atau lebih.
Mari kita mulai!
Pertama-tama siapkan terlebih dulu databasenya. Silahkan jalankan mysql Client kamu. Masih bingung atau lupa menjalankan mysql client ? Ok saya coba ingat-ingatkan kembali…
Mysql client yang digunakan disini adalah yang berbasis teks dan di eskusi pada shell. Dengan kata lain mysql client dijalankan dengan perintah sebagai berikut :
mysql
Perintah ini dlakukan jika server MySQL berada pada localhost dan tidak ada password untuk user yang sedang aktif pada saat itu. Untuk perintah yang lebih kompleks dapat menggunakan perintah sebagai berikut
mysql –h hosttarget –u username –ppasswordaccess
hosttarget adalah lokasi server MySQL berada, username adalah user untuk mengakses kedalam database dan
passwordaccess adalah password username untuk mengakses kedalam database. Setelah itu shell akan berganti
seperti :
mysql>
Nah selanjutnya silahkan pilih database yang akan digunakan. Jika belum memiliki database atau ingin menggunakan database lain dari yang sudah ada berarti harus membuat database baru.
Cara membuat database :
mysql> create database namadatabase;
Query OK, 1 row affected <0.00 sec>
sedangkan untuk menggunakan database yang sudah ada
mysql> use namadatabase;

database changed
Sebagai catatan, dalam pembuatan database jangan menggunakan tanda “-“ atau spasi untuk nama database yang
terdiri lebih dari dua kata sebaiknya gunakan tanda “_”
Contoh nama database yang salah : ilmu-komputer ilmu computer ilmu^computer
Contoh nama database yang benar : ilmu_komputer ilmukomputer
Setalah database sudah disiapkan kita akan membuat tablenya. Berikut cara membuat tablenya, ingat ini masih pada
shell MySQL.
CREATE TABLE phpschool_user (
id bigint(20) unsigned NOT NULL auto_increment,
user_name varchar(255) NOT NULL default '',
user_pass varchar(80) default NULL,
user_mode varchar(5) default NULL,
admin enum('yes','no') default 'no',
user_email varchar(60) default NULL,
user_fullname varchar(80) default NULL,
user_address varchar(120) default NULL,
user_telepon varchar(30) default NULL,
tempat_lahir varchar(60) default NULL,
tgl_lahir varchar(12) default NULL,
date_register varchar(70) default NULL,
user_ipaddress varchar(20) default NULL,
user_hostname varchar(120) default NULL,
note tinytext,
last_login varchar(60) default NULL,
PRIMARY KEY (user_name),
KEY id (id)
) TYPE=MyISAM;
Query OK, 0 row affected <0.00 sec>
Selesai sudah persiapan database sekarang kita pindah ke bagian PHP sourcenya. Disini kita akan membuat beberapa
file untuk proses pendaftaran dan login yang sudah terdaftar.
1. daftar.php, adalah file yang berisi form untuk pendaftaran bagi yang belum terdaftar
2. login.php, adalah file yang berisi form untuk proses login bagi yang sudah terdaftar
sekarang kita mulai dengan daftar.php
lumayan panjang sih… disini saya juga memberikan beberapa tips untuk javascript bagaimana untuk validasi
penulisan email yang benar.
<?php
session_start();
//your mysql access for host user password, database and table prefix
$prefix="phpschool_";
$sqlhost="localhost";
$sqluser="ipen";
$sqlpasswd="n0limited";
$sqldb="stieven";
$conn=mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("<p align=center>CAN NOT
CONNECT TO MYSQL SERVER");
mysql_query("use $sqldb");
//Global variable register PHP 4.23 or more only
extract($_SERVER,"EXTR_PREFIX_SAME");
extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME");
extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME");
extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME");
$file_name=$HTTP_POST_FILES["file"]["name"];
$file_size=$HTTP_POST_FILES["file"]["size"];
$file_tmp=$HTTP_POST_FILES["file"]["tmp_name"];
$file_type=$HTTP_POST_FILES["file"]["type"];
if ($logout) {
unset($HTTP_SESSION_VARS["userakses"]);
unset($HTTP_SESSION_VARS["userfullname"]);
unset($HTTP_SESSION_VARS["usermode"]);
unset($HTTP_SESSION_VARS["useremail"]);
unset($HTTP_SESSION_VARS["useradmin"]);
unset($HTTP_SESSION_VARS["userlastlogin"]);
}
$thisVersion=phpversion();
$php_version=explode(".",$thisVersion);
$phpversion=$php_version[0] . $php_version[1];
$gmt=date("Z");
$namaBulan=array("null","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustu
s","September","Oktober","November","Desember");
if (!$HTTP_SESSION_VARS["userakses"]) {
if ($submitdaftar) {
$user_name=strtolower(strip_tags(trim($user_name)));
$user_pass=strip_tags(trim($user_pass));
$user_fullname=strip_tags(trim($user_fullname));
$user_address=strip_tags(trim($user_address));
$user_telepon=strip_tags(trim($user_telepon));
$tempat_lahir=strip_tags(trim($tempat_lahir));
$nama_status=strip_tags(trim($nama_status));
$alamat_status=strip_tags(trim($alamat_status));
$hostname=gethostbyaddr($REMOTE_ADDR);
$note=strip_tags(trim($note));
//ceking
$getUser=mysql_query("insert into ". $prefix ."user
(user_name, user_pass, user_mode, user_email, user_fullname, user_address,
user_telepon, tempat_lahir,
tgl_lahir, date_register, user_ipaddress, user_hostname, note, last_login)
values
('$user_name','$user_pass','$mode','$user_email','$user_fullname','$user_address','$user
_telepon','$tempat_lahir',
'$thn_lahir-$bln_lahir-$tgl_lahir','". date("U") ."','". $REMOTE_ADDR ."',
'$hostname','$note', '". date("U") ."'
)
");
if ($getUser) {
$regOK="ok";
$msgError="<br><p align=center>$user_fullname Selamat Bergabung dengan
Kami<p>";
}
else {
$fname=str_replace(".","",$user_fullname);
$fname=str_replace(",","",$fname);
$fname=explode(" ",$fname);
$username[0]=strtolower($user_name . rand(1000,2000));
$username[1]=strtolower($fname[0]. "_" .$fname[1]);
$username[2]=strtolower($fname[count($fname)-1]. "_" .$fname[0]);
$msgError="
<br><p align=center><b>$user_name</b> tidak dapat di
daftar<br>Kemungkinan terbesar sudah pernah didaftar Coba Pilih yang lain misalkan<br>
<ul>
<li>$username[0]
<li>$username[1]
<li>$username[2]
</ul>
<p>";
unset($user_name);
}
}
?>
<script>
function cekuser() {
if ((document.daftar.user_name.value.length < 4) ||
(document.daftar.user_name.value.length > 255)) {
alert('Panjang Karakter untuk username harus minimal 4');
document.daftar.user_name.focus();
return false;
}
else {
if (document.daftar.user_name.value.indexOf(" ") >= 0) {
alert('Jangan ada spasi pada isian username dan password');
document.daftar.user_name.focus();
return false;
}
else { return emailbenar(document.daftar.user_email.value); }
}
}
function ceknotchar(ftr) {
var charnot=new Array
('*','%','@','`','"',"'",'$','#','~','(',')','!','^','&','.',',','*',';',':','<','>','['
,']','{','}','|','\\','+','=','?','/');
for (i=0;i<=charnot.length;i++) {
charsek1=ftr.indexOf(charnot[i]);
if (charsek1 >= 0) { alert('Tidak di ijinkan menggunakan karakter "' +
charnot[i] + '"');document.daftar.user_name.focus();return false; }
}
return cekFmValid();
}
function cekFmValid() {
if (
(document.daftar.user_fullname.value.length < 1) ||
(document.daftar.user_address.value.length < 1) ||
(document.daftar.nama_status.value.length < 1) ||
(document.daftar.alamat_status.value.length < 1) ||
(document.daftar.tempat_lahir.value.length < 1) || (document.daftar.status.value
== "")
) {
alert('Ada form yang belum diisi, kamu harus mengisi semua form');
return false;
}
else {
if (document.daftar.mode.value == "none") {
alert('Mode Daftar belum di pilih');
document.daftar.mode.focus();
return false;
}
}
}
function emailbenar(str) {
var cek1=str.indexOf("@");
if (cek1 <= 0) {
alert('Alamat Email harus disi dengan benar. Kesalahan pada tanda "@"');
document.daftar.user_email.focus();
return false;
}
else {
var cek2=str.lastIndexOf(".");
//alert(cek2 + '-' + cek1);
if (cek2 <= cek1+1) {
alert('Alamat Email harus disi dengan benar. Kesalahan pada tanda
"."');
document.daftar.user_email.focus();
return false;
}
else {
cek3=document.daftar.user_email.value.length;
if (cek2 == cek3-1) {
alert('Anda masih salah dalam penulisan email setalah tanda "."
masih belum lengkap!');
document.daftar.user_email.focus();
return false;
}
else {
if (str.indexOf(" ") >= 0) {
alert('Tidak boleh ada spasi dalam penulisan
email');
return false;
}
}
//alert('True');
return ceknotchar(document.daftar.user_name.value);
}
return false;
}
return false;
}
function setMode() {
if (document.daftar.mode.value >=1) {
document.daftar.tahun_masuk.disabled=false;
}
else {
document.daftar.tahun_masuk.disabled=true;
document.daftar.tahun_lulus.disabled=true;
}
}
function setTahunlulus(defTahun) {
if (document.daftar.tahun_masuk.value < defTahun) {
document.daftar.tahun_lulus.disabled=false;
}
else {
document.daftar.tahun_lulus.disabled=true;
}
if ((document.daftar.mode.value == "none") || (document.daftar.mode.value == ""))
{
document.daftar.tahun_lulus.disabled=true;
}
}
</script>
<table width="98%" border="0" align="center" cellpadding="4" cellspacing="2">
<tr>
<td align="left" valign="top" style="border:1px solid #363635;text-align:justify">
<?php
echo $msgError;
if ($regOK != "ok") {
?>
<form name="daftar" method="post" action="" onSubmit="return cekuser();">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr align="left" valign="top">
<td width="25%">Username</td>
<td width="75%"><input name="user_name" value="<?php echo $user_name; ?>"
type="text" id="user_name" style="width:180" maxlength="12">
<br> <font color="#666666">Minimal 4 karakter, gunakan kombinasi
huruf dan angka dan tanda &quot;_&quot; (underline)</font></td>
</tr>
<tr align="left" valign="top">
<td>Password</td>
<td><input name="user_pass" type="password" id="user_pass" style="width:180">
<br> <font color="#666666">Minumal 8 karakter, case sensitif (Huruf
besar/Kapital) memiliki perbedaan dengan huruf kecil</font></td>
</tr>
<tr align="left" valign="top">
<td>Email</td>
<td><input name="user_email" type="text" id="user_email" value="<?php echo
$user_email; ?>" style="width:180">
<br> <font color="#666666">Penulisan bentuk email harus tepat Contoh
: ipen22@yahoo.com dan email harus yang masih aktif</font></td>
</tr>
<tr align="left" valign="top">
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr align="left" valign="top">
<td>Nama Lengkap</td>
<td><input name="user_fullname" value="<?php echo $user_fullname; ?>"
type="text" id="user_fullname" style="width:180"></td>
</tr>
<tr align="left" valign="top">
<td>Alamat</td>
<td><input name="user_address" type="text" value="<?php echo
$user_address; ?>" id="user_name6" style="width:180"></td>
</tr>
<tr align="left" valign="top">
<td>Telepon</td>
<td><input name="user_telepon" type="text" value="<?php echo $user_telepon; ?>"
id="user_name7" style="width:180"></td>
</tr>
<tr align="left" valign="top">
<td>Tempat Lahir</td>
<td><input name="tempat_lahir" type="text" value="<?php echo $tempat_lahir; ?>"
id="user_name8" style="width:180">
</td>
</tr>
<tr align="left" valign="top">
<td>Tanggal Lahir</td>
<td><select name="tgl_lahir">
<?php
for ($t=1;$t<=31;$t++) {
$tt=date("d");
$tt=$tgl_lahir;
if ($t == $tt) { echo "<option value=\"$t\"
selected>$t</option>"; }
else { echo "<option
value=\"$t\">$t</option>"; }
}
?>
</select> <select name="bln_lahir">
<?php
for ($t=1;$t<=12;$t++) {
$tt=date("m");
$tt=$bln_lahir;
if ($t == $tt) { echo "<option value=\"$t\"
selected>$namaBulan[$t]</option>"; }
else { echo "<option
value=\"$t\">$namaBulan[$t]</option>"; }
}
?>
</select> <select name="thn_lahir">
<?php
for ($t=1940;$t<=date("Y")-10;$t++) {
$tt=date("Y")-22;
$tt=$thn_lahir;
if ($t == $tt) { echo "<option value=\"$t\"
selected>$t</option>"; }
else { echo "<option
value=\"$t\">$t</option>"; }
}
?>
</select> </td>
</tr>
<tr align="left" valign="top">
<td>Note</td>
<td><textarea name="note" id="note" style="width:180;height:70"><?php echo
$note; ?></textarea></td>
</tr>
<tr align="left" valign="top">
<td>&nbsp;</td>
<td><input name="submitdaftar" type="submit" id="submitdaftar" value="D A F T
A R"></td>
</tr>
</table>
</form>
<script>
setTahunlulus(<?php echo date("Y"); ?>);
setMode();
</script>
<?php
}
?>
</td>
</tr>
</table>
<?php
}
else {
echo "<p align=center>Kamu sudah terdaftar dengan akses ".
$HTTP_SESSION_VARS["userakses"] ."! <p align=center> <a href=\"?logout=1\">Logout</a>";
}
?>
Sekarang kita beralih ke login.php
<?php
session_start();
//your mysql access for host user password, database and table prefix
$prefix="phpschool_";
$sqlhost="localhost";
$sqluser="ipen";
$sqlpasswd="n0limited";
$sqldb="stieven";
$conn=mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("<p align=center>CAN NOT
CONNECT TO MYSQL SERVER");
mysql_query("use $sqldb");
//Global variable register PHP 4.23 or more only
extract($_SERVER,"EXTR_PREFIX_SAME");
extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME");
extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME");
extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME");
$file_name=$HTTP_POST_FILES["file"]["name"];
$file_size=$HTTP_POST_FILES["file"]["size"];
$file_tmp=$HTTP_POST_FILES["file"]["tmp_name"];
$file_type=$HTTP_POST_FILES["file"]["type"];
$thisVersion=phpversion();
$php_version=explode(".",$thisVersion);
$phpversion=$php_version[0] . $php_version[1];
$gmt=date("Z");
$namaBulan=array("null","Januari","Februari","Maret","April","Mei","Juni","Juli","Agustu
s","September","Oktober","November","Desember");
if ($logout) {
unset($HTTP_SESSION_VARS["userakses"]);
unset($HTTP_SESSION_VARS["userfullname"]);
unset($HTTP_SESSION_VARS["usermode"]);
unset($HTTP_SESSION_VARS["useremail"]);
unset($HTTP_SESSION_VARS["useradmin"]);
unset($HTTP_SESSION_VARS["userlastlogin"]);
}
if ($login) {
if (!$HTTP_SESSION_VARS["userakses"]) {
$getLogin=mysql_query("select * from ". $prefix ."user where
user_name='$user_name'");
$thisLogin=mysql_fetch_array($getLogin);
if (!$thisLogin[user_name]) { $errorLogin="<script>alert('$user_name
tidak terdaftar')</script>"; }
else {
if ($user_pass == $thisLogin[user_pass]) {
$HTTP_SESSION_VARS["userakses"]=$thisLogin[user_name];
$HTTP_SESSION_VARS["userfullname"]=$thisLogin[user_fullname];
$HTTP_SESSION_VARS["usermode"]=$thisLogin[user_mode];
$HTTP_SESSION_VARS["useremail"]=$thisLogin[user_email];
$HTTP_SESSION_VARS["useradmin"]=$thisLogin[admin];
$HTTP_SESSION_VARS["userlastlogin"]=$thisLogin[last_login];
$HTTP_SESSION_VARS["userhostname"]=$thisLogin[user_hostname];
$HTTP_SESSION_VARS["useripaddress"]=$thisLogin[user_ipaddress];
$hostname=gethostbyaddr($REMOTE_ADDR);
mysql_query("update ". $prefix ."user set
user_hostname='$hostname', user_ipaddress='". $REMOTE_ADDR ."', last_login='".
date("U") ."' where user_name='$user_name'");
}
else { $errorLogin="<script>alert('$user_name password tidak
tepat')</script>"; }
}
}
}
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo $errorLogin;
if (!$HTTP_SESSION_VARS["userakses"]) {
?>
<form name="form1" method="post" action="">
<p align="center">Username<br>
<input name="user_name" type="text" id="user_name" style="width:180">
<br>
Password <br>
<input name="user_pass" type="password" id="user_pass" style="width:180">
</p>
<p align="center">
<input type="submit" name="login" value="Submit" style="border-bottom:2px solid
#363635;border-right:2px solid #363635;border-top:2px solid #82817F;border-left:2px solid
#82817F;">
</p>
</form>
<center><a href="daftar.php">Daftar
Disini</a></center>
<?php
}
else {
echo "Kamu sudah login dengan akses ". $HTTP_SESSION_VARS["userakses"] ." <p> <a
href=\"?logout=1\">Logout</a>";
}
?>
</body>
</html>

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © 2013 Command comTechno - Devil Survivor 2 - Powered by Blogger - Designed by Johanes Djogan -