PHP开发企业网站教程之修改产品
也是根据表单提交所带的参数 id 在数据库进行查询
代码如下所示:
<?php
require_once('conn.php');
$id = $_GET['id'];
$sql = "SELECT * from product where id= '$id'";
$res = mysql_query($sql);
$info = mysql_fetch_array($res);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>修改产品</title>
<style type="text/css">
#cnt{
width:400px;
height:400px;
margin-top:15px;
margin-left: 15px;
}
iframe{border:0px;}
</style>
</head>
<body>
<div id="cnt">
<form method="post" action="modifyproduct.php?id=<?php echo $info['id']?>" enctype="multipart/form-data">
产品名称:<input type="text" name="title" id="title" value="<?php echo $info['title']?>"></br></br>
<iframe src="file.php"></iframe>
<input type="text" id="imgname" name="imgname" value="<?php echo $info['imgname'];?>"></br></br>
产品价格:<input type="text" name="price" value="<?php echo $info['price']?>">
</br></br>
<input type="submit" value="修改产品">
</form>
</div>
</body>
</html>大家看到我们表单中有一个file.php 的文件
修改的时候,我们也许会重新上传图片,所以我用了一个iframe的标签,
我们来看下file.php的代码:
<?php
if(!empty($_POST['go']) && $_POST['go']==1){
//接受文件,临时文件信息
$fileinfo=$_FILES["myFile"];//降维操作
$filename=$fileinfo["name"];
$tmp_name=$fileinfo["tmp_name"];
$size=$fileinfo["size"];
$error=$fileinfo["error"];
$type=$fileinfo["type"];
//服务器端设定限制
$maxsize=10485760;//10M,10*1024*1024
$allowExt=array('jpeg','jpg','png','gif');//允许上传的文件类型(拓展名
$ext=pathinfo($filename,PATHINFO_EXTENSION);//提取上传文件的拓展名
//目标存放文件夹
$path="../uploads";
if (!file_exists($path)) { //当目录不存在,就创建目录
mkdir($path,0777,true);//创建目录
chmod($path, 0777);//改变文件模式,所有人都有执行权限、写权限、度权限
}
//得到唯一的文件名!防止因为文件名相同而产生覆盖
$uniName=md5(uniqid(microtime(true),true)).".$ext";
//md5加密,uniqid产生唯一id,microtime做前缀
//目标存放文件地址
$destination=$path."/".$uniName;
//当文件上传成功,存入临时文件夹,服务器端开始判断
if ($error==0) {
if ($size>$maxsize) {
exit("上传文件过大!");
}
if (!in_array($ext, $allowExt)) {
exit("非法文件类型");
}
if (!is_uploaded_file($tmp_name)) {
exit("上传方式有误,请使用post方式");
}
//判断是否为真实图片(防止伪装成图片的病毒一类的
if (!getimagesize($tmp_name)) {//getimagesize真实返回数组,否则返回false
exit("不是真正的图片类型");
}
//move_uploaded_file($tmp_name, "uploads/".$filename);
if (@move_uploaded_file($tmp_name, $destination)) {//@错误抑制符,不让用户看到警告
echo "<script>parent.document.all.imgname.value = '$destination';</script>文件".$filename."上传成功!";
}else{
echo "文件".$filename."上传失败!";
}
}else{
switch ($error){
case 1:echo "超过了上传文件的最大值,请上传2M以下文件";break;
case 2:echo "上传文件过多,请一次上传20个及以下文件!";break;
case 3:echo "文件并未完全上传,请再次尝试!";break;
case 4:echo "未选择上传文件!";break;
case 7:echo "没有临时文件夹";break;
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="?" enctype="multipart/form-data">
上传文件:<input type="file" name="myFile"></br></br>
<input type="hidden" value="1" name="go">
<input type="submit" value="上传"></br></br>
</form>
</body>
</html>在本页面进行对上传的文件进行处理
我们接着往下看modifyproduct.php文件的代码
<?php
require_once('conn.php');
$id = $_GET['id'];
$title = $_POST['title'];
$imagename = $_POST['imgname'];
$price = $_POST['price'];
$goodtime = time();
$sql = "UPDATE product SET title='$title',imgname='$imagename',price='$price',goodtime='$goodtime' where id='$id'";
$res = mysql_query($sql);
if($res){
echo "<script>alert('修改产品成功');location.href='product.php'</script>";
}else{
echo "<script>alert('修改产品失败');history.go(-1);</script>";
}
?>综合上述代码我们就完成了产品修改的功能
