PHP Basic

  • PHP symbol: <? php -------content--------- ?>
  • Every PHP statement must be ended with a semicolon
  • The PHP variable must start with dollar mark and without any whitespace.
  • $_POST is a default super global variable (data array) that binds with the post method of html form, all the data in the form will be wraped into the $_POST variable. To fetch a specific field from the html form, use the attribute name of tag input. $_POST["...."]
  • the dot notation allow the conjointion of multiple variable.
  • echo used to print the html to the browser, using double quotation marks to wrap the variable and string together.
  • The content inside the single quotation marks is treated as pure text.
  • The php variable can be directly used inside the double quotation marks.
  • The line break must be used insides the double quotation marks.
  • Function: mail ($to, $subject, $msg, 'From:' . $email );
  • Database function:
  • mysqli_connect():
    • parameter 1: Database server location
    • parameter 2: Database username
    • parameter 3: Database password
    • parameter 4: Database name
  • mysqli_query (return resource ID numbers):
    • parameter 1: variable that stores the function mysqli_connect
    • parameter 2: variable that stores the query string.
  • mysqli_close:
    • parameter: variable that stores the function mysqli_connect
  • use logic notation or to include function die("error info")
  • $row = mysqli_fetch_array($result):
    • variable $row is a array that stores a single row data of database.
    • variable $result stores a specific resource id
    • Common usage: while($row = mysqli_fetch_array($result))
  • Verification PHP defines empty value as: 0, '' "", false and NULL,
  • isset() return true when variable is already assigned (include empty value).
  • empty() return true only if the variable haven't been assigned.
  • PHP logic structure:
  •    if(){                         while(){
       }                              }            
    
       use if statement to judge whether need to print out the content (when the form is wrong and needs to remain intact):
    

<?php
if ( ) {
?>
html content (if the html content repeats too much time, set a flag variable)
<?php
}
?>

foreach ($group as $single) {}

- **Implement sticky form**
- Step1: use variable `$_POST` to  judge the form submitted or not at the very beginning, and add more verification into the if block.
- Step2: change the attribute `action` to `action = "<?php echo $_SERVER['PHP_SELF']; ?>"`
- Step3: change the attribute `value` to the corresponding variable `value = "<?php echo $variableName;  ?>"` in order to be sticky.
- Need to check the variable `$_POST[submit]` to find out the form is just generated or not.
-  Add `[]` after the the attribute `name` can generate an array in `$_POST` to store the value of attribute `value` (tag `input checkbox`  use for deletion at database)
- ```                
    <input value=" $row['id']"  name="todelete[]">
    <?php
         foreach ( $_POST['todelete'] as $deleteid) {}
    ?>
  • Adding uploading files function into form:
  • add more attribute into the form tag: enctype="multipart/form-data"
  • add more input tag under form tag: <input type="hidden" name="MAX_FILE_SIZE" value="32768" /> to define the maximal file size.
  • add file upload field: <input type="file" id="screenshot" name="screenshot" />
  • Get the inofrmation about the uploaded file $_FILES:
    • $_FILES['screenshot']['name']: the file name.
    • $_FILES['screenshot']['type']: the file type.
    • $_FILES['screenshot'][size]: the file's size.
    • $_FILES['screenshot']['tmp_name']: the file's temporary store location
    • $_FILES['screenshot']['error']: the error code of file uploading, and zero represents success.
  • Function : is_file() tells whether the filename is a regular file.
  • Function: fileszie() tells the file size.
  • Function: move_upload_file($_FILES['screenshot']['tmp_name'], $target), accept two parameter, the source location and target location. (you can change the initial save location by modifying the php.ini)
  • Define a const variable: define('GW_UPLOADPATH', 'image/')
  • Make the const variable into another files, and import into other files when is necessary. using require_once('xxxxx.php')
  • Communication between scripts:
  • post method through the form
  • Get method (send data parametersas key/value pairs encoded within URL):
    • ? ---split URL in two pieces: address to left and parameters to right
    • &---must be used to separate on parameter from another.
    • All the parameters will finally be stored into the $_GET
  • Get method usually used to fetch data from server and won't change the state of server ( eg: select row from the database);
    Postmethod is suitable for those reuqests that change the state of databse.

Using PHP to control the head of http

  • Function: header(), the call of this function should at the first line of every php script. And the head should be the first file that sent from server to broswer.
  • The username and password are all stored in variable $_SERVER
  • The http authentication's basic realm is a safe zone that connects to a specific group of username and password, and allow multiple pages got the same protection. Once successfully logged in, the authentication window won't be popped up for the rest of pages in some realm.
  • Function: exit() call this function will immediately exit the current php script and only display the content inside the exit function.
<?php
    //User name and password for authentication
    $username = 'rock';
    $password = 'roll';

    if( !isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || 
($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password) ) {
        header('HTTP/1.1 401 Unauthorized');
        header('WWW-Authenticate: Basic realm="XXXXXX"');
        exit('Sorry, you must enter a valid user name and password to access');
    }
?>

Solution to SQL injection

  • Function trim(): get rid of the white space around the string
  • Function mysqli_real_escape_string() handle other dangerous and meaningless characters, need two parameters, one is database connection variable and another is string.
  • Alter the database table.
  • Using other authentication function like function is_numeric()

User Login management

  • MySQL Function SHA(): encry a password to a 40 characters long string, and need to be part of the inquery string
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容