由于isset()
错误,想要存储和检索数据库中的数据,包括图像,能够存储图像但无法显示图像。
以下是我使用的文件。
HTML表单
<html>
<title>reg</title>
<style type="text/css">
body {
background-color: rgb(200,200,200);
color: white;
padding: 20px;
font-family: Arial, Verdana, sans-serif;}
h4 {
background-color: DarkCyan;
padding: inherit;}
h3 {
background-color: #ee3e80;
padding: inherit;}
p {
background-color: white;
color: rgb(100,100,90);
padding: inherit;}
</style>
<form method="POST" action="login_back.php" enctype="multipart/form-data"></br>
 <font color="DarkCyan"> Choose a user name:</font> <input type="text" name="username">
</br></br>
 <font color="DarkCyan"> First name:</font> <input type="text" name="firstname"/>
</br></br>
 <font color="DarkCyan"> Last name:</font><input type="text" name="lastname"/>
</br></br>
 <font color="DarkCyan"> File: <input type="file" name="image"></font>
</br></br>
<input type="submit" value="Save and Proceed">
</form>
</html>
用于存储数据库和从数据库检索数据的PHP文件
<?php
#echo "<body style='background-color:rgb(200,200,200)'>";
session_start();
if( isset($_POST['username']) && isset($_FILES['image']) )
{
$_SESSION['username']=$_POST['username'];
$_SESSION['firstname']=$_POST['firstname'];
$lastname=$_POST['lastname'];
$file=$_FILES['image']['tmp_name'];
$image_size=getimagesize($_FILES['image']['tmp_name']);
if(!isset($file))
echo"please select an image";
else
{
$image_name=$_FILES['image']['name']; //grabing image name
$image_size=getimagesize($_FILES['image']['tmp_name']); //getting image size
}
echo "</br>";
#connection to db
mysql_connect("localhost","root","")or die(mysql_error());
mysql_select_db("wordgraphic")or die(mysql_error());
#checking the available username
$query = mysql_query("SELECT * FROM userdata WHERE username = '" . $_SESSION['username'] . "'" );
$ans=mysql_num_rows($query);
if ($ans > 0)
{
echo "Username already in use please try another.";
}
else if($image_size==FALSE)
{
echo"That's not an image.";
}
else
{
#Insert data into mysql
#1.Inserting user name & image into db
$sql="INSERT INTO userdata(username, firstname, lastname, image)VALUES('" . $_SESSION['username'] . "', '" . $_SESSION['firstname'] . "', '$lastname','$image')";
$result1=mysql_query($sql);
if($result1)
{
echo "</br>";
echo "Registration successful";
echo "</br>";
//displaying image
$lastid=mysql_insert_id();//get the id of the last record
echo "uploaded image is :";
echo "<img src='get.php?id=".$lastid."'>"; > this command has some mistake
}#if insertion into db successful
else
{
echo "Problem in database operation";
}
}# else block of unique username n img
}#end of isset
?>
得到。 php,输出数据的附加文件,此文件已在<img src=get.php?id=$lastid>
中使用,此文件中使用$_REQUEST
。控制流不会通过isset()
创建问题。
$image=mysql_query("SELECT * FROM userdata WHERE id=$mid") or die("Invalid query: " . mysql_error());
$image=mysql_fetch_assoc($image);
$image=$image['image'];
header("Content-type: image/jpeg");
echo $image;
}
else
{
echo"error";
}
?>
答案 0 :(得分:0)
这是我第一次在论坛上发布任何内容,问题应该是, 这段代码可能有什么问题:
$lastid=mysql_insert_id();//get the id of the last record
echo "<img src='get.php?id=".$lastid."'>";
其中get.php是:
<?php
#connection to db
mysql_connect("localhost","root","")or die(mysql_error());
mysql_select_db("wordgraphic")or die(mysql_error());
if(isset($_REQUEST['id']) ) > this block of code is not runninng
{
$mid=(int)($_REQUEST['id']);
$image=mysql_query("SELECT * FROM userdata WHERE id=$mid") or die("Invalid query: " . mysql_error());
$image=mysql_fetch_assoc($image);
$image=$image['image'];
header("Content-type: image/jpeg");
echo $image;
}
else
{
echo"error";
}
?>