Tuesday, November 9, 2021

HOW TO MAKE CAPTCHA USING PHP

YOU MUST HAVE 2 FILE
 
1.capcha.php
<?php
header("Content-type: image/png");
// Setkan saiz
$im = imagecreatetruecolor(100,50);
$y = [30,20,40,35];
$bg = imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255));
imagefilledrectangle($im, 0, 0, 100, 50, $bg);
$font = 'D:\xampp\htdocs\captcha\font\Arial.ttf';
session_start();
$string = $_SESSION['captcha'];
for($i = 0; $i < 4 ; $i++){
$t = substr($string, $i, 1);
$color = imagecolorallocate($im, rand(69,255), rand(23,255), rand(4,255));
imagettftext($im, 20, rand(-30,30) , 10+($i * 20), $y[rand(0,3)], $color, $font, $t);
if($i < 3){
imageLine($im, 0, rand(-9,50), 100, rand(0,50), imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255)));
}
}
imagepng($im);
imagedestroy($im);
?>

2. index.php

<?php
session_start();
$string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$rndstr = '';
for($i = 0; $i < 4 ; $i++){
$rndstr .= substr($string, rand(0, 36), 1);
}
if(isset($_SESSION['captcha']))
$old = $_SESSION['captcha'];
$_SESSION['captcha'] = $rndstr;
?>

<html>
<head>
<meta name="viewport" content="width=device-width, intial-scale=1.0"/>
<title>Captcha</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html, body {
height: 100%;
background: #29303b;
display: flex;
align-items: center;
justify-content: center;
font-family: Arial;
}
#form{
background-color: #fff;
border-radius: 9px;
width: 300px;
height: 300px;
padding: 20px;
}
img{
width: 100%;
}
input{
width: 100%;
margin-top: 20px;
height: 30px;
padding: 5px;
}
input[type=submit]{
cursor: pointer;
}
#m{
text-align:center;
height: 30px;
margin-top:15px;
font-size: 75%;
}
</style>
</head>
<body>
<div id="form">
<form method="POST">
<img src="captcha_img.php"/>
<div>
<input type="text" name="captcha" value="<?php echo $rndstr;?>"/>
</div>
<div>
<input type="submit" value="Hantar"/>
</div>
</form>
<div id="m">
<?php
if (isset($_POST['captcha'])){
$cap = $_POST['captcha'];
if($cap==$old){
echo"Captcha Correct";
}else{
echo"Captcha Wrong";
}
}
?>
</div>
</div>
</body>
<html>

 HOW TO MAKE ROTATION RUBIK CUBE

HTML :

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<link rel="stylesheet" href="style.css">

</head>

<body>


<div class="scene rotateY">

<div class="cube">

<div class="grid-container front">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container back">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container right">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container left">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container top">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container bottom">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

</div>

</div>


<div class="scene rotateX">

<div class="cube">

<div class="grid-container front">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container back">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container right">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container left">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container top">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

<div class="grid-container bottom">

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

<span></span>

</div>

</div>

</div>


</body>

</html>


CSS:

* {

margin: 0;

padding: 0;

box-sizing: border-box;

}

:root{

--width-cube: 200px;

--opac: 0.7;

}


html, body {

height: 100%;

background: #29303b;

display: flex;

align-items: center;

justify-content: center;

}

.cube{

width: var(--width-cube);

height: var(--width-cube);

}

.grid-container{

position: absolute;

width: var(--width-cube);

height: var(--width-cube);

display: grid;

grid-template-areas: "1 2 3";

grid-gap: 0px;

padding: 0px;

}


.grid-container>span{

border: 3px solid rgb(230,230,230);

}

.front{

background: #fa5252;

opacity: var(--opac);

transform: translateX(calc(var(--width-cube)/-2)) translateY(calc(var(--width-cube)/-2)) translateZ(calc(var(--width-cube)/-2));

}


.back{

background: #f76707;

opacity: var(--opac);

transform: translateX(calc(var(--width-cube)/-2)) translateY(calc(var(--width-cube)/-2)) translateZ(calc(var(--width-cube) / 2));

}

.right{

background: #12b886;

opacity: var(--opac);

transform: translateY(calc(var(--width-cube)/-2)) rotateY(90deg);

}

.left{

background: #4c6ef5;

opacity: var(--opac);

transform: translateY(calc(var(--width-cube)/-2)) translateX(calc(var(--width-cube)/-1)) rotateY(90deg);

}

.top{

background: #fab005;

opacity: var(--opac);

transform: translateX(calc(var(--width-cube)/-2)) translateY(calc(var(--width-cube)/-1)) rotateX(90deg);

}

.bottom{

background: #7950f2;

opacity: var(--opac);

transform: translateX(calc(var(--width-cube)/-2)) rotateX(90deg);

}


.rotateY .cube{

transform-style: preserve-3d;

transform-origin: 0% 0%;

transform: rotateX(-27deg) rotateY(51deg);

animation: rotate1 6s linear infinite;

}

.rotateX .cube{

margin-left: 300px;

transform-style: preserve-3d;

transform-origin: 0% 0%;

transform: rotateX(-27deg) rotateY(51deg);

animation: rotate2 6s linear infinite;

}

@keyframes rotate1{

0%{

transform: rotateX(-27deg) rotateY(51deg);

}

11%{

transform: rotateX(-27deg) rotateY(-39deg);

}

22%{

transform: rotateX(-27deg) rotateY(-39deg);

}

33%{

transform: rotateX(-27deg) rotateY(-129deg);

}

44%{

transform: rotateX(-27deg) rotateY(-129deg);

}

55%{

transform: rotateX(-27deg) rotateY(-219deg);

}

66%{

transform: rotateX(-27deg) rotateY(-219deg);

}

77%{

transform: rotateX(-27deg) rotateY(-309deg);

}

88%{

transform: rotateX(-27deg) rotateY(-309deg);

}

100%{

transform: rotateX(-27deg) rotateY(-309deg);

}

}


@keyframes rotate2{

0%{

transform:rotateX(-27deg) rotateY(131deg) rotateZ(0deg);

}

11%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-90deg);

}

22%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-90deg);

}

33%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-180deg);

}

44%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-180deg);

}

55%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-216deg);

}

66%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-270deg);

}

77%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-270deg);

}

88%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-360deg);

}

100%{

transform: rotateX(-27deg) rotateY(131deg) rotateZ(-360deg);

}

}




 HOW TO MAKE 7 SEGMENT STOPWATCH

HTML :

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<link rel="stylesheet" type="text/css" href="test.css">

<title>Document</title>

</head>

<body>

<div class="s7">

<input value="">

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

</div>

<div class="s7">

<input value="">

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

</div>

<div class="s7">

<input value="">

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

</div>

<div class="dot">

<seg></seg>

<seg></seg>

</div>

<div class="s7">

<input value="">

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

</div>

<div class="s7">

<input value="">

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

<seg></seg>

</div>

<div id="controller">

<button id="start" onclick="start()">Start Timer</button>

<button id="stop" onclick="stop()">Stop Timer</button>

<button id="reset" onclick="reset()">Reset Timer</button>

</div>

<script src="test.js"></script>

</body>

</html>


CSS:

body{

background-color: #666;

text-align: center;

margin-top: 10%;

}

:root {

    --ia-color: #222;

    --a-color: red;

    --padding-p: 4px;

    --bar-w: 16px;

    --bar-pad: 8px;


    --padding: calc(var(--padding-p) * 2);

    --bar-h: calc(var(--bar-w) * 4);

    --bar-r: calr(var(--bar-w) / 2);

    --bar-p: calc(var(--padding-p) + var(--bar-w));

    --c-w: calc(var(--bar-p) * 2 + var(--bar-h));

    --c-h: calc(var(--bar-p) * 2 + var(--bar-h) * 2 + var(--padding-p) + var(--bar-pad));

}

input{

display: none;

}

.s7, .dot{

display: inline-block;

width: var(--c-w);

height: var(--c-h);

position: relative;

margin: 0;

}


.dot seg{

background: var(--a-color);

border-radius: 50%;

height: calc(var(--bar-h)/3);

width: var(--bar-w);

position: absolute;

}

.dot seg:nth-of-type(1){

top: calc(var(--padding)*6);

}

.dot seg:nth-of-type(2){

bottom: calc(var(--bar-p)*2);

}

.dot{

width: calc(var(--c-w)/2);

}


.s7{

display: inline-block;

width: var(--c-w);

height: var(--c-h);

position: relative;

margin: 0;


}

/*control all segment*/

.s7 seg{

background-color: var(--ia-color);

border-radius: var(--bar-r);

height: var(--bar-h);

width: var(--bar-w);


}

/*control horizontal segment: 1,4,7*/

.s7 seg:nth-of-type(3n+1){

height: var(--bar-w);

width: var(--bar-h);

left: 50%;

margin-left: calc(var(--bar-h)/ -2);


}


.s7 seg:nth-of-type(1){

position: absolute;

top: var(--padding);


}

.s7 seg:nth-of-type(2){

position: absolute;

top: var(--bar-p);

right: var(--padding);

}

.s7 seg:nth-of-type(3){

position: absolute;

bottom: var(--bar-p);

right: var(--padding);

}

.s7 seg:nth-of-type(4){

position: absolute;

bottom: var(--padding);

}

.s7 seg:nth-of-type(5){

position: absolute;

bottom: var(--bar-p);

left: var(--padding);

}

.s7 seg:nth-of-type(6){

position: absolute;

top: var(--bar-p);

left: var(--padding);

}

.s7 seg:nth-of-type(7){

position: absolute;

top: 45%;

margin-top:calc(var(--bar-r)*-1);

}


input[value="0"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="0"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="0"]~seg:nth-of-type(3){

background: var(--a-color);

}

input[value="0"]~seg:nth-of-type(4){

background: var(--a-color);

}

input[value="0"]~seg:nth-of-type(5){

background: var(--a-color);

}

input[value="0"]~seg:nth-of-type(6){

background: var(--a-color);

}

/*-------------------------------------------*/


input[value="1"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="1"]~seg:nth-of-type(3){

background: var(--a-color);

}

/*-------------------------------------------*/


input[value="2"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="2"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="2"]~seg:nth-of-type(4){

background: var(--a-color);

}

input[value="2"]~seg:nth-of-type(5){

background: var(--a-color);

}

input[value="2"]~seg:nth-of-type(7){

background: var(--a-color);

}

/*-------------------------------------------*/

input[value="3"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="3"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="3"]~seg:nth-of-type(3){

background: var(--a-color);

}

input[value="3"]~seg:nth-of-type(4){

background: var(--a-color);

}

input[value="3"]~seg:nth-of-type(7){

background: var(--a-color);

}

/*----------------------------------------------*/

input[value="4"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="4"]~seg:nth-of-type(3){

background: var(--a-color);

}

input[value="4"]~seg:nth-of-type(6){

background: var(--a-color);

}

input[value="4"]~seg:nth-of-type(7){

background: var(--a-color);

}

/*----------------------------------------------

*/input[value="5"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="5"]~seg:nth-of-type(3){

background: var(--a-color);

}

input[value="5"]~seg:nth-of-type(4){

background: var(--a-color);

}

input[value="5"]~seg:nth-of-type(6){

background: var(--a-color);

}

input[value="5"]~seg:nth-of-type(7){

background: var(--a-color);

}

/*------------------------------------------------*/

input[value="6"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="6"]~seg:nth-of-type(3){

background: var(--a-color);

}

input[value="6"]~seg:nth-of-type(4){

background: var(--a-color);

}

input[value="6"]~seg:nth-of-type(5){

background: var(--a-color);

}

input[value="6"]~seg:nth-of-type(6){

background: var(--a-color);

}

input[value="6"]~seg:nth-of-type(7){

background: var(--a-color);

}

/*---------------------------------------------*/

input[value="7"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="7"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="7"]~seg:nth-of-type(3){

background: var(--a-color);

}

/*------------------------------------------*/

input[value="8"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="8"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="8"]~seg:nth-of-type(3){

background: var(--a-color);

}

input[value="8"]~seg:nth-of-type(4){

background: var(--a-color);

}

input[value="8"]~seg:nth-of-type(5){

background: var(--a-color);

}

input[value="8"]~seg:nth-of-type(6){

background: var(--a-color);

}

input[value="8"]~seg:nth-of-type(7){

background: var(--a-color);

}

/*----------------------------------------*/

input[value="9"]~seg:nth-of-type(1){

background: var(--a-color);

}

input[value="9"]~seg:nth-of-type(2){

background: var(--a-color);

}

input[value="9"]~seg:nth-of-type(3){

background: var(--a-color);

}

input[value="9"]~seg:nth-of-type(4){

background: var(--a-color);

}

input[value="9"]~seg:nth-of-type(6){

background: var(--a-color);

}

input[value="9"]~seg:nth-of-type(7){

background: var(--a-color);

}


JAVASCRIPT:

function display7(number){

var els =  document.querySelectorAll(".s7 input");

for(let i =0;i < els.length; i++){

temp = number.toString().padStart(els.length, 0);

els[i].setAttribute("value", temp[i]);

}

return els.length;

}

display7(0);

var i = 0;

var timer = null;

function start(){

if(!timer){

timer = setInterval(() => {

var len = display7(i);

i = (i + 1)% Math.pow(10,len);

}, 10);

}

return timer;

}

function stop(){

clearInterval(timer);

timer=null;

}

function reset(){

stop();

i = 0;

display7(i);

}

Saturday, June 29, 2019

cost pengkalan data dan aplikasi web part1

Assalamualaikum guys,
hari tu aku ade cakap pasal kv..hari ni aku nak cakap pasal cost yang aku ambik..cost ni kalau minat memang best kalau tak ade minat akan rasa susah sangat..

okey let's start

First sekali aku akan terang kan serba sedikit berkenaan cost yang aku ambik..
aku mengambil cost cost pengurusan data dan aplikasi web atau nama ringkas dia IPD

Secara asas nya aku akan belajar berkenaan software didalam komputer macam Adobe, microsoft dan lain-lain..maaf kalau ade salah ..but ni yang aku paham .Okey kalau dekat kv ni dia follow by sem
so kalau ikut kira-kira
1tahun = 2 sem

kami ada 4 tahun pengajian so
4tahun = 8 sem

jadi apa yang kami belajar pada sem lepas takkan diulang pada sem akan datang.
mana kala dalam setiap sem tu ada kiraan minggu dia sendiri

macam SVM kami ada 17 minggu untuk satu sem
dan DVM ada 14 minggu untuk satu sem

tu aku tak tau macam mane pembahagian dia but yeah..kalau rasa nak tau lebih lanjut boleh seach je google

maklum lah maklumat dihujung jari, apa-apa pon kita dapat akses ke mana-mana untuk dapatkan ilmu pengetahuan

okey kembali ke IPD
macam sem lepas aku belajar HTML, CSS, PHOTOSHOPE, WAMPSERVER, dengan SDLC
IPD ni ajar aku macam mane nak create satu website yang lengkap dari segi interface dia , perancangan dia, design dia,coording dia dan macam-macam lagi.

APA BEZANYA IPD NI DENGAN SAINS COMPUTER

Okey look, perbezaan nya kami belajar lebih banyak and lebih dalam berkaitan dengan IPD , mana kala Sain Computer kurang sedikit daripada kami. Bukan nak bangga but yeah tapi kalau kita lihat sebenarnya KV ni lebih pendek dan menjimaat kan masa hidup anda.

ok mari kita buat kira-kira
SPM:2 tahun (form 4,5)
LEPAS SPM KERJA :dalam 7 ke 6 bulan
MAUSK U DIPLOMA: 4 tahun
DEGREE: 4TAHUN(BERGANTUNG)
TOTAL=9Tahun 7bulan

Kalau kv
SVM+DVM=4TAHUN
Kerja:2 tahun(boleh beli rumah dah)
DEGREE: 4 tahun(kalau nak sambung study, boleh kurang tak silap aku)
TOTAL: 6 tahun dah leh kahwin

<!--ingat setiap suatu mesti ada keistimewaan dia dan kelemahan dia-->

so mana lebih singkat renung-renung kan lah

okey dah terjawab soalan korang?

okey upnext aku akan tunjuk kan korang apa itu coording,wampserver,photoshope,staruml,
maybe sampai sini saja nanti kan part2

lek-lek lu ..
Assalamualaikum



Tuesday, June 25, 2019

Perpindahan Ke Kv

Hai Assalamualaikum..

Ni post pertama saya dalam blog ini, jadi sebarang kesilapan dan kekurangan saya mohon maaf dan silap..

Baik, entry pertama ini saya nak membawa anda semua untuk melihat sendiri dunia Kolej Vokasional yang sering dipandang hina dan rendah..

Pertama sekali ini adalah hanya pendapat saya sahaja..kalau korang ade ape-ape pendapat dan cadangan boleh comment dekat bawah. okey lets start

KENAPE NAK PINDAH?

Kalau korang nak tau hidup dekat kv dgn sekolah harian sangat berbeza dari pelabagai aspek seperti contoh waktu pembelajaran, cara pembelajaran dan banyyyak lagi. Jadi untuk buat sesuatu perkara semua bergantung pada niat masing-masing kenape korang nak masuk kv dan kenape korang nak stay kat sekolah SMK / SAM  . macam aku niat aku nak masuk kv sebab aku nak cuba sesuatu yang baru, aku ambik cost pengkalan data dan aplikasi web , cost ni melibatkan coording, databases, design dan lain-lain, srs kalau minat subjek ni best dari yang lain .. kalau niat aku nak try bende baru dari sekolah harian yang biasa dimana aku kene belajar sains tulen yang mejoriti aku akan dapat F ..so daripada merosakkan masa depan aku baik aku buat ape yang aku minat..korang pulak?

MACAM MANE JUMPE KV NI?

Okey kalau korang nak tau lah, saya masuk ke KOLEJ VOKASIONAL SHAH ALAM atau KVSA dan mane saya dapat pendedahan tentang kv ini sendiri ...cube korang teka..okey aku tau kv ni daripada abng aku dia berada di KOLEJ VOKASIONAL KUALA SELANGOR atau KVKS. Beliau sekarang dah habis OJT jadi aku dapat tau apa baik buruk KV ni..lagi pon banyak je MPP kolej datang ke sekolah harian untuk bagi pendedahan terus berkaitan kv ni..

KV NI MACAM MANE ?

Okey soalan yang bagus.. KV ni lain dari lain , siape yang nak masuk kv kene ready mental dan fizikal ..sebab jadual dia pack kelas dari kol 8 sampai 5 dan rehat kol 12.30 sampai kol 2.00 tapi more focus pada subjek cost yang korang ambik ..kenape 8 sampai 5 ..sebab nak biase kan diri kite waktu kerje nanti takdelah rasa jangal time kerje and tak delah kene kejutan budaya kat tempat kerje ..itu unik nye kv ni ..di mana korang takkan dapat kat mane-mane ..lagi satu kv ni open untuk pelajar lepasan PT3 dan program dia selama 4 tahun pembelajaran  dan 6 bulan OJT so habis-habis kv ni umur korang dalam 20 tahun ..dan lepasan diploma (kalau layak) dimana kawan-kawan diharian biasa akan sambung diploma 4 tahun lepas 2 tahun ambik SPM ..siape masuk kv kite jimat 2 thn ..masa 2 thn tu boleh lah kerje untuk naik kan skill korang atau terus masuk kerje sampai tua..

KV NI ADA MASA DEPAN KE?

korang boleh tengok link yang aku bagi ni..
https://www.gpsbestari.com/berita/putrajaya/pelajar-kv-jadi-rebutan-industri-bukti-kejayaan-transformasi-pendidikan-vokasional-1.534152
ni pasal kejayaan budak kv..laku ke tak kat pasaran kerje dan mudah ke dapat kerje..
ni perjanjian syarikat dgn kv..


aku rasa ni sahaja kot untuk entry kali ni ..maaf kalau ade salah dan silap..
dan kepada semua pencetus idea untuk bina blog bagi update setiap aktiviti yang saya jalani dkt kv..
insyallah dalan entry akan datang saya akan tunjuk beberapa subjek yang saya belajar..

sebarang cadangan sila comment dibawah..sekian terima kasih