signature.php für 4images

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

signature.php für 4images

Postby maikew » 20. June 2005 22:01

hallo,

ich habe den Signatur Mod für die 4images Galerie installiert und bin genau der Anleitung gefolgt.Aber wenn ich jetzt die signature.php aufrufe kommt diese Meldung
Die Grafik http://meine seite/signature.php kann nicht angezeigt werden,weil sie Fehler enthält

das steht z.b. im quelltext der signature.php
<b>Warning</b>: imagepng(): Unable to open '/tmp/signature.tmp' for writing in <b>C:\apachefriends\xampp\htdocs\home\4images\signature.php</b> on line <b>293</b><br />
<br />
<b>Warning</b>: readfile(/tmp/signature.tmp): failed to open stream: No such file or directory in <b>C:\apachefriends\xampp\htdocs\home\4images\signature.php</b> on line <b>304</b><br />

wie ihr sehen könnt habe ich das Script auf meinem Rechner laufen um es erstmal zu testen.Warum funktioniert das denn nicht? :cry:hat das mit der DNS Adresse zu tun?Oder ist der Root Pfad vielleicht falsch?*grml*
habe xampp übrigens über Windows laufen und nicht über Linux.

Die Suche hat nix ergeben,hoffe Ihr könnt mir helfen.

vielen dank
maike :oops:

hier der code der signature.php und der 4images Ordner liegt bei mir übrigens hier C:\apachefriends\xampp\htdocs\home\4images

Code: Select all
<?php
#############################
# signature.php version 2.9.1 #
# - - - - - - - - - - - - - #
#   Copyright © V@no 2004   #
#############################
#                           #
#       TERMS OF USE        #
#                           #
# NO PORNOGRAPHY OR ANY     #
# OTHER PICTURES THAT COULD #
# BE TREATED AS OFFENSIVE   #
# MAY BE SHOWED ON 4IMAGES  #
# FORUM OR ANYWHERE ELSE    #
# WHERE ITS NOT ACCEPTIBLE. #
#                           #
#  PLEASE RESPECT OTHERS!   #
#                           #
#############################

// ------- Config -----------
$random_image = 1; //show random image
$random_fast = 0; //if your mysql account doesn't have permission to create/delete temporary tables, set this to 0
$debug = 0; //turning this on, will ignore expiration time, meaning every request will create a new image. change this to 0 before u publish your signature!
$expire = 20; //seconds before image will be expired and recompilled with new random image and information (lower this will encrease server load!)
$type = "png"; //image type: png or jpeg
$quality = "50"; //image quality when used jpeg
define('ROOT_PATH', './'); //path to your 4images root dir
$signature_template = "http://shannara.designs.se/home/4images/signature.png"; //path to your signature template image
$path = "/tmp/"; // WRITEBLE dir (chmod 777), where compilled image will be stored (dont not requere access from web)
$tmpfname = $path."signature.tmp"; // filename for the compilled image (extension does not metter)
$tmptname = $path."signature.id"; // filename for the file where some extra info will be stored in (image id)
$template = "melting_film"; //name of the template witch icons will be used, if thumbnail not found
$sitename = "Statistics for Shannara-Sim2Fashion"; //signature header
$fsize = 2; //font type (1 - 5)
$offset = 7; //offset from the left, right and bottom, uses for random image and the text (not used if random image disabled)
$offset2 = 99; //extra offset from the left (place where random image will be embeded if its enabled. Not used if random image disabled)
$spacing = 11; //height of each line of text
$start = 21; //offset from top (space where header shows)
$tiny = 9; //an extra space at the begining of each line (needed for offset from the random image space)
$not_in_cat = "0"; //list of categories witch should not be included for random image, separated by coma (i.e. "1,2,3,7")
$auth = 0; //permission level for auth_viewimage (0 = All, 2 = Members, 3 = Private or 9 = Admin) Refer in /includes/constants.php
$peruser = 1; //alow per user random image (images uploaded by XX user. Usage: signature.php?user=XX)
$noimage = "jpeg.gif"; //icon name if no random image was found
$new_cutoff = 7; //Days when images treated as new

$lang_images = "Images: ";
$lang_users = "Members: ";
$lang_cat = "Categories: ";
$lang_new_user = "Newest member: ";
$lang_online = "Online: ";
$lang_comments = "Comments: ";
// --------- End Config ----------

#############################
# signature.php version 2.9.1

$peruser = ($peruser && isset($_GET['user']) && intval($_GET['user'])) ? intval($_GET['user']) : "";
$tmpfname .= $peruser;
$tmptname .= $peruser;

if (isset($_GET['go']) && $_GET['go'])
{
  if ($handle = @fopen($tmptname, "rb")) {
    while (!feof($handle)) {
      $buffer = fgets($handle, 4096);
      $imgid = intval($buffer);
    }
    fclose($handle);
  }
  define('GET_CACHES', 1);
  include(ROOT_PATH.'global.php');
  require(ROOT_PATH.'includes/sessions.php');
  $user_access = get_permission();
  $url = $site_sess->url(ROOT_PATH."index.php");
  if ($imgid && $random_image) {
    $sql = "SELECT cat_id
            FROM ".IMAGES_TABLE."
            WHERE image_id = $imgid";
    if ($row = $site_db->query_firstrow($sql))
    {
      if (check_permission("auth_viewcat", $row['cat_id']) || check_permission("auth_viewimage", $row['cat_id'])) {
        $url = (check_permission("auth_viewimage", $row['cat_id']) && check_permission("auth_viewcat", $row['cat_id'])) ? $site_sess->url(ROOT_PATH."details.php?image_id=".$imgid) : ((check_permission("auth_viewcat", $row['cat_id'])) ? $site_sess->url(ROOT_PATH."categories.php?cat_id=".$row['cat_id']) : $url);
      }
    }
  }
  header("Location: ".$url);
  exit;
}

#
#############################

$imageid = 0;
$time = @filemtime($tmpfname);
if ($handle = @fopen($tmptname, "r")) {
  if (!feof($handle)) {
    $buffer = fgets($handle, 4096);
    $imageid = intval($buffer);
  }
  fclose($handle);
}
$current_time = time();
if (!$time || (($current_time - $time) > $expire || ($current_time - $time) < 0) || $debug) {
  $show = array();
  include(ROOT_PATH.'config.php');
  include(ROOT_PATH.'includes/constants.php');
  include(ROOT_PATH.'includes/db_mysql.php');
  define('MEDIA_PATH', ROOT_PATH.MEDIA_DIR);
  define('THUMB_PATH', ROOT_PATH.THUMB_DIR);
  define('MEDIA_TEMP_PATH', ROOT_PATH.MEDIA_TEMP_DIR);
  define('THUMB_TEMP_PATH', ROOT_PATH.THUMB_TEMP_DIR);
  define('TEMPLATE_PATH', ROOT_PATH.TEMPLATE_DIR."/".$template);
  define('ICON_PATH', ROOT_PATH.TEMPLATE_DIR."/".$template."/icons");
  include(ROOT_PATH.'includes/functions.php');
  $site_db = new Db($db_host, $db_user, $db_password, $db_name);

// --- Random image -----
  if ($random_image) {
    if ($random_fast) {
      mt_srand((double)microtime() * intval(session_id()));
      $temptab = "tab_".mt_rand(0,1000000);
      $sql = "CREATE TEMPORARY TABLE ".$temptab." TYPE  =  HEAP
              SELECT i.image_id, i.cat_id
              FROM ".IMAGES_TABLE." i
              LEFT JOIN ".CATEGORIES_TABLE." c ON c.cat_id = i.cat_id
              WHERE i.image_active = 1 AND c.auth_viewcat = $auth AND i.cat_id NOT IN ($not_in_cat)".(($peruser) ? " AND i.user_id = ".$peruser : "").(($imageid) ? " AND i.image_id <> ".$imageid : "")."
              ORDER  BY RAND()
              LIMIT 1";
      $result = $site_db->query($sql);
      $sql = "SELECT t.image_id, t.cat_id, i.user_id, i.image_name, i.image_media_file, i.image_thumb_file
              FROM ".$temptab." AS t
              LEFT JOIN ".IMAGES_TABLE." AS i ON i.image_id=t.image_id";
      $imagedata = $site_db->query_firstrow($sql);
      $sql = "DROP TABLE ".$temptab;
      $result = $site_db->query($sql);
    }
    else {
      $sql = "SELECT i.image_id, i.cat_id, i.user_id, i.image_name, i.image_media_file, i.image_thumb_file
              FROM ".IMAGES_TABLE." i
              LEFT JOIN ".CATEGORIES_TABLE." c ON c.cat_id = i.cat_id
              WHERE i.image_active = 1 AND c.auth_viewcat = $auth AND i.cat_id NOT IN ($not_in_cat)".(($peruser) ? " AND i.user_id = ".$peruser : "").(($imageid) ? " AND i.image_id <> ".$imageid : "")."
              ORDER  BY RAND()
              LIMIT 1";
      $imagedata = $site_db->query_firstrow($sql);
    }
    $thumb = ($imagedata) ? get_file_path($imagedata['image_media_file'], "thumb", $imagedata['cat_id']) : ICON_PATH."/".$noimage;
  }
  else {
    $offset = $offset2 = 0; //no need any offset if random image disabled
  }
// --- Total users -----
  $sql = "SELECT COUNT(*) AS total_users
          FROM ".USERS_TABLE."
          WHERE user_level > ".USER_AWAITING;
  $row = $site_db->query_firstrow($sql);
  $show['total_users'] = $row['total_users'];

// --- Total not activated users -----
  $sql = "SELECT COUNT(*) AS total_users
          FROM ".USERS_TABLE."
          WHERE user_level = ".USER_AWAITING;
  $row = $site_db->query_firstrow($sql);
  $show['total_users_awaiting'] = $row['total_users'];

// --- Lattest username -----
  $sql = "SELECT user_name
          FROM ".USERS_TABLE."
          WHERE user_level > ".USER_AWAITING."
          ORDER BY user_id DESC";
  $row = $site_db->query_firstrow($sql);
  $show['new_user'] = stripslashes($row['user_name']);

// --- Total images -----
  $sql = "SELECT COUNT(*) AS total_images
          FROM ".IMAGES_TABLE."
          WHERE image_active = 1";
  $row = $site_db->query_firstrow($sql);
  $show['total_images'] = $row['total_images'];

// --- Total new images -----
  $new_cutoff = time() - 60 * 60 * 24 * $new_cutoff;
  $sql = "SELECT COUNT(*) AS total_new_images
          FROM ".IMAGES_TABLE."
          WHERE image_active = 1 AND image_date > ".$new_cutoff;
  $row = $site_db->query_firstrow($sql);
  $show['total_new_images'] = $row['total_new_images'];

// --- Total categories -----
  $sql = "SELECT COUNT(*) AS total_categories
          FROM ".CATEGORIES_TABLE;
  $row = $site_db->query_firstrow($sql);
  $show['total_categories'] = $row['total_categories'];
/*
// --- Total comments -----
  $sql = "SELECT SUM(image_comments) AS sum
          FROM ".IMAGES_TABLE;
  $row = $site_db->query_firstrow($sql);
  $show['comments'] = $row['sum'];
*/

// --- Online users -----
  $time_out = time() - 300;
  $sql = "SELECT session_user_id, session_ip
          FROM ".SESSIONS_TABLE."
          WHERE session_lastaction >= $time_out";
  $result = $site_db->query($sql);
  $show['guests_online'] = $show['reg_online'] = 0;
  while ($row = $site_db->fetch_array($result)) {
    if ($row['session_user_id'] != GUEST) {
      if (!isset($prev_user_ids[$row['session_user_id']])) {
        $show['reg_online']++;
      }
      $prev_user_ids[$row['session_user_id']] = 1;
    }
    else {
      if (!isset($prev_session_ips[$row['session_ip']])) {
        $show['guests_online']++;
      }
    }
    $prev_session_ips[$row['session_ip']] = 1;
  }
//-----------------------

  $total_online = $show['reg_online'] + $show['guests_online'];
  $online = " (".$show['reg_online']." member".(($show['reg_online'] > 1 || !$show['reg_online'])? "s" : "")." and ".$show['guests_online']." guest".(($show['guests_online'] > 1 || !$show['guests_online'])? "s" : "").")";
  $far = $offset2+$tiny+(strlen($lang_new_user))*($fsize+4);
  //array with data:
  //[0] - font type
  //[1] - offset
  //[2] - text
  //[3] - color (i.e. "text_color" will use $text_color variable)
  $stats = array(
                  array(array($fsize, $offset2+$tiny, $lang_images, "text_color"), array($fsize, $far, $show['total_images']." (".$show['total_new_images']." new)", "text_color")),
                  array(array($fsize, $offset2+$tiny, $lang_cat, "text_color"), array($fsize, $far, $show['total_categories'], "text_color")),
//                  array(array($fsize, $offset2+$tiny, $lang_comments, "text_color"), array($fsize, $far, $show['comments'], "text_color")),
                  array(array($fsize, $offset2+$tiny, $lang_users, "text_color"), array($fsize, $far, $show['total_users'], "text_color"), array($fsize, $far+strlen($show['total_users'])*($fsize+4), " and ".$show['total_users_awaiting']." not activated", "text_color")),
                  array(array($fsize, $offset2+$tiny, $lang_online, "text_color"), array($fsize, $far, $total_online, "red"), array($fsize, $far+strlen($total_online)*($fsize+4), $online, "text_color")),
                  array(array($fsize, $offset2+$tiny, $lang_new_user, "text_color"), array($fsize, $far, $show['new_user'], "text_color"))
  );
  $im = ImageCreateFromPNG($signature_template);
  $width = imagesx($im);
  $height = imagesy($im);
  $text_color = ImageColorAllocate ($im, 0, 0, 0);
  $red = ImageColorAllocate ($im, 255, 0, 0);
//  ImageString($im, 3, $offset2+(($width-$offset2)/2)-(strlen($sitename)*7/2), 4, $sitename, $text_color);
  ImageString($im, 3, $offset2+$tiny, 4, $sitename, $text_color);
  $i = $start;
  foreach ($stats as $key) {
    if ($key[0][2] == $lang_online && !$total_online) {
      continue;
    }
    foreach ($key as $val) {
      ImageString($im, $val[0], $val[1], $i, $val[2], $$val[3]);
    }
    $i = $i + $spacing;
  }
  if ($random_image) {
    $image_info = getimagesize($thumb);
    $types = array(1 => "gif", 2 => "jpeg", 3 => "png");
    $th = "imagecreatefrom".$types[$image_info[2]];
    $width_start = $image_info[0];
    $height_start = $image_info[1];
    $dimension = $offset2-$offset*2;
    if ($height - $image_info[1] < $offset && $height - $offset2 < $offset) {
      $dimension = $height - $offset*2;
    }
    $width_end = $dimension;
    $height_end = $dimension;
    if (($width_start > $width_end || $height_start > $height_end) && $width_start && $height_start && $width_end && $height_end) {
       $ratio = $width_start / $height_start;
      if ($ratio > 1) {
        $width_end = $dimension;
        $height_end = round(($dimension/$width_start) * $height_start);
      }else{
        $width_end = round(($dimension/$height_start) * $width_start);
        $height_end = $dimension;
       }
    }elseif ($width_start || $height_start) {
       $width_end = $width_start;
       $height_end = $height_start;
    }
    $temp = imagecreateTrueColor($width_end, $height_end);
    if ($image = $th($thumb)) {
      imagecopyresized($temp, $image, 0, 0, 0, 0, $width_end, $height_end, ImageSX($image), ImageSY($image));
    }
    $posx = round(($offset2-$width_end)/2);
    $posy = round(($height-$height_end)/2);
    imagecopymerge($im,$temp, $posx, $posy, 0, 0, $width_end, $height_end, 100);
    ImageRectangle($im, $posx-1, $posy-1, $posx+$width_end-1, $posy+$height_end-1, $text_color);
  }
  $function = "Image".$type;
  $function($im,$tmpfname,$quality);
  ImageDestroy($im);
  $handle = @fopen($tmptname, "wb");
  $contents = @fwrite($handle, (($random_image) ? $imagedata['image_id'] : 0));
  @fclose($hande);
} //end compilling new image
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate'); // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header("Content-disposition: filename=signature".MD5(time()).".".$type);
header("Content-Type: image/".$type);
readfile($tmpfname);
?>
User avatar
maikew
 
Posts: 3
Joined: 20. June 2005 21:51

Postby Wiedmann » 20. June 2005 22:05

Warning: imagepng(): Unable to open '/tmp/signature.tmp' for writing in ...

Code: Select all
$path = "/tmp/"; // WRITEBLE dir (chmod 777), where compilled image will be stored (dont not requere access from web)

Gibt es das Verzeichnis?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby maikew » 20. June 2005 22:21

ja gibt es.Es liegt direkt im 4images Ordner.Hoffe das ist auch richtig so?
Ich nehme an der Pfad zu diesem Ordner stimmt nicht.Was müsste ich da eintragen?
Sorry für diese blöde frage aber ich bin noch nicht so fit was PHP betrifft *g* :D

edit (jubel)
hab es geschafft :D

so muss es lauten $path = "./tmp"; // WRITEBLE dir (chmod 777), where compilled image will be stored (dont not requere access from web)

trotzdem danke :D
User avatar
maikew
 
Posts: 3
Joined: 20. June 2005 21:51


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 12 guests