ACM Web Development Workshop - PHP By Luis Torres
DON’T FORGET TO INSTALL “WAMP or MAMP SERVER” ON YOUR COMPUTER google/yahoo/bing it
Running wamp:
Click Start the services!
Localhost will open whatever is named index.html/index.php in the www directory
This folder will contain our website files, if you want to run a php file it has to be INSIDE of this folder
This is how the www folder will look like.(more or less)
Open “index.php”, erase all its content and replace with the following BE CAREFUL: This is the concatenation character in PHP. In java is the “+” character. Don’t confuse them!
Different approaches to code in php
Lets do functions! Our function doMath will take two inputs, and compute its sum. Since we are not declaring types, we ASSUME that the inputs will be integers. Inside the function we could check the types if we wanted to make sure that everything is ok.
OMG PHP is easy :D Well.. Lets continue to the other stuff
PHP $_GET Purpose: Sometimes we want the same page to have a function that can do multiple outputs based on the input. Ex: google search will work the same way, but will yield different outcomes.
PHP $_GET How does it works? In the google example, they use the URL, to pass variables that will be used in that page.
Wait… What? Lets go back to the doMath function. For the purpose of teaching, lets assume you have this URL: (you hard code the rest of the url) Lets break it down: localhost/yourFile.php <- this is your file ? Question mark shows where variables begin variableA <- the variable “varaibleA” has a value of 2 & <- this character concatenates multiple variables variableB <- the variable “varaibleB” has a value of 3
Notice how you get the values using get. GET will always get values from the URL
But without the URL it wont work :’( Here is how to fix that, just check if the $_GET “isset()”: <?php if(isset($_GET['variableA'])) { $a=$_GET['variableA']; } else { echo "no input in URL, using variableA as 2 "; $a=2; } if(isset($_GET['variableB'])) { $b=$_GET['variableB']; } else { echo "no input in URL, using variableB as 3 "; $b=3; } echo doMath($a,$b); ?> <?php function doMath($a,$b) { return $a+$b; }
Now it works for both
But, how can I change the values being passed without hardcoding? We have Forms variable A: variable B: <?php Rest of the code from previous example… ?>
How does it work? variable A: variable B: <?php Rest of the code from previous example… ?> Input type submit is a button, after clicking the button it will go to the specified file, with the specified values and execute. Will be obtained in yourFile.php using $_GET[‘variableName’]
What if I want to be mysterious and not show anything in the URL? You can use the POST function Similar to $_GET[‘variable’], you use $_POST[‘variable’] variable A: variable B: … <?php if(isset($_POST['variableA'])) { $a=$_POST['variableA']; } … …. You get the idea, it will work, and wont show the variables in the URL
Are they different? GET -variables shown at all times… horrible if you use get to pass a password -since it is shown in the URL, you can bookmark a specific location on your browser. Cool now you can send a specific query of a website to a friend. -URLs have a size limit! 2048 characters POST -variables hidden… you want to use this when submitting a password -cant be bookmarked, useful if you don’t want users to return to a specific part of a site…like submitting the payment. Since post variables don’t stay there, when the code tries to execute it will fail because of the missing variables. -don’t have a limit, and they are encrypted
PHP Include What if you have a multiple functions, and you don’t want to copy paste them on all your files. Really simple:
PHP Include WONT WORK if you put the include after you method call. Make sure all your includes are at the top of your code if possible.
Ermm we got this far..? We are missing: forms with PHP (dynamic forms) Sessions SQL/databases Javascript Ajax So basically another workshop or 2..or more.