Jump to content


This topic is now archived and is closed to further replies.


Something super fishy is going on

Recommended Posts

I have a page where I can post pictures, and in order to have them displayed, all you do is paste the URL, one per line and it will auto turn it into a link using the URL pasted, modifying it for the thumbnail and then putting it into a table. 

If I post more than one it seems that it posts extra blank pictures in between them, I have no idea what's going on.  It turns them into a checker pattern.  The <tr> is working correctly after each 7 passes, but for some reason it's putting blank pictures in between the real ones

The full code is:

if( !empty($_POST['posttitle']) && !empty($_POST['bodytext']) && !empty($_SESSION['user_level'])) {
include 'db.php';
$posttitle = mysql_real_escape_string(strip_tags($_POST['posttitle']));
$post_body = mysql_real_escape_string(strip_tags($_POST['bodytext']));
$poster = $_SESSION['screenname'];
$posttype = $_POST['posttype'];
$post_time = date("Y-m-d H:i:s");

/* Formatting pics on pics page */
if(($posttype == 1) && ($_POST['pic_align'])) {
  if(!empty($_POST['number'])) {
      $number = $_POST['number'];
  } else {
      $number = 7;
  $newlines = array("\n", "\r");
  $body_text = str_replace($newlines, "|", $_POST['bodytext']);
  $body_text = explode("|", $body_text);
  $counter = count($body_text);
  $new_row = 0;
  $post_body = "<table>";
  for($i = 0; $i < $counter; $i++){
      $temp = str_replace(".jpg", "s.jpg", $body_text[$i]); // Auto makes s img url
      $final_string = "<td><a href=$body_text[$i]><img src=$temp></a></td>"; // Completes each link with TD
      if($new_row == 0) $post_body .= "<tr>";
      $post_body .= $final_string;
      if($new_row == $number) {
        $post_body .= "</tr>";
        $new_row = 0;
  if($new_row != 0) $post_body .= "</tr>";
  $post_body .= "</table>";

//Enter info into the db
mysql_query("INSERT INTO posts (title, post_body, post_time, post_type, poster_name) VALUES('$posttitle','$post_body','$post_time','$posttype','$poster')") or die(mysql_error());
header("location: index.php");

Anyone have a clue what's going on?

Share this post

Link to post
Share on other sites
After playing around a bit I've found that for some reason there are elements in the array that are blank after each element that contains a real value, so if I set the for loop to do $i += 2 it seems to work correctly, however if anyone can point out why I'm getting blank array elements I'd be grateful

Share this post

Link to post
Share on other sites


Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.