1.実験時間
2時間
2.実験目的
1. PHP 関数のカスタマイズ方法をマスターします。
2. PHP プログラムのデータ入力方法をマスターします。
3. PHP Web のリダイレクト方法をマスターします。
4. PHP の選択とループ構造の使用に熟練している。
5. オブジェクト指向プログラミング構文をマスターする
3.実験設備
Win10オペレーティングシステム、Word2019、PHPStudy+eclipse for phpを搭載したPCコンピューター
4.実験内容と手順
( 1 )実験手順
①新規プロジェクトファイル — new — ローカル PHP プロジェクト
②新しいphpファイルtest-new-PHPファイルを作成します。
③コードを入力して保存します
④ブラウザ上でコードが正しいことを確認し、実行結果を出力します。
( 2 )実験内容
[1] ユーザー登録機能とユーザーログイン機能の実装(実装する2つの機能として記述)
フロントエンド静的ページのソースコード:index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="login.php" method="post">
<table align="center">
<tr>
<td>学号:</td>
<td><input type="text" name="num"></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="男" checked>男
<input type="radio" name="sex" value="女">女
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="zhuce" id="" value="注册">
<input type="submit" name="ok" id="" value="登录">
<input type="reset" name="" id="" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>
フォームハンドラーのソースコード:login.php。プログラムには、register() と login() という 2 つのメソッドが含まれています。
このうち、 register() メソッドで入力した学籍番号は、8桁であるか形式が正しいかを正規表現で判定しており、登録情報は表示されますが形式が正しくなく、「登録に失敗しました。学籍番号の形式が間違っています!」
<?php
require_once 'student.class.php';
function login(){
if (isset($_POST['ok'])){
$xh = $_POST['num'];
$xm = $_POST['name'];
$xb = $_POST['sex'];
$stu=new student();
$stu->set($xh,$xm,$xb);
if ($stu->login()=='1'){
echo '登陆成功!';
}
else {
echo '登陆失败!';
}
}
}
function register(){
if (isset($_POST['zhuce'])){
$xh = $_POST['num'];
$xm = $_POST['name'];
$xb = $_POST['sex'];
$checkxh=preg_match('/^\d{8}$/',$xh);//检查学号是否是8位数字
$stu=new student();
$stu->set($xh,$xm,$xb);
if($checkxh){
$stu->show($xh, $xm, $xb);
echo '</br>';
}
else
echo "注册失败,学号格式不对!";
}
}
login();
register();
?>
オブジェクト指向プログラミング用のstudent.class.php
<?php
class student{
private $num;
private $name;
private $sex;
public function show($xh,$xm,$xb){
$this->num=$xh;
$this->name=$xm;
$this->sex=$xb;
echo '学号:'.$this->num.'</br>';
echo '姓名:'.$this->name.'</br>';
echo '性别:'.$this->sex.'</br>';
}
public function set($xh,$xm,$xb){
$this->num=$xh;
$this->name=$xm;
$this->sex=$xb;
}
public function login(){
if ($_POST['name']=='admin'){
return '1';
}
}
}
?>
結果のテストを実行します。
- フロントエンドページ
- 登録時に入力した学籍番号が8桁以外の場合
- 登録時に入力する学籍番号は8桁です
- ログイン時の名前は admin です。つまり、入力された情報は正しいです。
- ログイン時に間違った情報を入力した場合
[2] ページは 8 桁のランダムな文字列を出力し、ランダムに表示されるコンテンツの範囲は大文字と小文字に加えて 0 ~ 9 の数字です。
<?php
function randstring($n){
$a=range('a', 'z');
$b=range('A', 'Z');
$c=range('0', '9');
$d = array_merge($a,$b,$c);
$str='';
for ($i=1;$i<=$n;$i++){
$str.=$d[rand(0,count($d)-1)];
}
return $str;
}
$str=randstring(8);
echo $str;
?>