ecabrera Posted April 11, 2012 Share Posted April 11, 2012 why is it that when i try to submit it tells me add a picture but i did added <?php //decarling some variables $msg = ""; //begin if if($_POST['submitbtn']){ $author = mysql_real_escape_string($_POST['author']); $date = mysql_real_escape_string($_POST['date']); $picture = $_FILES['picture']['name']; $ext = strtolower(substr($name,strpos($name,'.')+1)); $size = $_FILES['picture']['size']; $maxsize = 200000; $type = $_FILES['picture']['type']; $tmp = $_FILES['picture']['tmp_name']; $review = mysql_real_escape_string($_POST['review']); $move = "uploads/"; if(isset($author) && !empty($author)){ if(isset($date) && !empty($date)){ if(isset($picture) && !empty($picture)){ if($size <= $maxsize){ if($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png'){ if(move_uploaded_file($tmp,$move.$name)){ if(isset($review) && !empty($review)){ $query = mysql_query(" INSERT INTO reviews ('',author,date,picture,review) VALUES ('',$author,$date,$picture,$review)"); }else $msg = "Please write a review"; }else $msg = "Error has happen try again later"; }else $msg = "Image must be a jpg, jpeg, or png"; }else $msg = "You must select a smaller image size"; }else $msg = "Select a picture"; }else $msg = "Please enter a date"; }else $msg = "Please fill in the Authors name"; } //ending the if here ?> Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/ Share on other sites More sharing options...
MMDE Posted April 11, 2012 Share Posted April 11, 2012 I don't think this is your entire code... I want to read the code, since I can't really test it in it's current condition, but my problem with this is that you tell me your script gives you a message that I can't see anywhere in your code. What exactly does it output to you, and do you output the $msg variable? I would like to know what string the $msg variable points to. Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336303 Share on other sites More sharing options...
ecabrera Posted April 11, 2012 Author Share Posted April 11, 2012 the $msg is when i did somethng wrong it just display the erros <?php include "header.php";?> <?php if($email){?> <?php include "inc/nav.php"; ?> <div id="righthomecontent"> <?php //decarling some variables $msg = ""; //begin if if($_POST['submitbtn']){ $author = mysql_real_escape_string($_POST['author']); $date = mysql_real_escape_string($_POST['date']); $review = mysql_real_escape_string($_POST['review']); $picture = $_FILES['picture']['name']; $ext = strtolower(substr($picture,strpos($picture,'.')+1)); $size = $_FILES['picture']['size']; $maxsize = 200000; $type = $_FILES['picture']['type']; $tmp = $_FILES['picture']['tmp_name']; $move = "uploads/"; if(isset($author) && !empty($author)){ if(isset($date) && !empty($date)){ if(isset($picture) && !empty($picture)){ if($size <= $maxsize){ if($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png'){ if(move_uploaded_file($tmp,$move.$picture)){ if(isset($review) && !empty($review)){ $query = mysql_query(" INSERT INTO reviews ('',author,date,picture,review) VALUES ('',$author,$date,$picture,$review)"); }else $msg = "Please write a review"; }else $msg = "Error has happen try again later"; }else $msg = "Image must be a jpg, jpeg, or png"; }else $msg = "You must select a smaller image size"; }else $msg = "Select a picture"; }else $msg = "Please enter a date"; }else $msg = "Please fill in the Authors name"; } //ending the if here ?> <form class="createreview" action="createreview.php" method="post"> <table> <tr> <td></td> <td><?php echo $msg;?></td> </tr> <tr> <td>Author:</td> <td><input type="text" name="author" size="30"/></td> </tr> <tr> <td>Date:</td> <td><input type="text" name="date" /></td> </tr> <tr> <td>Main Picture</td> <td><input type="file" name="picture" /></td> </tr> <tr> <td>Review:</td> <td><textarea name="review" cols="75" rows="27"></textarea></td> </tr> <tr> <td></td> <td><input type="submit" name="submitbtn" /></td> </tr> </table> </form> </div> <?php } else { echo "<center><h1>PLEASE LOGIN</h1></center>"; } ?> <?php include "footer.php";?> Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336304 Share on other sites More sharing options...
MMDE Posted April 11, 2012 Share Posted April 11, 2012 the $msg is when i did somethng wrong it just display the erros <?php include "header.php";?> <?php if($email){?> <?php include "inc/nav.php"; ?> <div id="righthomecontent"> <?php //decarling some variables $msg = ""; //begin if if($_POST['submitbtn']){ $author = mysql_real_escape_string($_POST['author']); $date = mysql_real_escape_string($_POST['date']); $review = mysql_real_escape_string($_POST['review']); $picture = $_FILES['picture']['name']; $ext = strtolower(substr($picture,strpos($picture,'.')+1)); $size = $_FILES['picture']['size']; $maxsize = 200000; $type = $_FILES['picture']['type']; $tmp = $_FILES['picture']['tmp_name']; $move = "uploads/"; if(isset($author) && !empty($author)){ if(isset($date) && !empty($date)){ if(isset($picture) && !empty($picture)){ if($size <= $maxsize){ if($ext == 'jpg' || $ext == 'jpeg' || $ext == 'png'){ if(move_uploaded_file($tmp,$move.$picture)){ if(isset($review) && !empty($review)){ $query = mysql_query(" INSERT INTO reviews ('',author,date,picture,review) VALUES ('',$author,$date,$picture,$review)"); }else $msg = "Please write a review"; }else $msg = "Error has happen try again later"; }else $msg = "Image must be a jpg, jpeg, or png"; }else $msg = "You must select a smaller image size"; }else $msg = "Select a picture"; }else $msg = "Please enter a date"; }else $msg = "Please fill in the Authors name"; } //ending the if here ?> <form class="createreview" action="createreview.php" method="post"> <table> <tr> <td></td> <td><?php echo $msg;?></td> </tr> <tr> <td>Author:</td> <td><input type="text" name="author" size="30"/></td> </tr> <tr> <td>Date:</td> <td><input type="text" name="date" /></td> </tr> <tr> <td>Main Picture</td> <td><input type="file" name="picture" /></td> </tr> <tr> <td>Review:</td> <td><textarea name="review" cols="75" rows="27"></textarea></td> </tr> <tr> <td></td> <td><input type="submit" name="submitbtn" /></td> </tr> </table> </form> </div> <?php } else { echo "<center><h1>PLEASE LOGIN</h1></center>"; } ?> <?php include "footer.php";?> Okay, but what error does it give you? There is no error called "add a picture". So what does it say? Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336308 Share on other sites More sharing options...
ecabrera Posted April 11, 2012 Author Share Posted April 11, 2012 Select a picture Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336311 Share on other sites More sharing options...
MMDE Posted April 11, 2012 Share Posted April 11, 2012 Please correct me anyone if I'm wrong, but I think if(!empty()) does the same as if(isset()) just with an additional check to see if the variable is an empty string or not. So I don't think you need both every time, just if(!empty()). You should turn on error reporting. Your code has a notice on this line: if($_POST['submitbtn']){ Notice: Undefined index: submitbtn I would suggest you use this instead: if(isset($_POST['submitbtn'])){ The next notice I get is when I try to submit the picture, and I get 4 of them. "Undefined index: picture". They happen when I try to get the data using $_FILES['picture']. I therefor try to check if it is set at all: if(isset($_FILES['picture'])){ echo 'picture is set'; }else{ echo 'picture is not set'; } And it seems it's not, because I get the error, picture is not set. So then let's look at your HTML. After looking at it a bit closer, I see you miss the enctype parameter in the form tag. <form class="createreview" action="" method="post" enctype="multipart/form-data"> Adding it seems to do the trick when it comes to the actually allowing the $_FILES to be set. Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336317 Share on other sites More sharing options...
ecabrera Posted April 11, 2012 Author Share Posted April 11, 2012 I knew i forgot the enctype but i couldn't remember but one last thing why does it keep saying you must select a smaller image if the maxsize is $maxsize = 200000; Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336318 Share on other sites More sharing options...
MMDE Posted April 11, 2012 Share Posted April 11, 2012 I knew i forgot the enctype but i couldn't remember but one last thing why does it keep saying you must select a smaller image if the maxsize is $maxsize = 200000; Probably because your file is larger than 200kB.... I believe there is a setting in the php.ini file as well, but I don't think that's what's causing the error. 200kB is pretty small, so I think the image you are trying to upload is larger. Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336320 Share on other sites More sharing options...
ecabrera Posted April 11, 2012 Author Share Posted April 11, 2012 ok got it fix thanks Quote Link to comment https://forums.phpfreaks.com/topic/260724-scripts-for-review/#findComment-1336322 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.