【发布时间】:2014-09-28 04:19:14
【问题描述】:
我能否就这个示例代码获得一些帮助,尝试在将链接位置存储在数据库中的同时将图像添加到文件目录,但使用 PDO 而不是旧方法。
它基于我在网上找到的一个示例,该示例带有 dbconnect.php、save.php、addstudent.php 和其他一些不需要此查询的示例。
<form method="post" name="frmStudent" action="save.php">
<input type="hidden" name="pid" value="<?php echo $ppid; ?>"/>
<table>
<tr><td>First Name</td><td>:</td><td><input type="text" name="fname" required="required" value="<?php echo $pfname; ?>"/></td></tr>
<tr><td>Last Name</td><td>:</td><td><input type="text" name="lname" required="required" value="<?php echo $plname; ?>"/></td></tr>
<tr><td>Contact No.</td><td>:</td><td><input type="tel" name="contact" required="required" value="<?php echo $pcontact; ?>"/></td></tr>
<tr><td>Email</td><td>:</td><td><input type="email" name="email" required="required" value="<?php echo $pemail; ?>"/></td></tr>
<tr><td>Image</td><td>:</td><td><input type="file" name="email" required="required" value="<?php echo $pimg_url; ?>"/></td></tr>
<tr><td></td><td></td><td><input type="submit" class="myButton" value="Save"/></td></tr>
</table>
</form>
这是保存到数据库的代码
<?php
error_reporting(0);
include ("dbconnection.php");
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$contact=$_POST['contact'];
$email=$_POST['email'];
$img_url=$_POST['img_url'];
$id=$_POST['pid'];
if($id==null){
$sql="INSERT INTO student(fname,lname,contact,email,img_url)values(:fname,:lname,:contact,:email,:img_url)";
$qry=$db->prepare($sql);
$qry->execute(array(':fname'=>$fname,':lname'=>$lname,':contact'=>$contact,':email'=>$email,':img_url'=>$img_url));
}else{
$sql="UPDATE student SET fname=?, lname=?, contact=?, email=?, img_url=? where id=?";
$qry=$db->prepare($sql);
$qry->execute(array($fname,$lname,$contact,$email,$img_url,$id));
}
echo "<script language='javascript' type='text/javascript'>alert('Successfully Saved!')</script>";
echo "<script language='javascript' type='text/javascript'>window.open('index.php','_self')</script>";
?>
任何关于如何做到这一点的见解将不胜感激,谢谢。
【问题讨论】:
-
你需要通过基本抽象来清理你的代码
-
是的,用那一堆代码很容易破坏你的系统
-
您认为信息太多?
-
不,没那么多,但代码中充满了不好的做法,包括:1)打开SQL注入2)
open_base_dir相关补丁问题3)缺少抽象 -
抱歉,我知道您在这方面很精通,但是在我讨论第 1、2 和 3 点之前,您能否以某种方式强调它们?我的学习风格更注重视觉而非文字。
标签: php mysql pdo image-uploading