NONAME_2 Posted February 1, 2011 Share Posted February 1, 2011 Hi , i have a form that contains news material ;it has 2 problem: 1- there is a logo image that i wanna to store it as BLOB but it stores an empty 5KByte; i guess i can use fopen,fread. 2- i upload my other 3 image and it uploaded in definded path but in insert: Notice: Undefined offset: 0 in C:\wamp\www Notice: Undefined offset: 1 in C:\wamp\www Notice: Undefined offset: 2 in C:\wamp\www and it doesn't store. All of Above: $query = "INSERT INTO news SET ..". --> if (!empty($_FILES['logo'])) $query .= ", preimage='".$_FILES['logo']."' "; --> if (isset($newsimg[0])) $query .=",newsimg1='$newsimg[0]'" ; --> if (isset($newsimg[1])) $query .=",newsimg2='$newsimg[1]'" ; --> if (isset($newsimg[2])) $query .=",newsimg3='$newsimg[2]'" ; . . --> chdir('../Dir/Newsimg/'); --> if (isset($newsimg[0])) unlink($newsimg[0]); --> if (isset($newsimg[1])) unlink($newsimg[1]); --> if (isset($newsimg[2])) unlink($newsimg[2]); My Form: <div id="postedit" class="clearfix"> <h2 class="ico_mug">ADD NEWS</h2> <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data"> <div> <input id="post_title" type="text" size="30" tabindex="1" name="post_title" value="Title" /> </div> <div id="form_middle_cont" class="clearfix"> <div class="left"> <textarea id="markItUp" cols="80" rows="10" tabindex="2" name="markItUp"></textarea> </div> <div class="left form_sidebar"> <h3>Is A Member?</h3> <ul> <li> <label><input type="checkbox" class="noborder" name="chbox" />Yes</label></li> </ul><BR/> <ul> <h4>News Pictures:</h4> <li><input type=file name="logo" size=20 accept="image/png"> </li> <li><input type=file name="file[]" size=20 accept="image/jpg,image/jpeg,image/png"> </li> <li><input type=file name="file[]" size=20 accept="image/jpg,image/jpeg,image/png"> </li> <li><input type=file name="file[]" size=20 accept="image/jpg,image/jpeg,image/png"> </li> </ul> <p> <input type="hidden" name="MAX_FILE_SIZE" value="2097152" /> <input type="submit" value="Store" id="save" name="save"/> </p> </div> </div> </form> <?php if (isset($_POST['save'])) { //Check that we have a logo file if((!empty($_FILES["logo"])) && ($_FILES['logo']['error'] == 0)) { //Check if the file is JPEG or PNG image and it's size is less than 5Kb $filename = basename($_FILES['logo']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); $extnm = $_FILES["logo"]["type"]; $extsiz = $_FILES["logo"]["size"]; $src = $_FILES["logo"]["tmp_name"]; $lgdim = GetImageSize($src); if (!($ext == "png" && $extnm == "image/png")) { die(" <div id='fail' class='info_div' align='center' dir='rtl'> <span class='ico_cancel'><strong> Just PNG</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if ($extsiz > 5120 ) { die(" <div id='fail' class='info_div' align='center' dir='rtl'> <span class='ico_cancel'><strong> Size less than 5KByte </strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if ($lgdim[0] != 103 || $lgdim[1] != 103 ) { die(" <div id='fail' class='info_div' align='center' dir='rtl'> <span class='ico_cancel'><strong> 103*103 Pixel </strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); }} $title = mysql_real_escape_string(trim($_POST["post_title"])); if ($title == '' || $title == 'Title'){ die(" <div id='fail' class='info_div' align='center' dir='rtl'> <span class='ico_cancel'><strong> Insert Title,Please</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } $description = ( mysql_real_escape_string(trim($_POST["markItUp"]))); if ($description == ''){ die(" <div id='fail' class='info_div' align='center' dir='rtl'> <span class='ico_cancel'><strong> Insert News_body,Please</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if (isset($_POST['chbox'])) $isprv = 'true'; else $isprv = 'false'; //max fle size value $max_file_size = 2097152; //Global newsimg global $newsimg;global $ctr; //timestamp to make files unique names $timestamp = time(); //destination folder path $destpath = "../Dir/Newsimg/"; //looping each file or image from the form while(list($key,$value) = @each($_FILES["file"]["name"])) { //check if any empty or errors if(!empty($value)){ if ($_FILES["file"]["error"][$key] > 0) { $edir ='<div id="fail" class="info_div">'; $edir .='<span class="ico_cancel"><strong>'; $edir .="ERR : ". $_FILES["file"]["error"][$key] .'</strong></span></div>'; echo($edir); } else { //add the timestamp to filename $file_name = $timestamp.$_FILES['file']['name']; //temp name from upload form, key of each is set $source = $_FILES["file"]["tmp_name"][$key] ; //getting the file type $file_type = $_FILES["file"]["type"][$key]; //getting the file size $file_size = $_FILES["file"]["size"][$key]; //getting the file width $file_width = GetImageSize($source); //placing each file name into a variable $filename1 = $_FILES["file"]["name"][$key]; //lowering the file names $filename = strtolower($filename1); //adding timestamp to front of file name $filename = "$timestamp$filename"; ++$timestamp; if ($file_type != "image/jpeg" && $file_type != "image/png" && $file_type != "image/jpg") { die(" <div id='fail' class='info_div'> <span class='ico_cancel'><strong> Invalid Format</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if($file_width[0] > 650) { die(" <div id='fail' class='info_div'> <span class='ico_cancel'><strong> Width less than 650 Pixel!</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if($file_size > 51200) { die(" <div id='fail' class='info_div'> <span class='ico_cancel'><strong> Size less than 50KByte!</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } //moving the file to be saved from the temp location to the destination path move_uploaded_file($source, $destpath . $filename); //the actual final location with timestamped name $final_file_location = "$destpath$filename"; //echo $final_file_location."<br />"; if (file_exists($final_file_location)) { $newsimg[$ctr] = $filename; $ctr++; ?> <div id="success" class="info_div"><span class="ico_success"><strong> <a href="<?php echo $final_file_location; ?>" target="_blank"><?php echo $filename; ?></a> </strong></span></div><br /> <?php }}}} $ctr=0; //Include database connection details require_once('../config.php'); //Connect to mysql server $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } //Select database $db = mysql_select_db(DB_DATABASE); if(!$db) { die("Unable to select database"); } $login = $_SESSION['SESS_LOG_IN']; $query = "INSERT INTO news SET postdate=NOW(),". "ttl='$title', newstxt='$description', ". "isprv='$isprv',authr='$login' "; if (!empty($_FILES['logo'])) $query .= ", preimage='".$_FILES['logo']."' "; if (isset($newsimg[0])) $query .=",newsimg1='$newsimg[0]'" ; if (isset($newsimg[1])) $query .=",newsimg2='$newsimg[1]'" ; if (isset($newsimg[2])) $query .=",newsimg3='$newsimg[2]'" ; if (mysql_query($query)) { echo '<div id="success" class="info_div">'; echo'<span class="ico_success"><strong>'; echo 'SuccessFul! </strong></span></div>'; } else { echo'<div id="warning" class="info_div">'; echo'<span class="ico_error"><strong>'; echo "ERR in Insert NEWS : ".mysql_error()."</strong></span></div>"; chdir('../Dir/Newsimg/'); if (isset($newsimg[0])) unlink($newsimg[0]); if (isset($newsimg[1])) unlink($newsimg[1]); if (isset($newsimg[2])) unlink($newsimg[2]); } } ?> </div><!-- end #postedit --> TNX. Link to comment https://forums.phpfreaks.com/topic/226317-blob-storing-and-undefined-offset/ Share on other sites More sharing options...
NONAME_2 Posted February 5, 2011 Author Share Posted February 5, 2011 I did some changes below: Hi , i have a form that contains news material ;it has 2 problem: i upload my 3 image and it uploaded in definded path but in insert: Notice: Undefined offset: 0 in C:\wamp\www Notice: Undefined offset: 1 in C:\wamp\www Notice: Undefined offset: 2 in C:\wamp\www and it doesn't store. i think scope of my Array variable : newsimg[] has a problem. My Form: <div id="postedit" class="clearfix"> <h2 class="ico_mug">ADD NEWS</h2> <form method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" enctype="multipart/form-data"> <div> <input id="post_title" type="text" size="30" tabindex="1" name="post_title" value="Title" /> </div> <div id="form_middle_cont" class="clearfix"> <div class="left"> <textarea id="markItUp" cols="80" rows="10" tabindex="2" name="markItUp"></textarea> </div> <div class="left form_sidebar"> <h3>Is A Member?</h3> <ul> <li> <label><input type="checkbox" class="noborder" name="chbox" />Yes</label></li> </ul><BR/> <ul> <h4>News Pictures:</h4> <li><input type=file name="file[]" size=20 accept="image/jpg,image/jpeg,image/png"> </li> <li><input type=file name="file[]" size=20 accept="image/jpg,image/jpeg,image/png"> </li> <li><input type=file name="file[]" size=20 accept="image/jpg,image/jpeg,image/png"> </li> </ul> <p> <input type="hidden" name="MAX_FILE_SIZE" value="2097152" /> <input type="submit" value="Store" id="save" name="save"/> </p> </div> </div> </form> <?php if (isset($_POST['save'])) { $title = mysql_real_escape_string(trim($_POST["post_title"])); if ($title == '' || $title == 'Title'){ die(" <div id='fail' class='info_div' align='center' dir='rtl'> <span class='ico_cancel'><strong> Insert Title,Please</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } $description = ( mysql_real_escape_string(trim($_POST["markItUp"]))); if ($description == ''){ die(" <div id='fail' class='info_div' align='center' dir='rtl'> <span class='ico_cancel'><strong> Insert News_body,Please</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if (isset($_POST['chbox'])) $isprv = 'true'; else $isprv = 'false'; //max fle size value $max_file_size = 2097152; //Global newsimg global $newsimg;global $ctr; //timestamp to make files unique names $timestamp = time(); //destination folder path $destpath = "../Dir/Newsimg/"; //looping each file or image from the form while(list($key,$value) = @each($_FILES["file"]["name"])) { //check if any empty or errors if(!empty($value)){ if ($_FILES["file"]["error"][$key] > 0) { $edir ='<div id="fail" class="info_div">'; $edir .='<span class="ico_cancel"><strong>'; $edir .="ERR : ". $_FILES["file"]["error"][$key] .'</strong></span></div>'; echo($edir); } else { //add the timestamp to filename $file_name = $timestamp.$_FILES['file']['name']; //temp name from upload form, key of each is set $source = $_FILES["file"]["tmp_name"][$key] ; //getting the file type $file_type = $_FILES["file"]["type"][$key]; //getting the file size $file_size = $_FILES["file"]["size"][$key]; //getting the file width $file_width = GetImageSize($source); //placing each file name into a variable $filename1 = $_FILES["file"]["name"][$key]; //lowering the file names $filename = strtolower($filename1); //adding timestamp to front of file name $filename = "$timestamp$filename"; ++$timestamp; if ($file_type != "image/jpeg" && $file_type != "image/png" && $file_type != "image/jpg") { die(" <div id='fail' class='info_div'> <span class='ico_cancel'><strong> Invalid Format</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if($file_width[0] > 650) { die(" <div id='fail' class='info_div'> <span class='ico_cancel'><strong> Width less than 650 Pixel!</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } if($file_size > 51200) { die(" <div id='fail' class='info_div'> <span class='ico_cancel'><strong> Size less than 50KByte!</strong></span><br /> <a href=\"javascript: history.go(-1)\">Retry</a> </div>"); } //moving the file to be saved from the temp location to the destination path move_uploaded_file($source, $destpath . $filename); //the actual final location with timestamped name $final_file_location = "$destpath$filename"; //echo $final_file_location."<br />"; if (file_exists($final_file_location)) { $newsimg[$ctr] = $filename; $ctr++; ?> <div id="success" class="info_div"><span class="ico_success"><strong> <a href="<?php echo $final_file_location; ?>" target="_blank"><?php echo $filename; ?></a> </strong></span></div><br /> <?php }}}} $ctr=0; //Include database connection details require_once('../config.php'); //Connect to mysql server $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); if(!$link) { die('Failed to connect to server: ' . mysql_error()); } //Select database $db = mysql_select_db(DB_DATABASE); if(!$db) { die("Unable to select database"); } $login = $_SESSION['SESS_LOG_IN']; $query = "INSERT INTO news SET postdate=NOW(),". "ttl='$title', newstxt='$description', ". "isprv='$isprv',authr='$login' "; if (isset($newsimg[0])) $query .=",newsimg1='$newsimg[0]'" ; if (isset($newsimg[1])) $query .=",newsimg2='$newsimg[1]'" ; if (isset($newsimg[2])) $query .=",newsimg3='$newsimg[2]'" ; if (mysql_query($query)) { echo '<div id="success" class="info_div">'; echo'<span class="ico_success"><strong>'; echo 'SuccessFul! </strong></span></div>'; } else { echo'<div id="warning" class="info_div">'; echo'<span class="ico_error"><strong>'; echo "ERR in Insert NEWS : ".mysql_error()."</strong></span></div>"; chdir('../Dir/Newsimg/'); if (isset($newsimg[0])) unlink($newsimg[0]); if (isset($newsimg[1])) unlink($newsimg[1]); if (isset($newsimg[2])) unlink($newsimg[2]); } } ?> </div><!-- end #postedit --> TNX. Link to comment https://forums.phpfreaks.com/topic/226317-blob-storing-and-undefined-offset/#findComment-1170132 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.