Html: Difference between revisions
Jump to navigation
Jump to search
Line 233: | Line 233: | ||
1; | 1; | ||
</pre> | </pre> | ||
* http://perlmeme.org/tutorials/cgi_form.html |
Revision as of 11:35, 21 November 2012
Some useful HTML tags about form
http://www.w3schools.com/html/html_forms.asp
form
<form action="demo_form.asp"> First name: <input type="text" name="FirstName" value="Mickey"><br> Last name: <input type="text" name="LastName" value="Mouse"><br> <input type="submit" value="Submit"> </form>
radio button label and input
<form action="demo_form.asp"> <label for="male">Male</label> <input type="radio" name="sex" id="male" value="male"><br> <label for="female">Female</label> <input type="radio" name="sex" id="female" value="female"><br> <input type="submit" value="Submit"> </form>
dropdown list select and option
<select> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="opel">Opel</option> <option value="audi">Audi</option> </select>
Upload file using input
<form action="demo_form.asp"> Select a file: <input type="file" name="img"> <input type="submit"> </form>
div
<div style="color:#0000FF"> <h3>This is a heading in a div element</h3> <p>This is some text in a div element.</p> </div>
PHP
PHP, form and POST method
# | index.php | welcome.php |
---|---|---|
1. | <html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html> |
<html> <body> Welcome <?php echo $_POST["fname"]; ?>!<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html> |
The 'action' attribute in <form> defines an absolute or a relative URL. That is, the action could be pointing to an asp, cgi page or something like "mailto:[email protected]".
PHP, form and GET method
index.php | welcome.php |
---|---|
<form action="welcome.php" method="get"> Name: <input type="text" name="fname" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> |
Welcome <?php echo $_GET["fname"]; ?>.<br /> You are <?php echo $_GET["age"]; ?> years old! |
GET, the default, will send the form input in an URL, whereas POST sends it in the body of the submission. The latter method means you can send larger amounts of data, and that the URL of the form results doesn't show the encoded form.
MySQL basic operations
- Log into root
$ mysql -u root -h myserver-sever.com -p
- Create a new mysql database called demo
mysql> CREATE DATABASE demo;
- create a new user and GRANT (add) privileges to a newly created user on all tables in the demo database.
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'mypassword'; GRANT ALL ON demo.* TO 'user1'@'localhost';
OR
mysql> GRANT ALL ON demo.* TO user1@localhost IDENTIFIED BY 'mypassword';
- How to connect to the demo database on local/remote MySQL server?
$ mysql -u user1 -h mysql.server.com -p demo
- To remove an account
DROP USER 'user1'@'localhost'
- Create a table on the demo database
mysql> USE demo; mysql> DROP TABLE Employee; mysql> CREATE TABLE Employee ( -> Name VARCHAR(50), -> Phone VARCHAR(15) -> ); Query OK, 0 rows affected (0.21 sec) mysql> Show tables; mysql> Describe Employee; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | Name | varchar(50) | YES | | NULL | | | Phone | varchar(15) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.03 sec) mysql> INSERT INTO Employee (Name, Phone) VALUES ('Joe Wang', '666 2323'); Query OK, 1 row affected (0.04 sec) mysql> INSERT INTO Employee (Name) VALUES ('John Doe'); Query OK, 1 row affected (0.02 sec) mysql> INSERT INTO Employee (Name, Phone) VALUES ('John Doe', NULL); Query OK, 1 row affected (0.01 sec) mysql> Select * from Employee; +----------+----------+ | Name | Phone | +----------+----------+ | Joe Wang | 666 2323 | | John Doe | NULL | | John Doe | NULL | +----------+----------+
PHP and database
CGI/Perl
On Ubuntu, the CGI script should be placed in /usr/lib/cgi-bin folder.
$ ls -lt /usr/lib/cgi-bin/ total 88 -rwxr-xr-x 1 root root 88 2012-07-22 21:45 testsh.sh -rwxr-xr-x 1 root root 871 2012-07-22 21:35 hello_post.cgi
Notice that mode is 755 for both files. The cgi script
$ cat /usr/lib/cgi-bin/testsh.sh #!/bin/sh echo "Content-type: text/html\n" echo "<html><body>Hello world</body></html>"
Open a web browser and enter http://localhost/cgi-bin/testsh.sh.
$ cat /usr/lib/cgi-bin/hello_post.cgi #!/usr/bin/perl local ($buffer, @pairs, $pair, $name, $value, %FORM); # Read in text $ENV{'REQUEST_METHOD'} =~ tr/a-z/A-Z/; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }else { $buffer = $ENV{'QUERY_STRING'}; } # Split information into name/value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%(..)/pack("C", hex($1))/eg; $FORM{$name} = $value; } $first_name = $FORM{first_name}; $last_name = $FORM{last_name}; print "Content-type:text/html\r\n\r\n"; print "<html>"; print "<head>"; print "<title>Hello - Second CGI Program</title>"; print "</head>"; print "<body>"; print "<h2>Hello $first_name $last_name - Second CGI Program</h2>"; print "</body>"; print "</html>"; 1;