phpinfo();打印php服务信息
如果有语法错误
开发模式/生产模式(屏蔽错误):
php.ini
display errors=on
重启服务器
php.ini
搜索display_errors 默认是display_errors=Off 改成display_errors=On 保存退出重启apache2 即可
短标记short open tag默认off(<??>)
asp tag 支持<%%>
注释风格:// # /**/
打印echo()或echo :其中为html时可以控制显示html页面元素
参数只有一个时可以去除圆括号
定界符:echo <<<EOT ***
EOT;(前面不能有空格)
“”中不能有换行,EOT比较方便,类似模板字符串
不能直接在php标签中放html代码,需要echo
php声明不需要类型:$,在””中$可自动显示变量值,$后的html需要隔开用字符串连接符
字符串拼接连接符:.
php resource存储各类型数据
web service网络接口
静态变量配合静态类:共享
单例模式(静态类,只有一个实例)
工厂
DAO
代理(面向切面
依赖注入(使用对象时
静态变量声明只有第一次声明有效
全局 global
Java认为全局变量破坏封装性,需要时可用静态
request接收参数同时各种,最好是put和delete
增删改查post/delete/put/get
跳转显示数据
name属性,接收
超链接传值(get),session,cookie
单选控件需要加value
==时能够自动类型转换
===类型相同
elseif中间空格
php函数
function
所有参数加$符号
内置函数:echo
查找字符串strstr(“hello”,”o”);返回在字符串中位置
填写电子邮件,验证格式
把校验功能封装到函数
Htmlspecialchars
加密函数md5(数据库安全隐患)
通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件
include:代码执行时加载,碰到错误继续执行
require:只要当前页加载就预加载
php数组:键值对(数据字典)
分配键名(若为数字,往后自动指定)
实验2(3):表单信息校验
实验内容:
1、在上次作业的基础上,在registerverify.php页面添加对注册页面提交来的数据进一步进行校验,功能描述如下:
(1)账号长度不能超过10,否则提示以下信息,并提供返回链接
(2)密码长度不能少于6位,否则提示以下信息,并提供返回链接:
(3)密码与确认密码应当一致,否则提示以下信息,并提供返回链接:
(4)电子邮件地址必须含有”@”和”.”字符,否则提供以下信息,并提供返回链接
(5)当所有校验都完成后,页面会显示用户注册信息:
js调用php和php调用js的方法
PHP与JS互相调用的原则就是数据类型的互转:
1:对于不同的语言,两互相调用的准则就是参数的数据类型的转化
2:PHP与JS都是b/s脚本语言,浏览器集成了PHP的解释器和js的解释器,所以当浏览器读到关键字时就会调用相应的解释器来解析网页语言,因此php与js互相调用的本质是 参数(语法规则)的相互转化,也就是利用PHP的echo函数将数据类型统一化
3:PHP给js传参--> 利用echo把PHP的语法规则转化为js的语法规则,PHP用到JS的返回值 --->就是利用echo把js的返回值转化为PHP的语法格式
<html> <body> <script type="text/javascript"> var str = 'values'; </script> <?php echo "<script type=text/javascript>document.write(str)</script>"; ?> </body> </html> |
Php表单校验
http://www.w3school.com.cn/php/php_form_validation.asp
我们要做的第一件事是通过 PHP 的 htmlspecialchars() 函数传递所有变量。
在用户提交该表单时,我们还要做两件事:
1.(通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行)
2.(通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\)
接下来我们创建一个检查函数(相比一遍遍地写代码,这样效率更好)。
我们把函数命名为 test_input()。
现在,我们能够通过 test_input() 函数检查每个 $_POST 变量,脚本是这样的:
<?php // 定义变量并设置为空值 $name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") { $name = test_input($_POST["name"]); $email = test_input($_POST["email"]); $website = test_input($_POST["website"]); $comment = test_input($_POST["comment"]); $gender = test_input($_POST["gender"]); }
function test_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } ?> |
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> |
<dd> 账号:<input type="text" name="username" class="text" /> </dd> <dd> 密码:<input type="password" name="password" class="text" /> </dd> <dd>确认密码:<input type="password" name="password2" class="text" /> </dd> <dd>电子邮箱:<input type="text" name="email" class="text"/> </dd> <dd>性别: <input type="radio" name="sex" value="男" checked="checked" />男 <input type="radio" name="sex" value="女" />女 </dd> <dd>出生年月: <select id="testSel" name="birth_y"> </select> 年 <select id="monthSel" name="birth_m"> </select> 月 </dd> <dd> 验证码:<input type="text" size="4" name="code" class="text" id="code_input"/> <div id="v_container" style="width: 100px;height: 50px;"></div></dd> |
Php无法访问全局变量
在局部作用域内,使用global关键字声明与全局作用域变量名称相同的变量即可。原因:这样声明之后,全局作用域内的变量和局部作用域内与之同名的变量指向了同一块内存
没事还是传值或者直接写吧
CSS控制图片和文字在同一行显示且对齐的3种方法
https://www.cnblogs.com/jingwhale/p/4599327.html?utm_source=tuicool
<img src="logo.jpg" alt="" style="vertical-align:middle"><a href="">找回密码</a> |
div居中
margin:0 auto;
//左右居中,上下0
字符串处理
strchr(string $haystack , mixed $needle [, bool $before_needle = false ] )
strchr(同strstr)
返回从第一次出现的位置到haystack 结束的字符串或false(没有找到
$haystack 被查找的字符串
$needle 要查找的字符串(如果不是字符串,将被转化成整型并且作为字符的序号来使用)
$before_needel 控制返回结果
strchr('hello world!','wor') 返回world!
strchr('name@example.com','@',true) 返回name
效果图
完成作业2019.3.13版本下载地址:https://download.csdn.net/download/lagoon_lala/11017492