思路:form表單創建,提交後上傳用戶信息到數據庫,創建後臺,可實現增刪改查。
1 enroll.php <實現form表單的創建,並且可以提交到數據庫中>
<!DOCTYPE html>
<html>
<head>
<meta charset = 'utf-8'/>
<title>用戶註冊</title>
</head>
<body>
<form name = "form1" action = "dataconn.php" onsubmit="return a()" method="post" enctype="multipart/form-data">
<!-- 提交表單到dataconn.php中、dataconn.php實現連接數據庫,並將用戶信息插入到數據庫,傳送的方式是post
onsubmit 提交的時候先驗證 在script 標籤中的a函數-->
<!-- 上傳的含有非文本內容 如圖像 用enctype 編碼方式-->-->
姓名:<br/>
<input type = "text" name = "name" />
<br/><br/>
性別:<br/>
<input type="radio" checked="checked" name="sex" value = "男"/>男
<input type="radio" name="sex" value = "女" />女
<!-- checked 屬性是默認選中 兩個的name相同,說明兩個用的是一個單選按鈕 -->
<br/><br/>
愛好:<br/>
<input type = "checkbox" name = "interest[]" value = "跑步" checked = "checked"/>跑步
<input type = "checkbox" name = "interest[]" value = "健身" checked = "checked"/>健身
<input type = "checkbox" name = "interest[]" value = "攀巖"/>攀巖
<input type = "checkbox" name = "interest[]" value = "聽音樂"/>聽音樂
<input type = "checkbox" name = "interest[]" value = "讀書"/>讀書
<br/><br/>
手機號:<br/>
<input type = "text" name = "mobile"/>
<br/><br/>
郵箱:<br/>
<input type = "text" name = "email"/>
<br/><br/>
選擇頭像:
<input type = "file" name = "files" />
<br/><br/>
備註:<br/>
<textarea name = "remark" cols = "40" rows = "7"></textarea>
<br/><br/>
<input type = "reset" name = "reset" value = "重置信息" style="height:30px;width:70px;"/>
<br/><br/>
<input type = "submit" name = "submit" value = "提交信息" style="height:30px;width:70px;"/>
<!--會提交最上面form action 後面的路徑中去,在由.php 文件去處理收到的數據-->
<br/><br/>
<input type = "button" name = "button1" value = "退出" onclick = "window.close()" style="height:30px;width:70px;"/>
<br/><br/>
<!--添加的onclick 只要點擊就會退出頁面-->
</form>
<script>
// 進行用戶輸入信息驗證
function a() {
var x = document.forms["form1"]["name"].value;
if (x==null || x== ""){
alert("請輸入名字");
return false;//
}
var z=document.forms["form1"]["mobile"].value;//得到手機號
var r = /^1[34758][0-9]\d{8}$/;
if(!r.test(z)){
alert("請輸入正確的手機號");
return false;
}
var y=document.forms["form1"]["email"].value;
var atpos=y.indexOf("@");
var dotpos=y.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=y.length){
alert("請輸入正確的郵箱地址");
return false;
}
var c = document.forms["form1"]["files"].value;
if (c==null || c== ""){
alert("請選擇頭像");
return false;//
}
}
</script>
</body>
</html>
2 dataconn.php <連接數據庫並向數據庫中插入用戶信息 增>
<?php
//但是首先要在數據庫中創建一個表單,在後面會寫到,用的是Navicat 軟件
header('content-type:text/html; charset=utf-8');
$mysqli = mysqli_connect('localhost','root','3589216','php10');//mysql數據庫中自己設置的密碼
mysqli_query($mysqli,"set names 'utf8'");
//設置的是數據庫的編碼方式https://blog.csdn.net/Lewis_lxc/article/details/82731054
if (!$mysqli) {
printf("Can't connect to MySQL Server. Errorcode: %s ", mysqli_connect_error());
exit;
}
mysqli_set_charset($mysqli,"utf8");// 修改數據庫連接字符集爲 utf8
$name = $_POST['name'];//這是從HTML界面傳過來的值 enroll.php
$sex = $_POST['sex'];
$remark = $_POST['remark'];
$mobile = $_POST['mobile'];
$interest = $_POST['interest'];
$email = $_POST['email'];
//處理上傳的圖片文件
//定義了一個函數,獲取後綴名, 應該有更方便的方法,下面用
function GetFiletype($Filename)
{
if (substr_count($Filename, ".") == 0) { // 檢查文件名中是否有.號。
return; // 返回空
} else if (substr($Filename, -1) == ".") { // 檢查是否以.結尾,即無擴展名
return; // 返回空
} else {
$FileType = strrchr($Filename, "."); // 從.號處切割
$FileType = substr($FileType, 1); // 去除.號
return $FileType; // 返回
}
}
//創建一個函數,可以遞歸創建多層路徑 下面用
function mkdirs($path){
if(!is_dir($path)){
mkdirs(dirname($path));
if(!mkdir($path, 0777)){
return false;
}
}
return true;
}
if(isset($_FILES[$files])){
echo json_encode(array('err'=>'上傳文件失敗'));
die;
}else{
$files = $_FILES['files']['name'] ;//獲取傳過來的圖片名稱
$fileext = getfiletype($files);//由上面的函數,獲得後綴名
$rand_name = date('His',time()).rand(1000,9999);//將傳過來的圖片重命名
$filename = $rand_name.'.'.$fileext;//修改後文件的名字
$path = "/upload/image/".date('Ymd',time());//將圖片存儲到一個新的路徑
$realpath = ROOT_DIR.'/'.$path.'/';
mkdirs($realpath);//創建路徑,根據上面的函數
$attach_filesize =filesize($_FILES['files']['tmp_name']) ;
if($attach_filesize>20*1024*1024){
echo json_encode(array('err'=>'文件太大'));
die;
}
move_uploaded_file($_FILES['files']['tmp_name'],$realpath.$filename);//將照片移動到新路徑
$fileupload = $realpath.$filename;//將$fileupload 上傳到數據庫,展示在後臺
}
$interest1 =implode(",", $interest);// 由於興趣是多選 所以要將傳過來的數組,變成字符串的形式
$sql = "insert into msg(name1,sex,remark,mobile,interest,email,files) values('{$name}','{$sex}','{$remark}','{$mobile}','{$interest1}','{$email}','{$fileupload}')";
//mysql語句
$res = mysqli_query($mysqli, $sql);//插入
if($res == true ){
echo '提交成功';
}else{
echo '提交失敗';
}
?>