# Coppermine 1.4.x FAQ

FAQ for Coppermine Photo Gallery v1.4.x
For credits and copyrights, see Coppermine documentation

With thousands of users, it's not surprising that so many of the same questions are asked on the support forums for Coppermine Photo Gallery. So, to help facilitate your website development, we've included this basic FAQ file on common issues. Please be sure to refer to this FAQ first before posting questions on the forum. Failure to do so will, could, well ... , reflect unkindly on you and could result in some negative "karma."

This document is the second best resource to understand Coppermine - it's mandatory that you read the documentation first that comes with your Coppermine package.

## Table of contents:

- Installation

- What are the minimum requirements for the installation and use of Coppermine 1.4.x ?
- What's ImageMagick and how can I get it?
- What's GD and how can I get it?
- How do I find out which version of PHP I have?
- How do I find out which version of GD I have?
- What's the difference between GD1 and GD2?
- What are the steps to get Coppermine running?
- How can I install ImageMagick or GD?
- I'm short on webspace. Is there a "minimum install"?

- Upload

- General Upload Troubleshooting

- Error messages

- When installing I get the error `Fatal error: Call to undefined function: imagecreatefromjpeg() in /include/picmgmt.inc.php on line 168`. What does that mean?
- When installing I get the error `Warning: mkdir(dummy) [function.mkdir]: Permission denied in /your/path/to/coppermine/install.php on line 126`. What does that mean?
- I get the error "`Warning: Empty Delimiter in search.inc.php line 33"`. What can I do?
- I get the error `Zero Sized Reply` during install. What can I do?
- I have the error message `Warning: Undefined index: SCRIPT_NAME in /www.your-domain.com/include/init.inc.php on line 90`. What can I do?
- When I try to upload a picture I get the error message `Impossible to move somepic.jpg to albums/userpics/ | Warning: move_uploaded_file(/tmp/phpezCYKr) [function.move-uploaded-file]: failed to create stream: Operation not permitted`. What's wrong?
- When I try to upload a picture I get the error message `Warning: opendir(./albums/edit): failed to open dir: No such file or directory`. What's wrong?
- When uploading I get the error `Warning: Undefined variable: HTTP_POST_VARS in include/init.inc.php on line 43`. What can I do?
- I get the error message `Can't create/write to file '/tmp/#sql_45d5_0.MYI'`. What's wrong?
- I get the error message `Can't open file: 'yourPrefix_tableName.MYI'` or similar. What's wrong?

- Setup / Configuration

- How can I include a link in an album description or the caption of a pic?
- I don't want to show the last uploads and/or random pictures on the start page. How do I edit what's shown on the start page of coppermine?
- How do I remove/edit the bottom line "`Powered by Coppermine`" ?
- I want to buy a license for Coppermine (and get rid of the "`Powered by Coppermine`" line). How?
- I don't want to use the feature XYZ of Coppermine. How can I remove it?
- How do I add a custom header/footer to Coppermine?
- How do I create an album that anyone can add photos to?
- How can I backup my coppermine database?
- The fullsize-pic doesn't pop up when clicking on the intermediate size pic. What's wrong?
- How can I let unregistered users see the thumbnails only, but not the actual pictures?
- How can I prevent other sites linking directly to the pictures in my gallery instead of the gallery page?
- I tried to change the language on the config page, but it doesn't work. What's wrong?
- How do I let guests, not only registered users to put comments on pictures?
- I can't upload with the upload feature. What's wrong?
- How do I change the order of categories?
- I can't delete a certain picture with ftp. What can I do?
- I can't upload big pics. What's wrong?
- I can't login to Coppermine. What's wrong?
- How can I change the sorting order of the albums?
- I don't use the intermediate pictures anymore. How can I delete them to gain disk space?
- How do albums and folders work in coppermine?
- How can I move albums from one category to another?
- How do I move a gallery?
- How do I show the same file in multiple albums?

- Add-ons / Modifications / Hacks

- How can I change the order of the pics when editing them?
- How can I create a menu that's shown on the right side of the gallery?
- How can I send a user directly to his private album once he logs in?
- How can I prevent unregistered user from viewing the gallery?
- How can I display the name of the uploader with the picture info?
- How do I enable clickable links in custom user fields?
- How can I sort the thumbnails by user defined (custom) fields?
- How do I enable IPTC support?
- How can I add some output directly before the line "Powered by Coppermine"?
- Common PHP errors and how to get rid of them...
- Can I rename template.html to template.php to include PHP code in my template?
- How can I prevent users from saving (stealing) my pictures?

- I'm running my own server

- How do I enable gd on my Windows server?
- How do I enable ImageMagick on my Windows server?

- Coppermine Support board

- I don't know PHP/mySQL...
- I've posted my question a while ago, but nobody answers. What the...?
- How should I write my question?
- I've run into trouble. What should I do first (before posting on the board)?
- Hey, by looking at your profile I can see you're German/French/Whatever. Can I post a question in that language?
- May I email/pm/im you for support?
- Who are you anyway?

## Installation

### What are the minimum requirements for the use of Coppermine 1.4.x ?

- any webserver, Apache recommended (Coppermine has been reported to work with Apache, Microsoft Internet Information Server (IIS), Roxen WebServer, Abyss, JanaServer)
- PHP 4.2.0 or better
- GD lib or Image Magick
- mySQL 3.23.23 or better (4.x recommended). Don't confuse the client api version (which is shown in phpinfo) with the mySQL version!

[top of page]

### What's GD and how can I get it?

GD is a graphical library which enables PHP to do image manipulation. If you are running your own webservem you can download it at www.boutell.com/gd/. You will need to recompile PHP on (L)Unix systems, depending on your setup Apache as well. Most recent versions of PHP come with GD - go for a package. On most windows systems, you can just enable it in the php.ini file. If you are subscribing to a webhost: find out through your webhost if GD/GD2 support is available on your site. If not, ask your webhost if you can have it or find yourself another webhost. GD/GD2 are pretty much a standard feature at most webhosting services.

[top of page]

### What's ImageMagick and how can I get it?

ImageMagick is another graphical library like GD/GD2 for image manipulation. If you are running your own webserver, you can download it at imagemagick.org. There are sources available for Unix, Linux, Mac and Windows executables, as well as binary packages for various server operating systems. You cannot install ImageMagick if you are subscribing to a webhost.

[top of page]

### How do I find out which version of PHP I have?

If you haven't installed Coppermine, yet, create a blank file named "info.php". Add the following code to it: `<?php phpinfo(); ?>`. Save the file and upload it to your webserver, then run it in your browser (e.g. http://www.yourdomain.com/info.php). The very first line should read "PHP Version X.Y.Z"
Please note: leaving info.php on your server could be a security risk; either delete it after use or move it into a password protected directory!
If you have already installed Coppermine, you will find a phpinfo file (phpinfo.php) within the coppermine folder. Log in to your Coppermine setup as the admin and simply point (type in the URL) your browser to http://yourdomain.tld/your_coppermine_folder/phpinfo.php .

[top of page]

### How do I find out which version of GD I have?

If you haven't installed Coppermine, yet, create a blank file named "info.php", put this code into it: `<?php phpinfo(); ?>`. Save the file and upload this file to your webserver, then run it in your browser (e.g. http://www.yourdomain.com/info.php). Look for a table like this:

gd

GD Support | enabled
GD Version | 1.6.2 or higher
FreeType Support | enabled
FreeType Linkage | with TTF library
JPG Support | enabled
PNG Support | enabled
WBMP Support | enabled

Please note: leaving info.php on your server could be a security risk; either delete it after use or move it into a password protected directory!
If you have already installed Coppermine, you will find a phpinfo file (phpinfo.php) within the coppermine folder. Log in to your Coppermine setup as the admin and simply point (type in the URL) your browser to http://yourdomain.tld/your_coppermine_folder/phpinfo.php. Then scoll down to the GD section of the display.
[top of page]

### What's the difference between GD1 and GD2?

GD2 is an updated version of GD1 and, as such, will create pictures with better quality (intermediate and thumbnails).

Here's an example taken from w-nailer: about resizing (Original pic size: 1024 x 768 pixels):
GD 1.8.4: ImageCreate ImageCopyResized 128 x 96 pixels | GD 2.0.1: ImageCreateTrueColor ImageCopyResampled 128 x 96 pixels

Upgrades of the GD lib after coppermine has already installed will not affect pictures that were previously created. It will only affect those created after the upgrade. Unless you are running your own webserver, you cannot upgrade nor install GD lib - only your webhost can!
[top of page]

### What are the steps to get Coppermine running?

as stated in the Coppermine readme file:

1. Download Coppermine
2. Unzip it to your harddrive
3. Upload the contents of the coppermine folder to your server (you can install it in the root or in a unique folder with a name of your choosing).
4. CHMOD (CHange permission settings MODe) your newly uploaded Coppermine "include" and "albums" folders and subfolders to allow for read/write access. If your webhost does not provide file management tools to let you do this, you will probably need to search the net, download and install an FTP program to facilitate this.
5. Create a database with your website management tools if you don't already have one. You do not have to add any tables to your newly created database. Coppermine will create them for you. If you already have a database on your site, Coppermine can use that as well.
6. If you are installing on a Yahoo Webserver, read this thread first.
7. Point your browser to http://www.yoursite.com/coppermine/install.php and follow the directions of the install file (basically the mySQL-tables will be created there and the config table will be filled with default values)
8. Upon successfull installation, delete the install.php file from your website.
9. Point your browser to http://www.yoursite.com/coppermine/ , and login as admin using the ID and Password you provided during install. In admin mode, click on the CONFIG menu button to start customizing your coppermine photo gallery.
10. Experiment with your new install, create a few categories, sub-categories, and albums. Upload a few pics (not too many, just yet), test if everything works.
11. Point your browser to http://www.yoursite.com/coppermine/docs/ and READ the docs. The documents included with CPG1.4.x have been updated from previous versions to help answer your questions and issues so that you can get the site you want the first time out. Reading the docs takes but a few minutes. Resolving issues after the fact can take days, even weeks.
12. If your new Coppermine install is in a sub folder on your site, publish your site by linking it to your homepage.

[top of page]

### How can I install ImageMagick or GD?

You can only install ImageMagic or GD if you're running your own server or if you have at least shell access to your webserver. If your site is being hosted by a webhost you can only contact your webhost and ask them to install it for you. If they refuse choose another webhost.

[top of page]

### I'm running short on webspace. Is there a "minimum install"?

This is of course a contradiction in terms: running a gallery page usually means you will considerable webspace to store your pics, but if you only want to publish a few pics with what little webspace you have left, there are some files that don't have to be uploaded or that can be removed if not needed. It is however recommended that only experienced users create a minimum install; when in doubt, do a full install.

1. Remove all languages that you don't need (if your users are all from the same country).
   It's recommended that you keep English anyway even if your users use another language, just for you as admin to be able to temporarily switch to English.
   Delete all files in the lang-subfolder of your coppermine install except yourlanguage.php (e.g. if you're using french, delete all files but /lang/french.php and /lang/french-utf-8.php).
   Webspace that can be saved (maximum): 2.9 MB
2. Remove all language files that come with an encoding you don't need
   You'll notice that for each language there are two files in the lang-folder: yourlanguage.php and yourlanguage-utf-8.php. You will need the utf-8 files only if you chose "Unicode(utf-8)" in "Character encoding" on your config page. Using Unicode (utf-8) will display the gallery in the language your page visitor has set in his browser. If you haven't chosen Unicode (utf-8) in coppermine config, it's safe to delete all language files with "utf-8" in their filenames from the lang folder.
   Webspace that can be saved (maximum): 1.7 MB
3. Remove all unnecessary themes
   Remove all themes you won't use from your themes folder. If you're using a customized theme, it's recommended to leave the classic/default theme in place for administrative purposes.
   Example: if you're using the theme "Eyeball" that comes with coppermine, you can safely delete the sub-folders "classic", "fruity", "hardwired", "igames", "mac_ox_x", "project_vii", "rainy_day", "styleguide" and "water_drop" from your themes folder.
   Webspace that can be saved (maximum): 1 MB
4. Remove some docs from the docs folder
   The docs folder contains documents that are meant to help you set up and administer coppermine. In cpg1.4.0 or better, there are some files in this folder that are mandatory to have on the server for the help icons to work; others are optional. You can remove the files "credits.html", "faq.html", "README.html", "theme.htm" and "translation.htm". All other files (and the subfolder "pics") have to remain on the webserver if you want to use the help icons (recommended).
   Webspace that can be saved (maximum): 164 KB
5. Remove bridge files
   The Coppermine package includes bridge files used for integration of coppermine with bulletin board software like phpBB, SMF etc. It is safe to delete some files in the bridge folder; if you are using bbs integration, you will have to keep the bridge file that corresponds to the bbs you're using. If you are not using integration, you must keep the file coppermine.inc.php. The file udb_base.php is required under all setups ans should not be deleted.
   Webspace that can be saved (maximum): 85 KB
6. Remove the flags
   If you're not going to use the "select language by flags" option from the coppermine menu, it's safe to delete the flags folder (/your_coppermine_folder/images/flags/). If you are using the flags option, you can of course delete all flags you don't use at all.
   Webspace that can be saved (maximum): 80 KB
7. Remove files that are needed for install or upgrade only
   Once Coppermine has been installed and is "up-and-running", you can safely delete the files that are needed for installing only: from the coppermine root folder, delete install.php, installer.css, update.php, upgrade-1.0-to-1.2.php. You can delete the folder "sql" as well.
   If you want to update/upgrade your coppermine install later (once a new version comes out), you will of course have to re-upload the update files and the sql folder to your webserver.
   Webspace that can be saved (maximum): 73 KB
8. Choose to only display intermediate-sized pics and thumbnails.
   After you have batch added your pics and confirmed that they are displaying properly in your CPG setup, click on Admin Tools and select the "Delete original size photos (1)" option.

Summary: a minimum install of coppermine will need approx. 3.3 MB of webspace.
[top of page]

## Upload

### General Upload Troubleshooting

When troubleshooting uploads in CPG 1.4, you are advised to change the upload settings in the Groups console to 'Single uploads only' and to activate 'Debug mode' in the config console. Changing this setting negates some of the error masking done in the multiple upload setting. This will allow you to access more detailed error messages.

First and foremost:Check your folder and file permission settings on the /albums, /albums/userpics, and /albums/edit directories. All should be 777 or 755.
If you don't know what we mean by 777 or 755, you need to do a Google search on UNIX file permissions. Windows has a similar set of file permissions. You can usually set these permissions using an FTP client (If you don't know what an FTP client is, Google for FTP client).
For those of you who skim over statements written in red letters, I will repeat to try to get your attention:
Yes, we are writing about something that could easily apply to YOU.
We repeat -- check your permissions on the `/albums`, `/albums/userpics`, and `/albums/edit` directories. All should be 777 or 755.
Yes, we do want you to check the permissions of each folder even if you think you have already done this. Yes, we mean it.

NOTE: HTTP uploads are limited by the restrictions placed upon them in PHP's configuration.

Things to check: (if you are webhosted, you will need to consult with your webhost regarding the following settings.)

1. max_input_time- 60 seconds is the default time limit for uploading files.
   This time limit includes the time it takes for the files to upload, so if you exceed this limit, the file will not even parse, and the browser will not get a response. You can workaround this by trying to upload smaller or fewer files, or you can try uploading over broadband. The best solution, of course, is to increase the time limit to something more in line with your needs.
2. upload_max_filesize - 2MB is the default limit for individual files.
3. post_max_size - 8MB is the default limit for post requests.
4. memory_limit - 8MB is the default size.
5. PHP's LimitRequestBody - 512KB default limit. (mainly an issue on Redhat/Apache systems. Found in /etc/http/conf.d)
   In general, upload_max_filesize < post_max_size < memory_limit in order for uploads to function properly. Coppermine may warn you if a file exceeds upload_max_filesize, but it cannot warn you if the total size of all the files exceeds the post limit or the memory limit.
6. file_uploads - This determines whether or not PHP will allow file uploads. It must be set to "On".
7. upload_tmp_dir - This specifies the temporary directory where PHP stores uploaded files.

The most common issue caused by this setting is an open_basedir warning. In this situation, your server administrator has restricted the files that PHP can work with to a certain directory. If he does not create and specify a temporary directory within the open_basedir restriction, PHP will attempt to use the OS temporary directory, and it will be rebuffed by the open_basedir restriction.

Some notes about the different types of upload mechanisms available in CPG 1.3 (or better):
Multiple HTTP uploads are designed to handle a small number of files, and have an upper limit of 10 files at a time. Therefore, they are not well suited for the uploading of large numbers of files unless you are running your own webserver or have control over the php.ini configuration.
If you are looking to upload more than 15 or 20 files at a time, you should consider the batch add process or the XP_Publisher utility. Each has its own drawbacks and advantages.
The batch add process is fast, but it creates quite a load on the server and, as a result, you may experience timeouts causing your uploads to terminate prematurely. XP Publisher, on the otherhand, is considerably slower, but it limits the load on the server. It also circumvents many of the pitfalls caused by limitations set in the php.ini configuration by uploading each file in the batch being uploaded as an individual post request.

[top of page]

## Error Messages

### When installing I get the error `Fatal error: Call to undefined function: imagecreatefromjpeg() in /include/picmgmt.inc.php on line 168`. What does that mean?

This error means that the version of PHP installed on your server does not support the GD1/GD2 image library.
If you know that the ImageMagick suite is installed on your server, you could try using it instead. Otherwise, you will have to find another webhost or convince your existing webhost to have GD1/GD2 installed (the GD image library is now a standard component of PHP and should normally be installed and available, de facto). Coppermine won't run without gd or image magick.

[top of page]

### When installing I get the error `Warning: mkdir(dummy) [function.mkdir]: Permission denied in /your/path/to/coppermine/install.php on line 126`. What does that mean?

The script must have the right to create and delete files.

- on *nix/linux-webservers:
  chmod the coppermine directory (and all subdirectories) to 755 (rwxr-xr-x). To find more about chmod: check some of these fine chmod tutorials
- on Windows/IIS:
  Check if the user the webserver runs the php-scripts under (usually called IUSR) has sufficient rights to read, execute, change, delete in the Coppermine folder. To find out how, ask your webhost or read the server manual, if you're running your own server.
- on Windows/Apache:
  Check the account Apache runs under and set the rights in the file-system.

[top of page]

### I get the error "`Warning: Empty Delimiter in search.inc.php line 33"`. What can I do?

Edit the file include/search.inc.php
Look for the line with
`$charset = $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'];`
Replace it with :
`$charset = $CONFIG['charset'] == 'language file' ? $GLOBALS['lang_charset'] : $CONFIG['charset'];`

[top of page]

### I get the error Zero Sized Reply during install. What can I do?

On rare ocassions, some users experience this error message during install:

    While trying to retrieve the URL: http://yoursite.com/coppermine/install.php
    The system returned:
    Zero Sized Reply
    Reason:
    The remote server did not reply any data for this request.
    Please try again later

Unfortunately, we still do not know why this happens - those who get this error simply cannot use Coppermine (our apologies). Disabling or removing HTTP filtering on the firewall may help (client and/or server end). Should you have any idea as to what may be causing this error (and even possibly come up with a solution), please visit the Coppermine support board and enlighten us.
[top of page]

### I have the error message `Warning: Undefined index: SCRIPT_NAME in /www.your-domain.com/include/init.inc.php on line 90`. What can I do?

Try to edit the file include/init.inc.php:
change

    $PHP_SELF = isset($_SERVER['REDIRECT_URL']) ? $_SERVER['REDIRECT_URL'] : $_SERVER['SCRIPT_NAME'];

to

    $PHP_SELF = $_SERVER['PHP_SELF'];

[top of page]

### When a user tries to upload a picture s/he gets the error message `Impossible to move somepic.jpg to albums/userpics/ | Warning: move_uploaded_file(/tmp/phpezCYKr) [function.move-uploaded-file]: failed to create stream: Operation not permitted`. What's wrong?

You should contact the admin of your webhost because you usually can't change the location of the website's temporary directory for file uploads, yourself (it is part of PHP configuration) .
If the open basedir restriction is in effect on your site then the temp directory for file uploads should be one that you can access.

[top of page]

### When I try to upload a picture I get the error message `Warning: opendir(./albums/edit): failed to open dir: No such file or directory`. What's wrong?

- Make sure you have a folder named 'edit' in your albums folder.
- Make sure the edit directory has been chmod to 777/755.
- Make sure you have completely upgraded to the current version of Coppermine

[top of page]

### When uploading I get the error `Warning: Undefined variable: HTTP_POST_VARS in include/init.inc.php on line 43`. What can I do?

Check if your version of PHP fullfills the minimum requirements for Coppermine. If your version is 4.1.0 or better, then this error is probably caused by a misconfiguration of your hosting server, and not a Coppermine issue. If the server isn't yours to configure properly (that is: if you're with a webhost), you can try this workaround (at your own risk):
Edit the file "init.inc.php" and look for

    $PHP_SELF = isset($_SERVER['REDIRECT_URL']) ? $_SERVER['REDIRECT_URL'] : $_SERVER['SCRIPT_NAME'];

Replace it with

    $PHP_SELF = $_SERVER['PHP_SELF'];

[top of page]

### I get the error message `Can't create/write to file '/tmp/#sql_45d5_0.MYI'`. What's wrong?

The problem:
MySQL can't create a temporary file for the result set in the given temporary directory.

The solution:
Alter the tmpdir variable to point to a writable directory. It requires changing the tmpdir line in the my.cnf file, usually in the [mysqld] section (tmpdir = /writable/dir, where /writable/dir is a directory to which you can write).

Ask your webhost to make the above changes.

[top of page]

### I get the error message `Can't open file: 'yourPrefix_tableName.MYI'` or similar. What's wrong?

The problem:
Your table is corrupted.

The solution:
This is not a coppermine issue, but a mySQL issue. It just may affect a database table used by Coppermine.
Use your website's Control Panel to repair the table, or use phpMyAdmin to execute this sql query: `REPAIR TABLE yourPrefix_tableName`
(Replace yourPrefix_tableName with your table name, e.g. cpg145_pictures)

If you don't understand the solution, ask your webhost to make the above changes.

[top of page]

## Setup / configuration

### How can I include a link in an album description field or in the caption of a pic?

Coppermine supports the following bbCodes (the same bbCodes that are used by phpBB) in image and album description:

code | output
--- | ---
    [b]bold text[/b]
| bold text
    [i]italic[/i]
| italic
    [url=http://www.foo.com/bar.html]URL text[/url]
| URL text
    [email]user@domain.tld[/email]
| user@domain.tld

[top of page]

### I don't want to show the last uploads and/or random pictureson the start page. How do I edit what's shown on the start page of coppermine?

1. login as admin into your CPG setup
2. click on "Admin Mode" if it is not already enabled
3. Click on Config in the "Admin Menu"
4. under "Album list view" use the above provided keywords:
   - 'breadcrumb': navigation inside the gallery (e.g. "home > category > subcategory > album")
   - 'catlist': category list
   - 'alblist': album list
   - 'random': random pictures (leaving random pictures "on" for huge galleries with more than 10,000 pics might result in performance problems; switch random "off" in this case)
   - 'lastup': last uploads
   - 'topn': most viewed
   - 'toprated': top rated
   - 'lastcom': last comments
   - 'lasthits': last viewed
   - 'lastalb': last created albums
   - 'anycontent': inserts php-generated custom content that YOU have coded into the file 'anycontent.php' and displays the content on the index page. It can be used to include banner-rotation scripts, welcome scripts, or similar. Where it appears in the index page is determined by it's placement in the string example below.
   (e.g. `anycontent/catlist/alblist/random,2/lastup,2` translates to: "anycontent file contents, category list, album list, 2 rows of random pics, 2 rows of last uploads" -- and will display in the order that they are listed)

[top of page]

### How do I remove/edit the bottom line "`Powered by Coppermine`" ?

You mustn't remove the line - it's part of the deal: you're allowed to use and modify Coppermine on your site, but this line must remain! We feel strongly that it is more than a justified demand to give credit where credit is due. We hope that you will agree with us and just be glad that such a great piece of software is available for use at NO COST, with no banner ads or embedded spyware, to you.
You are allowed to change the way the line looks by editing the CSS class to make it fit into the design of your site; edit /themes/yourtheme/style.css, look for the class "Footer" and change the settings there as you wish.
Note: PLEASE don't ask idiotic questions on how to remove this line in the Coppermine Photo Gallery Support Board - your posting will be deleted!

[top of page]

### I want to buy a license for Coppermine (and get rid of the "`Powered by Coppermine`" line). How?

As Coppermine is based on OpenSource software published under GNU/GPL (which allows the modification of the code, but disallows changes of the license model of your modifications), you can not purchase a version of coppermine with or without the credit line removed. Read the file COPYING that comes with the distribution of Coppermine for details.

[top of page]

### I don't want to use the feature XYZ of Coppermine. How can I remove it?

Just remove the link; edit /themes/yourtheme/theme.php, look for the feature you want to remove and comment out the HTML code.
Example: if you want to remove the ecard-feature, just look for

    <td align="center" valign="middle" class="navmenu" width="48">
    <a href="{ECARD_TGT}" title="{ECARD_TITLE}">
    <img src="images/ecard.gif" width="16" height="16" border="0" align="absmiddle" alt="{ECARD_TITLE}"></a>
    </td>

and replace it with

    <!--<td align="center" valign="middle" class="navmenu" width="48">
    <a href="{ECARD_TGT}" title="{ECARD_TITLE}">
    <img src="images/ecard.gif" width="16" height="16" border="0" align="absmiddle" alt="{ECARD_TITLE}"></a>
    </td>-->

[top of page]

### How do I add a custom header/footer to Coppermine?

There are these files to look for:

- if you want to add static html-content (for example your site logo), edit `/themes/yourtheme/template.html` - add/remove anything you want, but be sure to leave everything in that is in brackets.
- if you want dynamic content (or want to add PHP-code), edit the file `/themes/yourtheme/theme.php`
- if you want the edit the color scheme of a theme to match the "look-and-feel" of your site, edit `/themes/yourtheme/style.css`
- for experienced php users, cpg 1.4.x introduces an alternative method of adding intricate custom headers or footers. Create a php file for your header and one for your footer using a format similar to the following:

      <?php

      echo <<<EOT

      Enter your header/footer content here.  What you enter here will be displayed
      at the top of my page if it is a header and at the bottom of my page if it is a footer.

      EOT;

      ?>

  Name them myheader.php and myfooter.php, or any other original name that doesn't already exist in the cpg folder and save them into the Coppermine root folder. Then while in Admin mode, click on the CONFIG tab, scroll to Themes settings and enter the name of your header and footer files in the appropriate include fields at the bottom of this section. (NOTE: You will still need to edit the template.html file of your theme to remove any unwanted logos and entries above the menu sections.)

[top of page]

### How do I create an album that all users can add photos to?

(Assuming that you have already created at least one category and/or one album where the uploaded photos should go to):

- Log in as admin
- Confirm that you are in admin mode
- Select the Album list button
- If you placed the album in a category, choose the category you created the album in
- Next to the appropriate album, click on "properties"
- Set "Visitors can upload pictures" to "yes" and click "update album"
- Provide an upload link in your navigation menu if it's not already there (check /themes/yourtheme/theme.php)
- Next, click on the Groups tab
- For the group named "anonymous" - set the allowable space usage quota and upload rights

[top of page]

### How can I backup my coppermine database?

Currently, there are no built-in backup solutions for coppermine available, yet. To backup your directory/file structure, you must use the good old ftp method and a tool like phpMyAdmin to backup your database (Many webhosts that offer mySQL also offer a pre-installed version of phpMyAdmin - if so, use that!). PhpMyAdmin is easy to install: just download the distribution, unzip it to your harddrive, edit one config file and upload it to your server. (NOTE: Some webhosts offer backup services. You should check if this service is available to you, first.)
Here's a quick "how to backup a database with phpMyAdmin" primer:

- Download the software if it's not available to you, install it (remember to password-protect it).
- Point your browser to the location you installed it on.
- Select the database you want to back up from the dropdown list in the left frame.
- In "View dump (schema) of database" select the table(s) you want to back up (press CTRL to select more than one table).
- Mark "Structure and data"
- Check "Save as file"
- Check "zipped"
- DON'T check "Add 'drop table'" - your database will be erased, if you do.
- Press "go"
- Save the file on your harddisk (depending on the speed of your connection this could take a while).

[top of page]

### The fullsize-pic doesn't pop up when clicking on the intermediate size pic. What's wrong?

If you are certain that your original file is larger in dimensions than the settings you selected for intermediate sized pictures, there's a good chance that you over-edited your theme's template/html file: make sure that the line `<script type="text/javascript" src="scripts.js"></script>` inside /themes/yourtheme/template.html is still there to make the pop-up window work...
The <head>-part of your template file should look like this:

    <head>
    <title>{TITLE}</title>
    <meta http-equiv="Content-Type" content="text/html; charset={CHARSET}" />
    {META}
    <link rel="stylesheet" href="themes/default/style.css" />
    <script type="text/javascript" src="scripts.js"></script>
    </head>

- If you're still unsure about this, just compare your theme's template.html with the default theme that comes with coppermine .
[top of page]

### How can I let unregistered users see the thumbnails only, but not the actual pictures?

Edit displayimage.php and add
`if (!USER_ID) cpg_die(ERROR, 'You need to register to access this page', __FILE__, __LINE__);`
just before

    /**************************************************************************
    * Local functions definition
    **************************************************************************/

[top of page]

### How can I prevent other sites from linking directly to the pictures in my gallery instead of the gallery page?

IF your webhost supports the use of .htaccess files (you will need to ask them), you can prevent "hotlinking" by creating an .htaccess file in the albums folder.
Open your text editor and add the following lines, then save the file as .htaccess :

    SetEnvIfNoCase Referer "^http://www.yourdomian.com/" locally_linked=1
    SetEnvIfNoCase Referer "^http://yourdomain.com/" locally_linked=1
    SetEnvIf Referer "^$" locally_linked=1
    <FilesMatch "\.(gif|png|jpe?g)$">
      Order Allow,Deny
      Allow from env=locally_linked
    </FilesMatch>

This will only work on linux/unix and apache servers AND only if you're allowed to use /htaccess files by your webhost or if you run your own server and "mod_rewrite" is enabled on your server .
[top of page]

### I tried to change the language on the config page, but it doesn't work. What's wrong?

"Character encoding" is probably set (or has been set sometime ago) to UTF-8 on your config page.
When UTF-8 is selected, Coppermine chooses your language file based on your browser configuration and stores the value in a cookie. This overrides the value stored in the CONFIG.
To fix that:

- Set "Character encoding" to Default (language file)
- Then call the script with `http://yoursite.com/coppermine_dir/index.php?lang=xxx` (this will reset the cookie)

[top of page]

### How do I allow all guests, not just registered users, to add comments to pictures?

- log in as admin
- admin mode
- groups
- "Anonymous" - "Can post comments" - "yes"
- Apply modifications

To change the settings on a per album basis, first, complete the above steps, then):

- Log in as admin
- Confirm that you are in admin mode
- In Category view, click on the album of choice
- Select "Properties"
- Set"Permissions for this album" - "Visitors can post comments" - "Yes"
- "Update album"

[top of page]

### I can't upload with the upload feature. What's wrong?

If you experience the error message: `No picture was uploaded. If you have really selected a picture to upload, check that the server allows file uploads...`, check if there's a problem with HTTP uploads on your server - this feature may have been disabled or improperly configured. In phpinfo(), check that "file_uploads" is ON, "upload_max_filesize" is something like 2M and "upload_tmp_dir" is a valid directory!

[top of page]

### How do I change the order of categories?

- Log in as admin
- from the admin mode menu strip
- select the categories menu button
- use the "arrow up"- and "arrow down"-buttons to change the order of categories

[top of page]

### I can't delete a certain picture with ftp. What can I do?

If you can't delete a file or picture with your FTP software, it is not Coppermine that won't allow you to delete the picture; it is your FTP server. The problem is in the configuration of your server. Try to delete your picture from within the script.

If PHP on your server is running under user "nobody," then all files created by any PHP script (this is not specific to Coppermine) will be owned by "nobody". There is no way to change that.

IMPORTANT: 0777 (CHMOD 777) should not be the default mode for directories because it may present a security risk, if your gallery is running on a shared server and PHP safe mode is not enabled, anyone with an account on the same server could possibly delete your pictures. There have been several threads on this issue on the Menalto Gallery forum and several users have seen their gallery hacked and destoyed because of this. This issue is not specific to Photo galleries, it applies to all PHP scripts that create directories. As long as someone has write access to a directory, s/he could conceiveably delete any file it contains, even if that person doesn't have write access to the file itself.
We would prefer to have users complaining LOUDLY and REPEATEDLY that they have to constantly contact their sysadmin to set this or reset that or even uninstall Coppermine, and have THIS as an issue and electing to switch to another gallery script because of this inconvenience, rather than learn of one person devastated in finding that all his/her pictures have been erased by a hacker.
Don't agree? Read this:
http://www.zend.com/manual/function.mkdir.php
http://www.zend.com/manual/function.chmod.php
before thinking of posting an argument in this forum.
Ultimately it is the decision of the sysadmin on how s/he will elect to run PHP as an Apache module and if all files/dir created by PHP are to be owned by "nobodyquot;. So sysadmins who have set up their servers as such, are in no position to complain when asked to remove certain files or directories.

> On the webhost this site is running on, everything works fine when directory are created with mode 755 and all files/dir created by PHP are owned by the chezgreg user which is the user I use when connecting by FTP. Also if one of the file/directory on my site has a mode of 777, the server will shutdown my site and send me an email warning me that this is unsafe.
> Greg

[top of page]

### I can't upload big pics or files. What's wrong?

The max. size of uploadable pics and/or files is limited by various settings - to find out why you can't upload big picks, check the following:

- Make sure you have enough webspace left (remember that you need space for the full size pic, the intermediate size pic and the thumbnail!)
- When logged in as admin check your "Group" settings: the groups (even the admin group!) have quota limits that can be configured there
- Browser time-out: the commonly-used Internet Explorer has a time-out function: if your upload isn't finished within a certain period, the browser will time-out (this applies especially to dial-up connections)
- There'are a maximum limits set in the PHP config of your server or webhosting server. If you're with a webhost there's very little you can do about it except ask them if they could help you out. If you're running your own server, check php.ini and look for `LimitRequestBody` - this value (in bytes) in the max upload allowed by php/html

[top of page]

### I can't login to Coppermine. What's wrong?

This is most likely a cookie issue:

- If you're running Internet Explorer 6, you'll have to enable the acceptance of cookies. Click on "Tools" - "Internet Options" - "Privacy" and add your site to the list of sites that are trusted, or set the slider to a lower level.
- Sometimes IE will not handle Cookies properly. Close your browser, try deleting all local cookies manually and start your browser again
- Check if you're running a software that interferes with acceptance of cookies like personal firewalls (ZoneAlarm, Tiny, Cookie Washer etc.) and turn them off to see if cookies are accepted then
- Try using another browser (like Opera, which is rather small to download and can be removed easily). It's a generally a good idea to have some different browsers on your local machine to check if your site is displayed correctly not only in your favourite browser
- If you're using subdomains and the dev version of coppermine or some mod on a different subdomain (like gallery.yoursite.com and board.yoursite.com) this could also cause problems: a subdomain is a different domain (in fact foo.com and bar.com are subdomains of the tld ".com", so regarding cookies they are as different domains as bbs.yoursite.com and comics.yoursite.com). Of course you can "hack some sense" into the scripts, but usually bbs are hard to trick to make them more hack-proof.

[top of page]

### How can I change the sorting order of the albums?

By default the albums appear in the order they were created. If you want to adjust the sorting order, do the following:

- Log in as admin;
- "enter admin mode";
- select "Albums" from the admin menu strip;
- choose the category whose albums you want to sort from the dropdown list;
- highlight an album by clicking on it once;
- then use the up and down buttons to change the position.
- Click "apply modifications".
- Confirm the message "Are you sure you want to make these modifications ?" with "OK"

[top of page]

### I don't use the intermediate pictures anymore. How can I delete them to gain disk space?

Why would you want to do that? Deleting the intermediate pics would disable many of the great features that make coppermine what is today. The option to send ecards, to add comments to pics, to rate pics, to display exif information, just to name a few. If you really want to save space, opt to delete your original files using the Admin Tools menu option. Doing this will allow your users to enjoy all of coppermine's features with the exception of viewing full-sized images. In the end, it will probably save you more space as well. Just be sure to set your intermediate sized picture settings in CONFIG to a size that you can live with.

If you really must remove the intermediate sized pics, search the mods and hacks board in the coppermine forum to learn how.

[top of page]

### How do albums and folders work in coppermine?

1. When you create an album, it is a dynamic 'virtual' album. Coppermine doesn't create a physical folder for this album on the server's hard drive, it leaves the pictures where you put them on the server, and uses the database to know which pic belongs in which album. You can move pics from album to album in Coppermine, but it's all done in the database, the pics are never moved on the server.
2. When you upload by html, using the 'upload' link, coppermine places the pic (and the thumb and normal size copies) in the 'userpics' directory.
3. When you upload by ftp, you should place the pics into folders that you create within the 'albums' folder, but never in the 'userpics' folder. The 'userpics' folder is reserved for html uploads only. You can create as many folders/sub-folders for FTP uploads as you want. (Many webhosting services will recommend that you keep the number of files per folder under 500 in order to maximize speed and certain functions. This means you can upload up to 500/3 files in each folder.) You can name these folders anything you want, but we do recommend mirroring the category/album structures that you have created, whenever possible, to facilitate ease of use and site management.
4. When you batch add files that you have already FTP'd to your site, coppermine asks you what album you want to put the pics in, but it leaves the pics where they are on the server.

[top of page]

### How can I move albums from one category to another?

- log in as admin
- admin mode
- create categories (using category manager from admin menu)
- go to the index page of your gallery
- click "Properties" next to the album thumbnail
- From the dropdown list "Album category", choose the category the album should go to
- Click "Update Album"

[top of page]

### How can I move my gallery to another host?

- Backup your files: FTP-download your complete coppermine-folder to your hard drive
- use a tool like phpMyAdmin to get a dump (backup) of your mySQL database entries. More info here
- verify your backup is working: check if the mySQL-dump contains all data (open the zipped dump file and use a text editor to view it)
- on the new server: FTP-upload your coppermine-folder to the new server
- CHMOD the folder /albums to 755 or 777 (depending on your server config]
- restore the mySQL table by running the queries of the dump files you created in step 2
- test-drive your coppermine gallery - you should be done

[top of page]

### How do I show the same file in multiple albums?

The Album Keyword in Album Properties is used to link images from one album into another. Using this method, files/images can be displayed in various albums while the file itself need only exists in one album on your webserver. You simply upload a file to one album as you would normally do, then assign one or more keywords to the file. The keyword function reads blank spaces between words as a 'break' and assumes that these words are separate words. If you must use phrases for your keywords, connect them with an underscore or by using the ascii space holder ctrl+Alt+0160 (NOTE: the latter option only works with latin based character sets.) Each album can only have ONE (1) keyword or keyword phrase. All pictures residing in different albums that you would like to be displayed in this album must have the same keyword or keyword phrase in their respective keyword fields. Pictures, unlike albums, can have multiple keywords or keyword phrases separated by spaces. This provides you with the option to display pictures in many albums. For the visitor of these albums, it will appear as if the file/image had been uploaded to each.

If you use album keywords to display images/files in more than one album, enabling the Config option, Show number of linked files, will display additional information for the album stats. That is, if an album doesn't only contain "regular" files, but files linked via the "album keyword" option as well, the number of linked files will be displayed separately like this "3 files, last one added on Oct 07, 2004, 3 linked files, 6 files total".

[top of page]

## Add-ons / Modifications / Hacks

### How can I change the order of the pics when editing them?

By default, the pics are shown alphabetically when you edit them. To change the sorting order to "by date", edit `editpics.php` and change

    $sql = "SELECT p.*,a.category FROM {$CONFIG['TABLE_PICTURES']} as p ".
                               "INNER JOIN {$CONFIG['TABLE_ALBUMS']} as a ".
                               "ON a.aid=p.aid ".
                               "WHERE p.aid = '$album_id' ".
                               "ORDER BY p.filename LIMIT $start, $count";
                    $result = cpg_db_query($sql);

to

    $sql = "SELECT p.*,a.category FROM {$CONFIG['TABLE_PICTURES']} as p ".
                               "INNER JOIN {$CONFIG['TABLE_ALBUMS']} as a ".
                               "ON a.aid=p.aid ".
                               "WHERE p.aid = '$album_id' ".
                               "ORDER BY pid LIMIT $start, $count";
                    $result = cpg_db_query($sql);

[top of page]

### How can I create a menu that's shown on the right side of the gallery?

When the template.html is read, it is split in 2. What is before the {GALLERY} tag is output by the pageheader function, what is after by the pagefooter function.
If your menu is in the "footer" you need to modify your theme.php file

       $template_vars = array(
          '{LANG_DIR}' => $lang_text_dir,
          '{TITLE}' => $CONFIG['gallery_name'].' - '.$section,
          '{CHARSET}' => $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'],
          '{META}' => $meta,
          '{GAL_NAME}' => $CONFIG['gallery_name'],
          '{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
          '{MAIN_MENU}' => theme_main_menu(),
          '{ADMIN_MENU}' => theme_admin_mode_menu()
       );

       echo template_eval($template_header, $template_vars);

will become

       $template_vars = array(
          '{LANG_DIR}' => $lang_text_dir,
          '{TITLE}' => $CONFIG['gallery_name'].' - '.$section,
          '{CHARSET}' => $CONFIG['charset'] == 'language file' ? $lang_charset : $CONFIG['charset'],
          '{META}' => $meta,
          '{GAL_NAME}' => $CONFIG['gallery_name'],
          '{GAL_DESCRIPTION}' => $CONFIG['gallery_description'],
       );

       echo template_eval($template_header, $template_vars);

and
`echo $template_footer;`
will become

       $template_vars = array(
          '{MAIN_MENU}' => theme_main_menu(),
          '{ADMIN_MENU}' => theme_admin_mode_menu()
       );

       echo template_eval($template_footer, $template_vars);

[top of page]

### How can I send a user directly to his private album once he logs in?

edit
`login.php`
and search for
`pageheader($lang_login_php['login'],"<META http-equiv=\"refresh\" content=\"3;url=$referer\">");`
and add before it
`$referer = 'index.php?cat='.(FIRST_USER_CAT+$USER_DATA['user_id']);`

[top of page]

### How can I prevent unregistered users from viewing the gallery?

In Config, when "Allow unlogged users (guest or anonymous) access" is set to "No", unlogged users (i.e. guests or anonymous users) can not access anything in your gallery except the login screen (and the registration screen, if you allow registrations). Completely disabling anonymous access will probably decrease your site's popularity. Use this option only if you need your gallery to be absolutely private. The recommended setting is to leave anonymous access enabled and use the more specific permissions by groups and albums settings instead.

### How can I display the name of the uploader with the picture info?

Warning: this is quite a complicated hack for a newbie to perform! Make sure to back up your original files before attempting this.
Edit displayimage.php and search for:
`$info[$lang_picinfo['Filename']] = htmlspecialchars($CURRENT_PIC_DATA['filename']);`
add after it:
`$info[$lang_picinfo['Username']] = htmlspecialchars($CURRENT_PIC_DATA['user_name']);`.
Then open /include/functions.inc.php and search for following in function get_pic_data():
`if($select_columns != '*') $select_columns .= ', title, caption';`
and replace it with:
`if($select_columns != '*') $select_columns .= ', title, caption, user_name';`.
After that search for:
`$result = cpg_db_query("SELECT $select_columns from {$CONFIG['TABLE_PICTURES']} WHERE aid='$album' $approved $ALBUM_SET ORDER BY $sort_order $limit");`
and replace it with:
`$result = cpg_db_query("SELECT $select_columns from {$CONFIG['TABLE_PICTURES']} AS p LEFT JOIN {$CONFIG['TABLE_USERS']} AS u ON u.user_id = p.owner_id WHERE p.aid='$album' $approved $ALBUM_SET ORDER BY $sort_order $limit");`
Then you have to add the language string for the username. Open /lang/yourlang.php and search for:
`$lang_picinfo = array(`
and add after that:
`'Username' => 'Username',`
Also you need to execute this query in MySQL (with a tool like phpMyAdmin):
`ALTER TABLE `cpg11d_pictures` ADD INDEX ( `owner_id` );`
(NOTE: If your database table_prefix is not "cpg11d_", you will need to change it in the query)

[top of page]

### How do I enable clickable links in custom user fields?

Edit displayimage.php and change
`$info[$CONFIG['user_field'.$i.'_name']] = make_clickable($CURRENT_PIC_DATA['user'.$i]);`
into
`$info[$CONFIG['user_field'.$i.'_name']] = bb_decode($CURRENT_PIC_DATA['user'.$i]);`
This will allow you to use BBCodes in the custom fields: you can then have something like
`[url]http://www.somesite.com/foo/bar.php?whatever=42[/url]`
or
`[url=http://www.somesite.com/foo/bar.php?whatever=42]link to some site![/url]`
in your custom user fields (the display of which, of course, has to be enabled in the config page, begin with).

[top of page]

### How can I sort the thumbnails by user defined (custom) fields?

1. Edit /includes/functions.inc.php
   change

       $sort_array = array('na' => 'filename ASC', 'nd' => 'filename DESC', 'da' => 'pid ASC', 'dd' => 'pid DESC');

   to

          $sort_array = array(
             'na' => 'filename ASC',
             'nd' => 'filename DESC',
             'da' => 'pid ASC',
             'dd' => 'pid DESC',
             'f1a' => 'user1 ASC',
             'f1d' => 'user1 DESC',
             'f2a' => 'user2 ASC',
             'f2d' => 'user2 DESC',
             'f3a' => 'user3 ASC',
             'f3d' => 'user3 DESC',
             'f4a' => 'user1 ASC',
             'f4d' => 'user1 DESC'
          );

2. Edit /themes/yourtheme/theme.php
   - change

            // The sort order options are not available for meta albums
            if ($sort_options){

               $param = array(
                  '{ALBUM_NAME}' => $album_name,
                  '{AID}' => $aid,
                  '{PAGE}' => $page,
                  '{NAME}' => $lang_thumb_view['name'],
                  '{DATE}' => $lang_thumb_view['date'],
                  '{SORT_NA}' => $lang_thumb_view['sort_na'],
                  '{SORT_ND}' => $lang_thumb_view['sort_nd'],
                  '{SORT_DA}' => $lang_thumb_view['sort_da'],
                  '{SORT_DD}' => $lang_thumb_view['sort_dd'],
                  );

     to

            // The sort order options are not available for meta albums
            if ($sort_options){

               $param = array(
                  '{ALBUM_NAME}' => $album_name,
                  '{AID}' => $aid,
                  '{PAGE}' => $page,
                  '{NAME}' => $lang_thumb_view['name'],
                  '{DATE}' => $lang_thumb_view['date'],
                  '{SORT_NA}' => $lang_thumb_view['sort_na'],
                  '{SORT_ND}' => $lang_thumb_view['sort_nd'],
                  '{SORT_DA}' => $lang_thumb_view['sort_da'],
                  '{SORT_DD}' => $lang_thumb_view['sort_dd'],
                  // Exxodus Sorting
                  '{FIELD1}' => $CONFIG['user_field1_name'],
                  '{FIELD2}' => $CONFIG['user_field2_name'],
                  '{FIELD3}' => $CONFIG['user_field3_name'],
                  '{FIELD4}' => $CONFIG['user_field4_name'],
                  // Exxodus Sorting
                  );

   - modify the lines after `$template_thumb_view_title_row` like this:

         // HTML template for title row of the thumbnail view (album title + sort options)
         // Exxodus (Adding Sorting by UserField)
         $template_thumb_view_title_row = <<<EOT

                  <table width="100%" cellpadding="0" cellspacing="0">
                  <tr>
                     <td width="100%" class="statlink"><h2>{ALBUM_NAME}</h2></td>
                     <td><img src="images/spacer.gif" width="1"></td>
                     <td class="sortorder_cell">
                        <table height="100%" cellpadding="0" cellspacing="0">
                        <tr>
                           <td class="sortorder_options">{NAME}</td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=na" title="{SORT_NA}">&+&</a>/</span></td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=nd" title="{SORT_ND}">&-&</a></span></td>
                        </tr>
                        <tr>
                           <td class="sortorder_options">{DATE}</td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=da" title="{SORT_DA}">&+&</a>/</span></td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=dd" title="{SORT_DD}">&-&</a></span></td>
                        </tr>
                        </table>
                     </td>
                     <td><img src="images/spacer.gif" width="10"></td>
                     <td class="sortorder_cell">
                        <table height="100%" cellpadding="0" cellspacing="0">
                        <tr>
                           <td class="sortorder_options">{FIELD1}</td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f1a">&+&</a>/</span></td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f1d">&-&</a></span></td>
                        </tr>
                        <tr>
                           <td class="sortorder_options">{FIELD2}</td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f2a">&+&</a>/</span></td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f2d">&-&</a></span></td>
                        </tr>
                        </table>
                     </td>
                     <td><img src="images/spacer.gif" width="10"></td>
                     <td class="sortorder_cell">
                        <table height="100%" cellpadding="0" cellspacing="0">
                        <tr>
                           <td class="sortorder_options">{FIELD3}</td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f3a">&+&</a>/</span></td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f3d">&-&</a></span></td>
                        </tr>
                        <tr>
                           <td class="sortorder_options">{FIELD4}</td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f4a">&+&</a>/</span></td>
                           <td class="sortorder_options"><span class="statlink">
                           <a href="thumbnails.php?album={AID}&page={PAGE}&sort=f4d">&-&</a></span></td>
                        </tr>
                        </table>
                     </td>
                  </tr>
                  </table>

         EOT;

[top of page]

### How do I enable IPTC support?

Edit `/includes/picmgmt.inc.php` and search for
`$imagesize = getimagesize($image);`
replace this with:

    $imagesize = getimagesize($image,&$info);
    $iptc = iptcparse($info["APP13"]);
    if (is_array($iptc)) {
    $caption.=$iptc['2#120'][0];
    $title.=$iptc['2#105'][0];
    (is_array($iptc['2#025'])) && ($keywords.=implode(" ", $iptc['2#025']));
    }

NOTE: This hack hasn't been thoroughly tested, use at your own risk...!
[top of page]

### How can I add some output directly before the line "Powered by Coppermine"?

Edit /themes/yourtheme/theme.php, look for `echo $template_footer` and add the stuff you want to output in a line before it, like `print '<span class="footer"><a href="http://www.mylink.com/foo.htm">My Link</a></span>';`

[top of page]

### Common PHP errors and how to get rid of them...

There are a lot of people (especially PHP newbies) that post questions like `I get the error "Parse error: parse error in XXX"` and don't know what to do about it. That's why I translated this list of common errors (and a solution how to fix them) from the original german article in Dr. Web :

- `Parse error: parse error in C:\Apache\htdocs\read.php on line 8` - This error message refers to an error in the PHP syntax. You probably forgot to end a line with `;` or you have too many brackets opened or closed (`{`).
- `Fatal error: Call to unsupported/undefined function ... in C:\Apache\htdocs\read.php on line 8` - This error means that the function your script was going to use isn't defined in the current PHP version with modules, or if you're using user-defined functions that your function hasn't been defined yet (this is usually caused if you forgot to include the function definition).
- `Warning: Wrong parameter ... for ... in C:\Apache\htdocs\read.php on line 8` - you have handed over too many (or the wrong) parameters to the function. If it's a built-in php-function, check the manual; to see if it's a user-defined function, then recheck your code.
- `Warning: Cannot add header information - header was already sent ... in C:\Apache\htdocs\read.php on line 4` - you had some text output first (e.g. the doctype declaration or `<html>`) and called the function header() afterwards. This is most often the case when using cookie stuff. Remember you can not use header() twice!
- `Parse error: parser stack overflow in C:\Apache\htdocs\read.php` - PHP is out of memory - this usually happens if you built an eternal loop, especially when using include statements.
- `Warning: fopen("file.txt","r+") - No such file or directory` - the requested file or directory doesn't exist. Check the spelling (accuracy counts here).
- `SAFE MODE Restriction in effect. The script whose uid is 531 is not allowed to access...` - The safe mode is switched on. Some functions in the upload systems can't be used. Usually your webhost has put safe mode in place (often not correctly configured). Try switching silly_safe_mode on.

[top of page]

### Can I rename template.html to template.php to include PHP code in my template?

No, this is simply not the way coppermine works; for "normal" pages the name of the extension tells the webserver whether the file should be parsed by the PHP interpreter. The template files within the themes folder are not being parsed this way - the extension .html was just chosen to make editing easier. You can not have PHP code in the template file, no matter how you name it - that's all there is to it!

[top of page]

### How can I prevent users from saving (stealing) my pictures?

You can not completely prevent users from stealing your pics - that's the way the www works: if a picture is being displayed in the browser, the user already has a copy of it on his hard drive. There are however some methods to make it harder for newbie users to steal your pics:

- Add a watermark to your images before you upload them
- Apply one of the watermark-hacks: Coppermine support board / mods / Watermarking hack (w/ ImageMagick), Coppermine support board / mods / Watermark on a per image basis (GD), Coppermine support board / mods / Permanent Watermark with GD2. Please note that those hacks will result in a high server load, as the watermark is applied to a picture each time a users views the picture in his browser.
- Prevent Internet Explorer to show the image toolbar when a user hovers over a pic with the mouse. Edit themes/yourtheme/template.html, find `<meta http-equiv="Pragma" content="no-cache" />` and add after it `<meta http-equiv="imagetoolbar" content="no" />`
- Use one of the many "no right-click" scripts that are available (e.g. Coppermine support board / mods / no right-click or codelifter.com: no right-click)

[top of page]

## I'm running my own server

### How do I enable gd on my Windows server?

GD 1.x 2.x are normally part of all standard PHP distributions under Windows
To check if you have it, go to the directory where you installed PHP, go to the "extensions" subdir and see if you have a file named "php_gd2.dll".
Ocassionally, you will also need to edit your php.ini file (located in windows directory normally) and remove the ";" that is at the beginning of the line:
`extension=php_gd2.dll` (at the end of the file). This will cause PHP to load the GD2 extension.
Whenever you make changes to php.ini, remember that you will need to restart your webserver before changes become effective.
ImageMagick it quite complicated to use under Windows
Greg

[top of page]

### How do I enable ImageMagick on my Windows server?

ImageMagick is quite complicated to set up on Windows. There are several things to be taken into account. The Coppermine support board is not the right place to ask for help on installing it, as it deals with Coppermine, not "How to set up a server" (most people on the Coppermine boards don't run their own webserver, but they have webspace by a webhost). Instead, try to find support boards on the internet that deal with this special topic.

[top of page]

## Coppermine Support board

These are (alas) not-so-frequently-asked-questions on the support board. Before posting on the Support board (or, in fact, any board), please read this:

### I don't know PHP/mySQL...

No problem with that, everyone stars as a newbie. Just don't start each and every posting by stating "I'm a newbie", "I don't know anything about PHP" etc.
Usually, one can acertain that from your question itself. There's no need to apologize. Most of us can still remember when we were in your shoes.

[top of page]

### I've posted my question a while ago, but nobody answers. What the...?

The support board is not a hotline. Although there are many visitors to the site, only a few do actually support - on a unpaid, voluntary basis. Yes, we don't receive remuneratio for our contributions and we each have a life, a job, family and more. We are away sometimes, as well. So, please, be patient, read the docs and search the boards while you are waiting.
If you don't get an answer to your question:

- make sure you have given us enough time to react (days, not hours!)
- maybe nobody knows the answer to your problem
- maybe your question has been asked very often
- maybe your posting has been rude or impolite and you're ignored for that reason
- maybe you requested a feature that requires a lot of coding, and none of those who are able to do it have a need for the feature

[top of page]

### How should I write my question?

If you have a question, make sure you provide as much information as possible:

- a link to your gallery, with a test account ID and test account password, is most often the only way to help - provide it with your question, or even better: edit your profile on the support board and enter the url of your page there!
- when addressing server issues, make sure to provide information on your server (OS, server, PHP version, mySQL version, gd lib version, safe mode on/off?). Most information can be retrieved by phpinfo()
- if it's a client issue, give us information at least to your client's OS and browser
- Give us a screenshot, if necessary
- use a proper subject line: state in the subject line what your question is actually about! Most supporters are reluctant to answer to a posting that has a silly subject line like "I have a question" or "Install problem" or "feature request" or "help me pleeeeaaaase"

[top of page]

### I've run into trouble. What should I do first (before posting on the board)?

- read the readme that comes with the coppermine distribution
- read the documentation
- read this FAQ
- Search the support board
- enable debug mode (log in as admin, admin mode, config, debug mode)
- choose the right support board: if you're running the phpnuke-port of coppermine, don't post in the support board for the standalone version and vice versa

[top of page]

### Hey, by looking at your profile I can see you're German/French/Whatever. Can I post a question in that language?

If you are posting in the English support boards, pPlease do not post in some other language - in this way, others may benefit from your question (and the answers you receive ), too. Don't be afraid to write "poor english" - no one will laugh at you, and most of our visitor's first language isn't english to begin with! There's a german support board available at http://forum.the-service.de/ - use it if you are more comfortable with German and you' not able to write in English!

We have language-specific support boards for Chinese and French.

[top of page]

### May I email/pm/im you for support?

No you mustn't! Post your question on the Coppermine support board (publicly) - if we (the community) don't find a solution and I have the time and I want to I'll email/pm/im you!

[top of page]

### Who are you anyway?

We are a group of people who decided to form a team to develop Coppermine further - check the team page for details...

[top of page]

This FAQ is a work in progress, please contribute in the Coppermine Photo Gallery Support Board (don't contact me to ask for fixes of your Coppermine install). Please report any bugs, typos etc.
Check the online-version of this document for updates!
Have fun!
GauGau (aka Joachim Mueller) - coppermine dev team

###

[top of page]

Powered by Sourceforge.net