Jump to content

Something super fishy is going on


Wintergreen

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:
[code]
<?php
session_start();

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;
      $new_row++;
      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");
exit();
?>
[/code]

Anyone have a clue what's going on?
Link to comment
https://forums.phpfreaks.com/topic/21440-something-super-fishy-is-going-on/
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

Archived

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

×
×
  • Create New...

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.