Avatar billede prysse Nybegynder
09. juni 2006 - 11:31 Der er 11 kommentarer og
1 løsning

Hjælp med php script

Hey alle eksperter.

Jeg står og mangler et php script med tilhørende PHP hvor det er muligt at uploade et billede, samt knytte en kommentar til billedet som bliver lagret i en mysql base... billedet skal derefter vises på en side, og kommentar tilhørende billedet skal vises lige nedenunder.

Det hele lyder forholdsvis simpelt, men har bare ikke kunne finde noget brugbart endnu ... hverken heller eller andre steder :s

plz hjælp eksperter... gode point på højkant for at hjælpe denne PHP newbie ;)
Avatar billede jakobdo Ekspert
09. juni 2006 - 11:40 #1
Noget i stil med:

<?php

/******************************************\
*                                          *
* CREATE TABLE pictures (                  *
*  pid int(11) NOT NULL auto_increment,  *
*  title text,                            *
*  imgdata blob,                          *
*  PRIMARY KEY  (pid)                    *
*  ) ENGINE=MyISAM;                      *
*                                          *
\******************************************/

require("./../connect.php");

function resize( $filename, $newfilename, $maxw, $maxh )
{
    $result = false;
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    $result = imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}

$allowPics = array("jpg","jpeg","jpe");

if ($_POST['completed'] == 1)
{
    // Need to add - check for large upload. Otherwise the code
    // will just duplicate old file ;-)
    // ALSO - note that latest.img must be public write and in a
    // live appliaction should be in another (safe!) directory.
    if($_FILES['imagefile']['size'] > 1024000)
    {
        $errmsg = "Too large!";
    }
    else
    {
        $extension = strtolower(end(explode(".",$_FILES['imagefile']['name'])));
        if(!in_array($extension,$allowPics))
        {
            $errmsg = "Wrong filetype!";
        }
        else
        {
            resize($_FILES['imagefile']['tmp_name'],"latest.img",300,300);
            $instr = fopen("latest.img","rb");
            $image = addslashes(fread($instr,filesize("latest.img")));
            mysql_query ("insert into pictures (title, imgdata) values (\"".$_POST['whatsit']."\", \"".$image."\")") or die(mysql_error());
        }
    }
}

// Find out about latest image

$gotten = mysql_query("select * from pictures order by pid desc limit 1") or die(mysql_error());
if(mysql_num_rows($gotten)>0)
{
    $row = mysql_fetch_assoc($gotten);
    $title = htmlspecialchars($row['title']);
    $bytes = $row['imgdata'];
}
else
{
    $errmsg = "There is no image in the database yet";
    $title = "no database image available";
    // Put up a picture of our training centre
    $instr = fopen("./images.jpg","rb");
    $bytes = fread($instr,filesize("./images.jpg"));
}

// If this is the image request, send out the image

if ($_GET['gim'] == 1)
{
    header("Content-type: image/jpeg");
    print $bytes;
    exit ();
}
?>

<html>
<head>
<title>Upload an image to a database</title>
<body bgcolor=white><h2>Here's the latest picture</h2>
<font color=red><?= $errmsg ?></font>
<center><img src=?gim=1><br>
<b><?= $title ?></center>
<hr>
<h2>Please upload a new picture and title</h2>
<form enctype="multipart/form-data" method="post">
<input type="hidden" name="completed" value="1">
Please choose an image to upload: <input type="file" name="imagefile"><br>
Please enter the title of that picture: <input name="whatsit"><br>
then: <input type="submit"></form><br>
</body>
</html>

Skal så "bare" udbygges med kommentar felt.
Avatar billede barklund Nybegynder
09. juni 2006 - 11:42 #2
Hvordan kan man have et php script *uden* tilhørende PHP?
Avatar billede jakobdo Ekspert
09. juni 2006 - 11:46 #3
Barklund: :o)
Avatar billede prysse Nybegynder
13. juni 2006 - 10:11 #4
Kan desværre ikke bruges :P ... Ingen andre der har noget brugbart ??
Avatar billede jakobdo Ekspert
13. juni 2006 - 12:02 #5
Hvorfor kan det ikke bruges?
Fordi det ikke lige præcist gør hvad du ønsker?
Eller fordi du ikke kan finde ud af at rette koden til?
Avatar billede prysse Nybegynder
13. juni 2006 - 16:18 #6
fordi jeg ikke kan rette det til, og fordi connect.php mangler ;)
Avatar billede jakobdo Ekspert
04. december 2006 - 18:14 #7
connect.php skal indeholde:
<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
  die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
  die ('Can\'t use foo : ' . mysql_error());
}
?>
Tilpasset dine info selvfølgelig.

At det ikke kan rettes til, skyldes vel dine manglende php evner?
Avatar billede prysse Nybegynder
20. august 2007 - 10:03 #8
hey jakob ... gammel tråd jeg lige vil lukke. Giver du et svar så du kan få point, og tråden kan blive lukket?? :)
Avatar billede jakobdo Ekspert
20. august 2007 - 10:35 #9
Svar!
Avatar billede prysse Nybegynder
20. august 2007 - 11:24 #10
Takker ;)

// Lukket
Avatar billede jakobdo Ekspert
20. august 2007 - 11:26 #11
Takker for point.
Avatar billede prysse Nybegynder
20. august 2007 - 11:53 #12
Ingen problem :P

// Definitivt lukket :P
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