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);

}