Avatar billede thomastegl Nybegynder
20. december 2006 - 21:08 Der er 3 kommentarer og
1 løsning

Hjælp med admin-modul i fotoalbum

Har fundet et fikst lille fotoalbum på nettet. Har en lille admin-del hvor man kan uploade et billede ad gangen... Det bliver lidt omstændeligt, så jeg vil gerne have udvidet funktionen så der er 8-10 upload felter.
Kan dette lade sig gøre.
Ved ikke præcis hvilken del af scriptet der skal bruges, så jeg poster hele phAlbum.php

<?
//                ** ! REMEMBER TO CHMOD YOUR FOLDERS ! **

/*
//================================================================================
* phphq.Net Custom PHP Scripts *
//================================================================================
:- Script Name: phAlbum
:- Version: 1.1
:- Release Date: July 21st
:- Last Update: Dec 12th 2005
:- Author: Scott L. <scott@phphq.net> http://www.phphq.net
:- Copyright (c) 2005 All Rights Reserved
:-
:- This script is free software; you can redistribute it and/or modify
:- it under the terms of the GNU General Public License as published by
:- the Free Software Foundation; either version 2 of the License, or
:- (at your option) any later version.
:-
:- This script is distributed in the hope that it will be useful,
:- but WITHOUT ANY WARRANTY; without even the implied warranty of
:- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
:- GNU General Public License for more details.
:-http://www.gnu.org/licenses/gpl.txt
:-
//================================================================================
* Description
//================================================================================
:- phAlbum has got to be the easiest drag and drop photo album around. It sports an easy customizable look, and very powerfull features.
:- With this one little file, you can make a whole photo album, very easily. Have it creat thumbs for you on the fly. (Requires GD Library)
:- Features include, unlimited directory + sub-directory support, ignored files, only show certain types, auto image resizeing if desired, and
:- simplicity. Plus it requires no database! All you need is this one little file. All that you need to do to create your album,
:- is make folders and put images in them. The script does the rest. How much simplier can it get? Well, it now comes with a simple
:- admin panel! You can make folders and upload images without your ftp client! Now, it can't get any easier. You can also do it the
:- old fashin way with the ftp client if you like and turn the admin panel off! Anyways, hope this script comes in handy!
//================================================================================
* Setup
//================================================================================
:- To setup this script, simply drop this file anywhere in your website. Then edit the vars in phAlbum.php.
//================================================================================
* Frequently Asked Questions
//================================================================================
:- Q1: The script wont make thumbnails! (Yes it will, but with your help).
:-        A1: Make sure the folder in which the files are in is chmod 777. Use your ftp client or site admin panel to do this.
:-        A2: Make sure the file you want the script to make a thumb of is either jpg, gih or png. This script will not make thumbs of any other file types.

:- Q2: I keep getting creating thumb errors.
:-        A1: Maybe the folder is chmod 777. Please do this using your ftp client or site admin panel.
:-        A2: This script can only make thumbs of jpg or gif images. Any other image types this script will fail to make images of.

:- Q3: I cannot upload files to the folders I created in the admin panel.
:-        A1: Your server may have some security against the chmod() function. You will have to chmod each folder 777 with your ftp client or site admin panel. Sorry :(.
:-        A2: The file type of the uploaded file must be in the $show_files array in the settings of this script. Otherwise it will be denied.
*/

//                ** ! REMEMBER TO CHMOD YOUR FOLDERS ! **

//Never know..

unset($phmessage);
unset($thumb_error);
unset($display_admin);

/*
//================================================================================
* ! ATTENTION !
//================================================================================
:- Please read the above FAQ before giving up or emailing me. It may sort out your problems!
*/

$album_title="My Picture Album"; //The name of this album
$home_link="Album Home"; //The home link
$admin_username="admin";
$admin_password="password";
$display_admin="1"; // Display the admin login form? If you select no, you will not be able to login! You will have to upload etc manually. 1=yes,0=no.

$open_folder="./phopen.gif"; //The open folder image
$close_folder="./phclose.gif"; //The closed folder image
$big_folder="./phfolder.gif"; //The big folder image

$script_url=$_SERVER['PHP_SELF']; //Change this if you want to use this as an include file.
$files_path="./album/"; // Where does the album start? Anything under the directory the script will read. With Trailing slash
$full_server="./album/"; //Enter the full server path to where the albums start. //With Trailing Slash

$show_files=array("jpg","gif","png"); //The array, only show these types of files.
$ignore_word="-hide"; //Hide files with this string in the name. Example, mypicture-hide.jpg will not be shown.
$table_cells="3"; //How many images/folders in each row do you want? // Looks best with 3

$thumb_width="175"; //Width of the thumb
$thumb_height="150"; // Height of the thumb
$auto_thumb="1"; //Automatically create thumb's of gif and jpg images? 1=yes, 0=no. REQUIRES GD LIBRARY
$jpg_quality="50"; // JPG thumb quality, does not work for png or gif. 0=low, 100=highest.

$supress_error="0"; //Suppress errors if thumb creation fails.  1=hide errors, 0=show errors.

$text_color="#868284"; // The text color.
$text_size="10"; // The text size.
$text_face="Verdana, Arial, sans-serif"; //The text face. Arial, Verdana etc.
$link_color="#868284"; // The link color.
$link_hover="#FFFFFF"; // Link link hover color, you know, when you put your mouse over a link!
$error_color="#FF0000"; //Color for error messages
$bgcolor="#293134"; // Page background color.

$drop_shadow="1"; //Use the cool css drop shadow around the images? 1=yes, 0=no.
$shadow_strength="1"; //How much do you want the shadow to show? Increase this value for more.
$shadow_direction="135"; //1 to 360. Changes where the light is coming from.
$shadow_color="grey"; //The shadow color.

$image_border="2"; //Do you want a border around the images? 1-10, number of pixels.
$border_color="#000000"; // What color do you want the image border to be?

/*
//================================================================================
* Attention
//================================================================================
: Don't edit below this line unless you know some php. Editing some variables or other stuff could cause undeseriable results!!
: This is no joke, I spent lots of time trying to work through everything, this is why I have so many comments in the file.
*/

//We need this to be here so we can cookie before we echo.

If($display_admin) {
    If($_POST['login']) {
        If(($_POST['password']==$admin_password) AND ($_POST['username']==$admin_username)) {
            setcookie("phAdmin",$admin_username.$admin_password);
            sleep(1);
            header("Location: ".$script_url."?".$_SERVER['QUERY_STRING']);
            exit;
        }
    }
}

//Header html.. for css etc.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><?=$album_title;?></title>
<style type="text/css">
body{
    background-color:<?=$bgcolor;?>;
    font-family: <?=$text_face;?>;
    font-size: <?=$text_size;?>pt;
    color: <?=$text_color;?>;
}

a:link {
    text-decoration:none;
    color:<?=$link_color;?>;
}

a:visited {
    text-decoration:none;
    color:<?=$link_color;?>;
}

a:hover {
    text-decoration:none;
    color:<?=$link_hover;?>;
}

.error{
    font-family: <?=$text_face;?>;
    font-size: <?=$text_size;?>pt;
    color: <?=$error_color;?>;
}

.image{
    border:<?=$image_border;?>px solid <?=$border_color;?>;
}

input {
    font-family:<?=$text_face;?>;
    font-size:<?=$text_size;?>px;
    color:<?=$text_color;?>;
    border:1px solid <?=$border_color;?>;
}
hr {
    color:<?=$text_color;?>;
}
</style>
</head>
<body>


<?
//Start the album script! Lets get it started in here!

//Check if the admin is here.

$phAdmin=false;
If($display_admin) {
    If($_COOKIE['phAdmin']==$admin_username.$admin_password) {
        $phAdmin=true;
    }
}

//Only if the user is an admin can he $_POST this stuff!

If($display_admin) {
    If($phAdmin==true) {
       
        //Make directorys!
       
        If($_POST['makedir']) {
            If($_POST['albumname']) {
                If(!makedir($_POST['albumname'])) {
                    $phmessage="<span class=\"error\">Error: Folder ".$_POST['albumname']." could not be created. Maybe the folder exists?</span>";
                } Else {
                    $phmessage="<span class=\"error\">Folder ".$_POST['albumname']." has been created!</span>";
                }
            } Else {
                    $phmessage="<span class=\"error\">No Album name entered!</span>";
            }
   
        //Upload Images!
           
        } Elseif($_POST['upload']) {
            If($_FILES['image']['name']) {
                If(!upload()) {
                    $phmessage="<span class=\"error\">Error: Image ".$_FILES['image']['name']." could not be upload. Probably a Chmod Error or file exists.</span>";
                } Else {
                    $phmessage="<span class=\"error\">Image ".$_FILES['image']['name']." has been uploaded!</span>";
                }
            } Else {
                    $phmessage="<span class=\"error\">No File Selected</span>";
            }
        } Elseif($_POST['remove']) {
            If($_POST['file']) {
                If(!remove()) {
                    $phmessage="<span class=\"error\">Could not delete file, probably a premission error..</span>";
                } Else {
                    $phmessage="<span class=\"error\">The file has been removed.</span>";
                }
            } Else {
                    $phmessage="<span class=\"error\">No filename was sent to be deleted...</span>";
            }
        }
       
    }
}

//Makes the tables look nice and pretty.

If($table_cells=="1") {
    $cell_width="100%";
} Elseif($table_cells=="2") {
    $cell_width="50%";   
} Elseif($table_cells=="3") {
    $cell_width="33%";       
} Elseif($table_cells=="4") {
    $cell_width="25%";           
} Elseif($table_cells=="5") {
    $cell_width="20%";
} Elseif($table_cells=="6") {
    $cell_width="16%";
} Else {
    $cell_width="10%";
}

//This is just a random ignore word if none is set above, pretty impossible to be in the filename anyways.

If(!$ignore_word) {
    $ignore_word=microtime();
}

//A bit tricky, but all in all it works, returns the filename without the extension!

function file_name($key) {
    $key=strrev(substr(strstr(strrev($key), "."), 1));
    return($key);
}

//Lets get the file extension.

function file_ext($key) {
    $key=strtolower(substr(strrchr($key, "."), 1));
    $key=str_replace("jpeg", "jpg", $key);
    return($key);
}

//My ever popular (Yeah right) function for image creation.

function file_thumb($file,$album,$file_name) {
    global $thumb_width,$thumb_height,$jpg_quality;

    //Get the file extension!

    $file_ext=file_ext($file);

    //The GD Libary only supports jpg and gif really, well it can only make a gif a jpg. There are other ways like image magik, but not many have it so I didn't include that. So dent anything that isn't a gif or jpg :(.   
    $Allow=array("jpg","gif","png");

    If(in_array($file_ext,$Allow)) {

        //Lets do some converting!
        $imgdata=getimagesize($full_server.$album.$file);
        $imgresized=imagecreatetruecolor($thumb_width, $thumb_height);
       
        If($file_ext=="gif") {
           
            $imgsoruce=imagecreatefromgif($full_server.$album.$file);
           
        } Elseif($file_ext=="jpg") {
           
            $imgsoruce=imagecreatefromjpeg($full_server.$album.$file);
           
        } Elseif($file_ext=="png") {
           
            $imgsoruce=imagecreatefrompng($full_server.$album.$file);
           
        } Else {
           
            return false;
           
        }

        imagecopyresized($imgresized, $imgsoruce, 0, 0, 0, 0, $thumb_width, $thumb_height, $imgdata[0], $imgdata[1]);
       
        $new_file=$full_server.$album.$file_name."_thumb.".$file_ext;

        //PHP 4.4.X added safemode check which made me add this here..
       
        $fh=fopen($new_file,'w');
        fclose($fh);
       
       
        If($file_ext=="gif") {
       
            If(!imagegif($imgresized, $new_file)) {
                return false;
            }
           
        } Elseif($file_ext=="jpg") {
           
            If(!imagejpeg($imgresized, $new_file,$jpg_quality)) {
                return false;
            }
           
        } Elseif($file_ext=="png") {
           
            If(!imagepng($imgresized, $new_file)) {
                return false;
            }
           
        }

       
        imagedestroy($imgsoruce);
        imagedestroy($imgresized);
       
        return True;
    }
   
    return false;
}

//The tiny but powerfull ;) admin panel.

function phadmin() {
    global $phmessage,$script_url,$album;
   
    If($phmessage) {
        Echo("<div align=\"center\"><b>".$phmessage."</b></div><br />");
    }
?>

<table style="border:0px;" width="300" align="center">
    <tr>
        <td><b>Make New Album</b></td>
    </tr>
    <tr>
        <td width="100%">
            <form method="post" action="<?=$script_url;?>?<?=$_SERVER['QUERY_STRING'];?>" enctype="multipart/form-data" style="margin:0px;">
                <input type="text" name="albumname" />
                <input type="hidden" name="album" value="<?=$album;?>" />
                <input type="hidden" name="makedir" value="true" />
                <input type="submit" value=" Go! " />
                </form>
                <br />
            <br />
        </td>
    </tr>
    <tr>
    <td><b>Upload Image</b></td>
    </tr>
    <tr>
        <td width="100%">
            <form method="post" action="<?=$script_url;?>?<?=$_SERVER['QUERY_STRING'];?>" enctype="multipart/form-data" style="margin:0px;">
                <input type="file" name="image" />
                <input type="hidden" name="album" value="<?=$album;?>" />
                <input type="hidden" name="upload" value="true" />
                <input type="submit" value=" Go! " />
            </form>
            <br />
            <br />
        </td>
    </tr>
</table>
<?
}

//Makes a directory

function makedir($key) {
    global $full_server;
   
    $key=str_replace(".","",str_replace("/","",$key));
    $album=str_replace(".","",$_POST['album']);
   
    If(!@mkdir($full_server.$album.$key)) {
        return False;
    }
    @chmod($full_server.$album.$key,octdec("0777"));
    return True;
}

//Uploads the file to the current directory.

function upload() {
    global $full_server,$show_files;
   
    $key=$_FILES['image']['tmp_name'];
    $name=$_FILES['image']['name'];
   
    $album=str_replace(".","",$_POST['album']);
   
    If(in_array(file_ext($name),$show_files)) {
        If(!file_exists($full_server.$album.$name)) {
            If(!move_uploaded_file($key,$full_server.$album.$name)) {
                return False;
            } Else {
                return True;
            }
           
        }
    }
    return False;
}

function remove() {
    global $show_files;
   
    $file=$_POST['file'];
   
   
    $name=file_name($file);
    $ext=file_ext($file);
   
    $thumb=$name."_thumb.".$ext;
   
    If(in_array(file_ext($file),$show_files)) {
        If(@!unlink($file)) {
            return false;
        } Else {
            @unlink($thumb);
            return true;
        }
    }
    return False;
}


//Get the current album.

$album=stripslashes(str_replace(".","",$_GET['album'])); //Great security here.. Disallows going up the dir tree.

//Lil bit of security, not much but it may stop some kids from messing!

If(!is_dir($files_path.$album)) {
    $album="";
}

//We don't want ugly _'s or -'s to display with the file or folder names do we? No! So, lets take them out.

$find=array("_","-");
$replace=array(" "," ");

//############################# DISPLAY THE ALBUM###########################

//Boom! Splits the $album var into a readable array!

$folder=@explode("/",$album);

If($album) {
    $nav="<a href=\"".$script_url."\"><img src=\"".$close_folder."\" style=\"border:0px;\" align=\"absmiddle\" alt=\"Album Home\" /> ".$home_link."</a> ";
} Else {
    $nav="<a href=\"".$script_url."\"><img src=\"".$open_folder."\" style=\"border:0px;\" align=\"absmiddle\" alt=\"Album Home\" /> ".$home_link."</a> ";   
}

//How many paths do we got in $album?

$count=@count($folder);

//Lets make the naviation! Don't look if you have a weak stomache!

for($i=0;$i<$count;$i++) {
    If($folder[$i]) {
       
        $path.=$folder[$i]."/";

        //Give all the folders except the last folder a link and a closed picture.

        If(($count-2) > $i) {
            $nav .=" > <a href=\"".$script_url."?album=".$path."\"><img src=\"".$close_folder."\" style=\"border:0px;\" align=\"absmiddle\" alt=\"".ucwords($folder[$i])."\" /> ".ucwords($folder[$i])."</a> ";
        } Else {
            $nav .=" > <a href=\"".$script_url."?album=".$path."\"><img src=\"".$open_folder."\" style=\"border:0px;\" align=\"absmiddle\" alt=\"".ucwords($folder[$i])."\" /> ".ucwords($folder[$i])."</a> ";
        }
    }
}

Echo($nav);

//Lets get some images!!

$dir=@opendir($full_server.$album);

//Loop through them all ;).

while($file=@readdir($dir)) {

    //Don't display the stupid directory tree files.

    If($file!= "." AND $file!= "..") {

        //If it's a directory, show the folder image with a link to the new album

        If(is_dir($full_server.$album.$file)) {

            //If the file has the ignore word in it, do not show the file.

            If(!eregi($ignore_word,$file)) {

                $display_name=str_replace($find,$replace,$file);

                //Make the html       
               
                $folders .= "<td width=\"".$cell_width."\" align=\"center\"><a href=\"".$script_url."?album=".$album.$file."/\"><img src=\"".$big_folder."\" style=\"border:0px;\" alt=\"".ucwords($display_name)."\" /><br />".ucwords($display_name)."</a></td>\n";

                $j++;
                If(is_int($j / $table_cells)) { //This makes the table all nice and neat, actually, it splits the table with a new <tr> every $table_cells images/folders.
                    $folders.= "</tr>\n<tr>\n";
                    $folder_close="1";
                } Else {
                    $folders.="";
                }
           
            }

        // Else, the file is not a directory, so it must be an image.

        } Else {
           
            $file_ext=".".file_ext($file);
            $file_name=file_name($file);
            $display_name=str_replace($find,$replace,$file_name);

            //Hide the thumb files from displaying as regular files and disallow any file types that are not allowed.

            If((!eregi("_thumb",$file)) && (in_array(file_ext($file),$show_files))) {

                //If the file has the ignore word in it, do not show the file.

                If(!eregi($ignore_word,$file)) {
                   
                    //If a thumb file dosen't exists, then try and make one.
                   
                    If($auto_thumb) {
                        If(!file_exists($full_server.$album.$file_name."_thumb".$file_ext)) {
                            If(!file_thumb($file,$full_server.$album,$file_name)) {
                                $thumb_error .="Thumb for ".$files_path.$album.$file." could not be created.<br />";
                            }
                        }
                    }

                    //Now, if there is a thumb file, display the thumb, else display the full images but smaller :(.

                    If(file_exists($full_server.$album.$file_name."_thumb".$file_ext) OR file_exists($full_server.$album.$file_name."_thumb".$file_ext)) {
                        $thumb="_thumb".$file_ext;
                    } Else {
                        $thumb=$file_ext;
                    }

                    //Make the html
$remove="";

If($display_admin) {
    If($phAdmin==true) {
        $remove="\n<form method=\"post\" action=\"".$script_url."?".$_SERVER['QUERY_STRING']."\" enctype=\"multipart/form-data\" style=\"margin:0px;\">\n";
        $remove.="<input type=\"hidden\" name=\"file\" value=\"".$full_server.$album.$file."\" />\n";
        $remove.="<input type=\"hidden\" name=\"remove\" value=\"true\" />\n";
        $remove.="<input type=\"submit\" value=\" Delete File \" />\n";
        $remove.="</form>\n";
    }
}
                    If($drop_shadow) {
                        //Cool drop shadow effect.
                        $images .= "<td width=\"".$cell_width."\" align=\"center\"><div style=\"width:".($thumb_width+20)."px;height:".($thumb_height+20)."px;filter:shadow(color:grey,strength:15, direction:135);\"><a href=\"".$files_path.$album.$file."\" target=\"_blank\"><img src=\"".$files_path.$album.$file_name.$thumb."\" style=\"border:0px;\" width=\"".$thumb_width."\" height=\"".$thumb_height."\" alt=\"".ucwords($display_name)."\" /></a></div>".ucwords($display_name)."<br />".$remove."</td>\n";

                    } Else {
                        //Image border
                        $images .= "<td width=\"".$cell_width."\" align=\"center\"><a href=\"".$files_path.$album.$file."\" target=\"_blank\"><img src=\"".$files_path.$album.$file_name.$thumb."\" style=\"border:0px;\" width=\"".$thumb_width."\" height=\"".$thumb_height."\" class=\"image\" alt=\"".ucwords($display_name)."\" /></a><br />".ucwords($display_name)."<br />".$remove."</td>\n";
                       
                    }
                   
                    $k++;
                    If(is_int($k / $table_cells)) { //This makes the table all nice and neat, actually, it splits the table with a new <tr> every $table_cells images/folders.
                        $images .= "</tr>\n<tr>\n";
                        $image_close="1";
                    } Else {
                        $images .="";
                    }
               
                }
            }
        }
    }
}
@closedir($dir);

//Close the directory so the bugs don't get in and display some folders and images! Whew! What a workout!
?>
<table style="border:0px;">
    <tr>
        <td align="left" nowrap="nowrap"><?=$navigation;?></td>
    </tr>
</table>
<br />


<?
If($folders) {
    Echo("<table style=\"border:0px;\" cellpadding=\"15\" width=\"98%\" align=\"center\">\n");
    Echo("<tr>\n");
    Echo($folders);
    If(!$folder_close) {
        Echo("</tr>\n");
    }
    Echo("</table>\n");
    Echo("<hr size=\"1\" />\n");
}
Echo("<br />\n");
If($images) {
    Echo("<table style=\"border:0px;\" cellpadding=\"15\" width=\"98%\" align=\"center\">\n");
    Echo("<tr>\n");
    Echo($images);
    If(!$image_close) {
        Echo("</tr>\n");
    }
    Echo("</table>\n");
   
    If($thumb_error && !$supress_error) {
        Echo("<div align=\"center\"><span class=\"error\">The following thumb errors have occured:</span><br /><br /> <b>".$thumb_error."<br />Maybe this is from the folder ".$files_path.$album." not being chmod 777.</b></div>");
    }
   
} Else {
    Echo("<table style=\"border:0px;width:".$table_width.";\" cellpadding=\"15\" align=\"center\">\n");
    Echo("<tr>\n");
    Echo("<td align=\"center\"><b>No images to display in this album. Please pick another album.</b></td>");
    Echo("</tr>\n");
    Echo("</table>\n");
}
Echo("<br />\n");
Echo("<br />\n");
If($display_admin) {
   
    Echo("<hr size=\"1\" /><br />\n");
   
    If($phAdmin==true) {
            phadmin();
    } Else {
        ?>
        <form method="post" action="<?=$script_url;?>?<?=$_SERVER['QUERY_STRING'];?>">
            <table style="border:0px;width:250;" align="center">
                <tr>
                    <td align="center" colspan="2"><b>Admin Login Here:</b></td>
                </tr>
                <tr>
                    <td>Username:</td>
                    <td> <input type="text" name="username" size="20" /></td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td> <input type="password" name="password" size="20" /></td>
                </tr>
                <tr>
                    <td align="center" colspan="2">
                    <input type="hidden" name="login" value="true" />
                    <input type="submit" value=" Log me in " />
                    </td>
                </tr>
            </table>
        </form>
        <?
    }
}
?>
<?//Please leave this here.. it really dosen't make people hate you or make your site look bad.. ?>
<table style="border:0px;" align="center" width="80%">
    <tr>
        <td align="right"><div class="copyright">&copy;<a href="http://www.phphq.net?script=phAlbum" target="_blank" title="Photo Album Powered By phAlbum &lt;www.phphq.net&gt;">phAlbum</a></div></td>
    </tr>
</table>
</body>
</html>
Avatar billede djicep Nybegynder
22. december 2006 - 16:02 #1
Du kunne ikke prøve at skrive en lidt længere kode :P
Avatar billede thomastegl Nybegynder
23. december 2006 - 14:24 #2
"Ved ikke præcis hvilken del af scriptet der skal bruges, så jeg poster hele phAlbum.php"

Hmm. Jeg synes jo egentlig jeg har forsøgt med en lidt undskyldende forklaring på den meget omfattende post. Indrømmet, der er da meget der kunne barberes væk; men mit håb var, at en evt. ekspert bedre ville kunne over-/gennemskue en løsning hvis alt var med.
Dog må jeg, ud fra antallet af svar mit spørgsmål har afstedkommet, konstatere at du sandsynligvis har ret i din lettere ironiske kommentar. Koden er for lang!
Avatar billede thomastegl Nybegynder
29. december 2006 - 11:55 #3
Slet ingen der har det fornødne php-kendskab ? ? ?
Avatar billede thomastegl Nybegynder
30. december 2006 - 17:15 #4
Lukker og slukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester