Want to store and retrieve data from database including image, able to store image but unable to display it, due to isset()
error.
Following are the files I have used.
HTML form
<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 file to store and retrieve data to and from database
<?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
?>
get. php, Additional file to output data, this file has been used in <img src=get.php?id=$lastid>
and $_REQUEST
is used in this file. The flow of control is not going through isset()
creating problem.
$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";
}
?>
This is the first time i posted anything on discussion forum, precisely the question should be, what could be possibly wrong with this code:
$lastid=mysql_insert_id();//get the id of the last record
echo "<img src='get.php?id=".$lastid."'>";
where get.php is :
<?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";
}
?>