send form data in email javascript or php
In web development it is very normal that we create 'Contact-Us' Form . And we want to send complete form submitted data in a mail to somebody (normally to ourself ).
There are many ways to do this .
1) using javascript
2) using any server side scripting like PHP .
To understand this first of all, we need to understand concept of sendmail utilites and mail server . for sending mail , we need to have a mail server or mail client . best example for mail client is MS-outlook and mail client is "mail" command in linux .
First way -- javascript -->
As we know javascript is client side scripting , so it need a client to send mail i.e. mail client .
Example :-
lets take a simple form .
form.html
<form action="mailto:abc@gmail.com">
Name <input type="text" name="name" />
Phone <input type="text" name="phone" />
<input type="submit" name="submit" value="submit"/>
</form>
This is simplest example . If we try to see what happens here , we are using javascript "mailto" function . "mailto" will trigger mail client to send mail that means , it will call you MS-Outlook (if installed and configured ) .This way is not used widely as it is client dependent way and we don't have any control here .
Second way -- server side scripting e.g. PHP -->
php will need a mail server configured to send a mail . As we are developers we can control and configure mail server by our own .
Example :-
form.html
<form action="abc.php" method="post">
Name <input type="text" name="name" />
Phone <input type="text" name="phone" />
<input type="submit" name="submit" value="submit"/>
</form>
abc.php
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$to = "abc@gmailo.com";
$subject = "Contact details ";
$message = "The name is $name \n\r Contact number is $phone ";
mail($to,$subject,$message);
?>
Now this is stable and trusted code to send mails . And everyone should use this way of sending mail .
There are two ways of submitting form i.e. GET and POST . Both methods have their importances .
If we submit form using get method and then all data submitted will be append in the action page url . And we know that url have its limits so we can send only small amount of data using GET method .
While in POST method data is sent in the request body so there is no limit here to send data .
Also in GET method data is visible in th url , so it is not safe . Whenever we need to create safe application we should use POST method .
GET method is fast as everything is simply appended in the url . But in using POST method every request need to maintain data in the body . So it is lsightly time consuming method .
Both methods are useful . So we need to choose wisely according to our application taht which method we should use .
Thank you . Please ask in comments if need any clarification . Suggestions are also welcome .
We have discussed about php's date and time functions . for refrence please see HERE
Now we are discussing two more functions . strtotime() and mktime() .
its usages are like :-
$var1 = strtotime("now");
$var2 = strtotime("10 September 2000");
$var3 = strtotime("+1 day");
$var4 = strtotime("+1 week");
$var5 = strtotime("+1 week 2 days 4 hours 2 seconds");
$var6 = strtotime("next Thursday");
$var7 = strtotime("last Monday");
echo date("Y-m-d H:i:s",$var1) . "<br/>";
echo date("Y-m-d H:i:s",$var2) . "<br/>";
echo date("Y-m-d H:i:s",$var3) . "<br/>";
echo date("Y-m-d H:i:s",$var4) . "<br/>";
echo date("Y-m-d H:i:s",$var5) . "<br/>";
echo date("Y-m-d H:i:s",$var6) . "<br/>";
echo date("Y-m-d H:i:s",$var7) . "<br/>";
explanation of above mentioned code is -
all $var1-7 variable will get timestamp according to string passed to the function .
'now' will give current timestamp
'+1 day' will give tomorrow's timestamp i.e. +24 hours
and so on ..
also we can find the difference between two dates .
example : suppose we need to find the difference in days between '10 december 2012' and '12 july 1947' . then we will write that program like this
$time1 = strtotime( "10 december 2012");
$time2 = strtotime( "12 july 1947");
$diff = $time1-$time2 ;
$no_of_days = $diff/86400 ; // 1 day = 86400 seconds .
mktime(hour,minutes,seconds,month,date,year,is_dst) ;
all parameters are optional .If we pass each parameter then it will show you the results. Just give a small try to the programs and will understand quickly , what it means . for example -
echo date("M-d-Y",mktime(0,0,0,12,36,2012)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,14,1,2010)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,1,1,1991)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,1,1,99)) . "<br>";
Hope this post will help someone . Please ask me in comments if need any more help.
There are many linux commands which helps in many ways . If you are not linux administrator then these commands can help you in many ways .
Following commands are very important .
ifconfig
netsat
nslookup
who
w
who am i
whoami
uptime
wall
top
rsync
lsof
find
whereis
alias
unalias
df
su
diff
traceroute
iostat
mpstat
iftop
some uses of that commands are :-
ifconfig -a --> will show all details of networks
ifconfig eth0 --> will show details of fist ethernet network
ifconfig eth0 down --> will take first ethernet down or shutdown ethernet first
ifconfig eth0 up --> just opposite to the down command . it will start firsth ethernet
ifconfig eth0 172.18.100.4 netmask 255.255.255.255 --> will set system ip to 172.18.100.4 and netmast to 255.255.255.255
Some uses of this commands are :-
netstat -a --> will show all port activities
netstat -at --> will show all TCP port activities
netstat -au --> will show all UDP port activities
netstat -l --> ports which are listening
netstat -tl --> TCP ports which are listening
netstat -s --> statistics for all ports
netstat -st --> statistics for alls TCP ports only
netstat -n --> will show hosts in numeric form i.e. in ip address forms
netstat -c --> continuously
use many commands combinations to get your desired results . like :-
netstat -atn | grep ":8080 " --> it will show connections on only 8080 port
also
netstat -tan | grep ':80 ' | awk '{print $6}' | sort | uniq -c
2 CLOSE_WAIT
140 CLOSING
13371 ESTABLISHED
1884 FIN_WAIT1
116 FIN_WAIT2
110 LAST_ACK
1 LISTEN
367 SYN_RECV
2168 TIME_WAIT
nslookup pkonline.in --> it wil show details about pkonline.in , its ip and max available info
nslookup 1.1.1.1 --> will show details about this ip address
nslookup pkonline.in 2.2.2.2 --> will show details of pkonline.in from dns 2.2.2.2
this command is used to trace route between your system to destination . use :-
traceroute google.com --> will show all nodes of connectivity between your system and google.com servers .
this command is used to get all input and output statistics over all hard disks. to install this command in system use "yum install sysstat " .uses :-
iostat --> will show average of input and output operation on every disk partition .
iostat 2 --> will show continuously current io statistics .
mpstat shows output stats of every processor available .
mpstat , mpstat -P all --> will how all processors statistics .
mpstat -P 0 --> will show just first processor output statistics .
wall "dont delete anyfile from directory /home/parveen" --> the message will appear to every one logged in the server
w --> will show details of all logged in users .
who -- > similar to w but show less details .
whoami --> will show you your username .
who am i --> will show you more details about your login .
rsynch -uar /home/parveen/ /home/backup/ --> this will send all updated file from /home/parveen/ directory to /home/backup directory .
rsync --rsh='ssh -p22' -aur root@192.168.0.1:/home/parveen/images/ /home/parveen/images/ --> this command will get all files from different machine to current machine .
lsof --> list all opened files on the system
lsof /home/parveen/parveen.log --> will show open statistics for specific file /home/parveen/parveen.log
lsof +D /home/parveen/ --> will show files open under directory /home/parveen/
lsof -u root --> will show files opened by user root .
lsof -p 10 --> will specify opened file by specific process .i.e process id 10 .
find /home/ -name abc.txt --> this command will try to search file abc.txt under directory /home/ .
find / -name abc.txt --> this command will find abc.txt in the whole system .
find . -name abc.txt --> this command will find abc.txt in the current directory .
whereis cp --> will show the location of cp command . This may also search is binary files .
alias pp="ls -lhtr" --> after this if you run pp command this it will show results equivalent to ls -lhtr
unalias pp --> now pp will no longer be any alias .
df -k --> this will show all partitions witgh there usage and free memory available in bits.
df -kh --> this will show size in MB KB and GB format .
du --> will show directories which are using some space that means files which are non empty .
du -a --> this comamnd will show all files . also will show empty files
du -ah --> will show memory in human readle form like KB MB GB .
du -s --> will show summarised memory .
du -sh * --> will show memory taken by all files and directory at your current location with human readable form .
diff file1 file2 --> will print differences between this two files .
I will explain all basics of unix /linux here . Firstly basic directories of unix operating system .
** /bin --> this directory contains all essential files for correct functioning of operating system .all users have permissions of these files .
** /home in this directory all user's home directory resides . This is very commonly used directory .
** /var this directory contains all variables files like logs , db directory etc .
** /etc all system configuration files are stored here .
** /dev additional devices like cd-rom , pendrive , hard disk will found here .
** /sbin binary files , generaly super user uses these files .
** /tmp all temporary files stay here .
These locations are by default . For our ease we can change them also and we can use it .
Linux is case sensitive .
Permissions :-
As linux is multi-user operating system . Every file and directory have permissions defined for every user . Every file and directory have their owner . owner is a user . and also a group . group is group of users .
So we have three different type of permissions .
1) permissions given to owner
2) permissions given to group
3) permissions given to all other users .
And every file have three types of permissions
1) read permission -- those users who have read permission can read the file
2) write permission -- those users who have read permission can write into the file
3) execute permission -- user with this permission can execute the file .
we can use two commands chmod and chown to change permissions and owner of the file respectively .
Now about commands of unix .
One command consists of three parts i.e command name , options , parameters .
example # grep -i "abcds" file.txt
here ,
grep --> command name
i --> option
abcds and file.txt are the parameters of the command .
Options will always start with - mark .
basic commands are :-
command name function
run some commands in your linux/unix machine then you will understand the difference .
'>' this sign will redirect output of a command to a file .
In web development it is very normal that we create 'Contact-Us' Form . And we want to send complete form submitted data in a mail to somebody (normally to ourself ).
There are many ways to do this .
1) using javascript
2) using any server side scripting like PHP .
To understand this first of all, we need to understand concept of sendmail utilites and mail server . for sending mail , we need to have a mail server or mail client . best example for mail client is MS-outlook and mail client is "mail" command in linux .
First way -- javascript -->
As we know javascript is client side scripting , so it need a client to send mail i.e. mail client .
Example :-
lets take a simple form .
form.html
<form action="mailto:abc@gmail.com">
Name <input type="text" name="name" />
Phone <input type="text" name="phone" />
<input type="submit" name="submit" value="submit"/>
</form>
This is simplest example . If we try to see what happens here , we are using javascript "mailto" function . "mailto" will trigger mail client to send mail that means , it will call you MS-Outlook (if installed and configured ) .This way is not used widely as it is client dependent way and we don't have any control here .
Second way -- server side scripting e.g. PHP -->
php will need a mail server configured to send a mail . As we are developers we can control and configure mail server by our own .
Example :-
form.html
<form action="abc.php" method="post">
Name <input type="text" name="name" />
Phone <input type="text" name="phone" />
<input type="submit" name="submit" value="submit"/>
</form>
abc.php
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$to = "abc@gmailo.com";
$subject = "Contact details ";
$message = "The name is $name \n\r Contact number is $phone ";
mail($to,$subject,$message);
?>
Now this is stable and trusted code to send mails . And everyone should use this way of sending mail .
There are two ways of submitting form i.e. GET and POST . Both methods have their importances .
If we submit form using get method and then all data submitted will be append in the action page url . And we know that url have its limits so we can send only small amount of data using GET method .
While in POST method data is sent in the request body so there is no limit here to send data .
Also in GET method data is visible in th url , so it is not safe . Whenever we need to create safe application we should use POST method .
GET method is fast as everything is simply appended in the url . But in using POST method every request need to maintain data in the body . So it is lsightly time consuming method .
Both methods are useful . So we need to choose wisely according to our application taht which method we should use .
Thank you . Please ask in comments if need any clarification . Suggestions are also welcome .
php strtotime and mktime time functions
Now we are discussing two more functions . strtotime() and mktime() .
strtotime:-
This function will convert a string to timestamp format i.e. total number of seconds since 1st jan 1971 .its usages are like :-
$var1 = strtotime("now");
$var2 = strtotime("10 September 2000");
$var3 = strtotime("+1 day");
$var4 = strtotime("+1 week");
$var5 = strtotime("+1 week 2 days 4 hours 2 seconds");
$var6 = strtotime("next Thursday");
$var7 = strtotime("last Monday");
echo date("Y-m-d H:i:s",$var1) . "<br/>";
echo date("Y-m-d H:i:s",$var2) . "<br/>";
echo date("Y-m-d H:i:s",$var3) . "<br/>";
echo date("Y-m-d H:i:s",$var4) . "<br/>";
echo date("Y-m-d H:i:s",$var5) . "<br/>";
echo date("Y-m-d H:i:s",$var6) . "<br/>";
echo date("Y-m-d H:i:s",$var7) . "<br/>";
explanation of above mentioned code is -
all $var1-7 variable will get timestamp according to string passed to the function .
'now' will give current timestamp
'+1 day' will give tomorrow's timestamp i.e. +24 hours
and so on ..
also we can find the difference between two dates .
example : suppose we need to find the difference in days between '10 december 2012' and '12 july 1947' . then we will write that program like this
$time1 = strtotime( "10 december 2012");
$time2 = strtotime( "12 july 1947");
$diff = $time1-$time2 ;
$no_of_days = $diff/86400 ; // 1 day = 86400 seconds .
mktime :-
This functions also create timestamp , but it take values as different parameters instead of one complete timed string .following is the syntax for mktime() functionmktime(hour,minutes,seconds,month,date,year,is_dst) ;
all parameters are optional .If we pass each parameter then it will show you the results. Just give a small try to the programs and will understand quickly , what it means . for example -
echo date("M-d-Y",mktime(0,0,0,12,36,2012)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,14,1,2010)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,1,1,1991)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,1,1,99)) . "<br>";
Hope this post will help someone . Please ask me in comments if need any more help.
advanced linux commands for quick system analysis
Following commands are very important .
ifconfig
netsat
nslookup
who
w
who am i
whoami
uptime
wall
top
rsync
lsof
find
whereis
alias
unalias
df
su
diff
traceroute
iostat
mpstat
iftop
ifconfig :-
this command is used to setup network details . Also we can see ip address of the system . there are many uses of this command . complete usage of this command can be seen use command "man ifconfig " .some uses of that commands are :-
ifconfig -a --> will show all details of networks
ifconfig eth0 --> will show details of fist ethernet network
ifconfig eth0 down --> will take first ethernet down or shutdown ethernet first
ifconfig eth0 up --> just opposite to the down command . it will start firsth ethernet
ifconfig eth0 172.18.100.4 netmask 255.255.255.255 --> will set system ip to 172.18.100.4 and netmast to 255.255.255.255
netstat :-
netstat is very important command to use on servers . it shows details about all port activities . which port are working and how many connections on the ports at any time . complete usage of this command can be seen using command "man netstat" .Some uses of this commands are :-
netstat -a --> will show all port activities
netstat -at --> will show all TCP port activities
netstat -au --> will show all UDP port activities
netstat -l --> ports which are listening
netstat -tl --> TCP ports which are listening
netstat -s --> statistics for all ports
netstat -st --> statistics for alls TCP ports only
netstat -n --> will show hosts in numeric form i.e. in ip address forms
netstat -c --> continuously
use many commands combinations to get your desired results . like :-
netstat -atn | grep ":8080 " --> it will show connections on only 8080 port
also
netstat -tan | grep ':80 ' | awk '{print $6}' | sort | uniq -c
2 CLOSE_WAIT
140 CLOSING
13371 ESTABLISHED
1884 FIN_WAIT1
116 FIN_WAIT2
110 LAST_ACK
1 LISTEN
367 SYN_RECV
2168 TIME_WAIT
nslookup :-
this command is used to see dns entries of any domain or ip . likenslookup pkonline.in --> it wil show details about pkonline.in , its ip and max available info
nslookup 1.1.1.1 --> will show details about this ip address
nslookup pkonline.in 2.2.2.2 --> will show details of pkonline.in from dns 2.2.2.2
traceroute :-
this command is used to trace route between your system to destination . use :-
traceroute google.com --> will show all nodes of connectivity between your system and google.com servers .
iostat :-
this command is used to get all input and output statistics over all hard disks. to install this command in system use "yum install sysstat " .uses :-
iostat --> will show average of input and output operation on every disk partition .
iostat 2 --> will show continuously current io statistics .
mpstat:-
mpstat shows output stats of every processor available .
mpstat , mpstat -P all --> will how all processors statistics .
mpstat -P 0 --> will show just first processor output statistics .
uptime :-
it will show uptime of your server . that means from how much time your server is running . This will reset after restart of server . to use it just write uptime in shell and hit enterwall :-
this command is used to send a message to all shells of that system . Suppose many people are logged in on that server . If any one want to convey any message to all people then use wall .like :-wall "dont delete anyfile from directory /home/parveen" --> the message will appear to every one logged in the server
w,who,whoami ,who am i :-
these three commands will provide you details about how many user are logged in the system and from how much time .w --> will show details of all logged in users .
who -- > similar to w but show less details .
whoami --> will show you your username .
who am i --> will show you more details about your login .
top :-
top is most basic and mostly used command . it can provide complete overview of your system . This will show CPU usage , RAM usage , load on system ,which process is using maximum system .etc .htop :-
slightly modified version of top command . It show use individually of every CPU .rsync :-
this command is used to make two directoris in sync with each other . This can be used over two different systems or on the same system itself .rsynch -uar /home/parveen/ /home/backup/ --> this will send all updated file from /home/parveen/ directory to /home/backup directory .
rsync --rsh='ssh -p22' -aur root@192.168.0.1:/home/parveen/images/ /home/parveen/images/ --> this command will get all files from different machine to current machine .
lsof :-
it will provide list of open files . there are many uses of this command . like :-lsof --> list all opened files on the system
lsof /home/parveen/parveen.log --> will show open statistics for specific file /home/parveen/parveen.log
lsof +D /home/parveen/ --> will show files open under directory /home/parveen/
lsof -u root --> will show files opened by user root .
lsof -p 10 --> will specify opened file by specific process .i.e process id 10 .
find :-
this command is used to search any file in the system .this can be used like that :-find /home/ -name abc.txt --> this command will try to search file abc.txt under directory /home/ .
find / -name abc.txt --> this command will find abc.txt in the whole system .
find . -name abc.txt --> this command will find abc.txt in the current directory .
whereis :-
this command will search the location of commands . like:-whereis cp --> will show the location of cp command . This may also search is binary files .
alias :-
this command is used to create aliasing for any command. this command is helping to create shortcuts of commands .like :-alias pp="ls -lhtr" --> after this if you run pp command this it will show results equivalent to ls -lhtr
unalias:-
this command will remove the alias created .like:-unalias pp --> now pp will no longer be any alias .
df :-
this command is used to show storage usage of all hard disk partitions . like :-df -k --> this will show all partitions witgh there usage and free memory available in bits.
df -kh --> this will show size in MB KB and GB format .
du :-
this command is used to show disk usage by directories and files . this can be used in maby ways .du --> will show directories which are using some space that means files which are non empty .
du -a --> this comamnd will show all files . also will show empty files
du -ah --> will show memory in human readle form like KB MB GB .
du -s --> will show summarised memory .
du -sh * --> will show memory taken by all files and directory at your current location with human readable form .
diff:-
this command is used to find difference between two files . for comparison of two files this is well structured command .diff file1 file2 --> will print differences between this two files .
Basics commands of Unix / Linux
I will explain all basics of unix /linux here . Firstly basic directories of unix operating system .
** /bin --> this directory contains all essential files for correct functioning of operating system .all users have permissions of these files .
** /home in this directory all user's home directory resides . This is very commonly used directory .
** /var this directory contains all variables files like logs , db directory etc .
** /etc all system configuration files are stored here .
** /dev additional devices like cd-rom , pendrive , hard disk will found here .
** /sbin binary files , generaly super user uses these files .
** /tmp all temporary files stay here .
These locations are by default . For our ease we can change them also and we can use it .
Linux is case sensitive .
Permissions :-
As linux is multi-user operating system . Every file and directory have permissions defined for every user . Every file and directory have their owner . owner is a user . and also a group . group is group of users .
So we have three different type of permissions .
1) permissions given to owner
2) permissions given to group
3) permissions given to all other users .
And every file have three types of permissions
1) read permission -- those users who have read permission can read the file
2) write permission -- those users who have read permission can write into the file
3) execute permission -- user with this permission can execute the file .
Do ls –l in any directory
Then you will see something like
-rw-r--r-- 1 root root 13 June 5 11:21 file1
Here following will explain this .
r:readable, w:writable, x: executable
we can use two commands chmod and chown to change permissions and owner of the file respectively .
Now about commands of unix .
One command consists of three parts i.e command name , options , parameters .
example # grep -i "abcds" file.txt
here ,
grep --> command name
i --> option
abcds and file.txt are the parameters of the command .
Options will always start with - mark .
basic commands are :-
command name function
ls show files in current position
cd change directory
cp copy file or directory
mv move file or directory
rm remove file or directory
pwd show current position
mkdir create directory
rmdir remove directory
less, more, cat display file contents
man display online manual
su switch user
passwd change password
useradd create new user account
userdel delete user account
mount mount file system
umount unmount file system
df show disk space usage
shutdown reboot or turn off machine
sort this command is used to sort
to understand use of any command use man command
man <comand name >
e.g man cp -->> this comand will explain everything about cp
run some commands in your linux/unix machine then you will understand the difference .
ls
ls –a
ls –la
ls -Fa
ls .bash_profile
cp .bash_profile sample.txt
less sample.txt (note: to quit less, press “q”)
rm sample.txt
mkdir linux
pwd
cd linux
pwd
cd
pwd
rmdir linux
ls .bash_profile
cp .bash_profile sample.txt
less sample.txt (note: to quit less, press “q”)
rm sample.txt
df
df -k
df -hk
Paths:- relative and absolute path
Absolute Path :-
Absolute pathe is address from root path . like
/home/linux/
~/linux
Relative path :-
this path is relative to your current path
. / your current location
../ one directory above your current location
pwd it will show you your current directory
Run following command one-by-one and you will understand
pwd
cd .
pwd
cd ..
pwd
cd ..
pwd
cd
mkdir mydir
pwd
cd /Users/invite
pwd
cd /Users
pwd
cd /
pwd
cd /Users/invite
cd ~/mydir
Redirect, Append and Pipe
We know output of a command is shown on the screen . i f we want to process the output then we will need some special parts .Pipe "|" :-
some commands need input from another command or any file .
"|" pipe will help u in giving output of one command as input to another command
Append and redirect :-
'>' this sign will redirect output of a command to a file .
'>>' this sign will append all output to the end of the file.
Post a Comment