Avatar billede frontview Nybegynder
16. december 2004 - 12:49 Der er 7 kommentarer

Indsætte billede i database

Sidder og roder med at lave et community..

Når man så opretter sin profil ville jeg gerne have at man kunne indsætte et billede direkte fra brugerens harddisk, hvordan gøres dette??
Avatar billede morteeart Nybegynder
16. december 2004 - 12:54 #1
Avatar billede frontview Nybegynder
16. december 2004 - 13:30 #2
Ja, og det blev jeg desværre ikke meget klogere af..
Avatar billede morteeart Nybegynder
16. december 2004 - 18:31 #3
Så mangler du enten mere erfaring omkring php, eller også har du ikke læst artiklen grundigt nok.

Når folk uploader billedet til deres profil, så kan du bruge det script, og så f.eks. navngive filen ud fra brugens ID fra din database.

Der er ikke optimalt at lægge billedet i binær format i en database, da database plads er dyerer end ftp, og at ftp er hurtigere end databasen.
Avatar billede qub- Novice
17. december 2004 - 11:00 #4
Du starter ud med at læse artiklen om at oploade billeder her på eksperten: http://www.eksperten.dk/artikler/412

Der giver du hver billede som der bliver oploadet, et unikt navn. Og det unikke navn tilføjer du så hos den enkelt bruger i mysql fx..


Jeg har næsten selv lige lavet et lignende system...
Avatar billede frontview Nybegynder
17. december 2004 - 14:55 #5
Den uploader billederne til en fil men den indsætter ikke noget i man database..

<?

$bruger = $_POST['bruger'];
$pass = $_POST['pass'];

include("access.php");
$query = "SELECT id, user, pass FROM login WHERE user = '".$bruger."'";
$result = mysql_query($query)or die("MySQL fejl: " . mysql_error());
$test = mysql_fetch_array($result);

       
if (isset($test['user'])) {
print("    <font face='verdana' size='2' color='#ff0000'>
        <b>Brugernavnet \"$bruger\" er allerede optaget
        vælg venligst et nyt </b></font><br>
        <font face='verdana' size='2' color='#000000' text-decoration='none'>
        <a href='create.html'>Tilbage</a></font>");
}
else
{


       
if ($HTTP_POST_FILES['userfile']['tmp_name'] && $HTTP_POST_FILES['userfile']['tmp_name'] != "none") {
/* Hvis det er tilfældet sætter vi nogle variabler */
$uploadfil = $HTTP_POST_FILES['userfile']['tmp_name'];
$uploadname = $HTTP_POST_FILES['userfile']['name'];
$uploadsize = $HTTP_POST_FILES['userfile']['size'];
$uploadtype = $HTTP_POST_FILES['userfile']['type'];
/* Hvilken type fil arbejder vi med? */
$ext = strtolower(end(explode(".", $HTTP_POST_FILES['userfile']['name'])));

/* hvis filen er et billede. Hvis du vil tillade flere filtyper, skal du bare angive filtypen som herunder. */
if($ext == "jpg" || $ext == "jpeg" || $ext == "gif" || $ext == "bmp")
{
/* hvis filen er større end eller lig med den i config.php angivne maxstørelse */
if ($uploadsize >= $upload_maxsize) {

echo "Dit billede fylder $uploadsize <br>
og må højest fylde $upload_maxsize";

/* Ellers */
}
else{
/* sætter variablen tid */
$tid = time();
/* Her giver vi billedet et andet navn, så der ikke kommer to ens navne… navnet har formattet "det-aktuelle-tidspunkt_et-tilfældigt-tal.endelse" */
$nytnavn = $tid . "_" . rand(1, 1000000) . "." . $ext;

/* Flytter billedet til den rette placering, med det nye navn */
copy($HTTP_POST_FILES['userfile']['tmp_name'],"$upload_sti$nytnavn");

/* Indsætter data i databasen. billed er navnet på tabellen i databasen. Den første parantes fortæller hvilke kolonner der skal indsættes i. Den anden parantes giver værdierne.
overskrift, tekst, billednavn og navn kommer fra vores formular. billed er det nye navn billedet har fået, og som skal bruges til at hente billedet igen. Filtype er taget med for at man kan få et overblik over hvilke filtyper der bliver brugt.
Du kan selvfølgeligt ændre i dette, hvis du ønsker andre felter i din formular, men vær opmærksom, der skal ikke ret meget til for at lave ged i det. */

$sql = "INSERT INTO login (id, user, pass, navn, email, tlf, relation, billed, billednavn, filtype, sidst_online) VALUES ('', '$bruger', '$pass', '$navn', '$email', '$tlf', '$relation','$nytnavn','$uploadname','$ext', now() )";
mysql_query($sql);
/* går til en ny side (formentligt der hvor man kan se det nye indlæg) */
print("    <font face='verdana' size='2' color='#669900'>
        <b>    Bruger: $bruger <br>
        Password: $pass <br>
        Er nu oprettet </b></font><br>
        <font face='verdana' size='2' color='#000000' text-decoration='none'>
        <a href='login.php'>Login</a></font>");



}
/* hvis ikke filen er et billede, eller anden godkendt fil */
}else{
echo "din fil er ikke en godkendt fil";
}
/* Hvis der ikke uploades nogen fil */
}else{
/* Al filhåntering bliver sprunget over, og de andre data indsættes i databasen */
$sql = "INSERT INTO login (id, user, pass, navn, email, tlf, relation, sidst_online) VALUES ('', '$bruger', '$pass', '$navn', '$email', '$tlf', '$relation', now() )";
mysql_query($sql);
print("    <font face='verdana' size='2' color='#669900'>
        <b>    Bruger: $bruger <br>
        Password: $pass <br>
        Er nu oprettet </b></font><br>
        <font face='verdana' size='2' color='#000000' text-decoration='none'>
        <a href='login.php'>Login</a></font>");
}


}
?>

Nogen der kan spotte hvad der er galt??
Avatar billede morteeart Nybegynder
18. december 2004 - 14:31 #6
ret mysql_query($sql);
til mysql_query($sql) or die(mysql_error());

og så skriv hvad du får af fejl.
Avatar billede frontview Nybegynder
19. december 2004 - 01:10 #7
Jeg fik det til at virke...

Nu er der så bare kommet et nyt spørgsmål..!!
Hvordan opdaterer man billedet??
Har prøvet at lave et script, men det virker ikke..
<?php
session_start();
include("sider.php");
if ($_SESSION['status'] == "login")
{

}
else
{
print("    <script language='javascript'>
        location.href='login.php';
        </script>");
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body bgproperties="fixed">
<?
include("access.php");


if($module){
if ($HTTP_POST_FILES['userfile']['tmp_name'] && $HTTP_POST_FILES['userfile']['tmp_name'] != "none") {

$uploadfil = $HTTP_POST_FILES['userfile']['tmp_name'];
$uploadname = $HTTP_POST_FILES['userfile']['name'];
$uploadsize = $HTTP_POST_FILES['userfile']['size'];
$uploadtype = $HTTP_POST_FILES['userfile']['type'];

$ext = strtolower(end(explode(".", $HTTP_POST_FILES['userfile']['name'])));


if($ext == "jpg" || $ext == "jpeg" || $ext == "gif" || $ext == "bmp")
{

if ($uploadsize >= $upload_maxsize) {

echo "Dit billede fylder $uploadsize <br>
og må højest fylde $upload_maxsize";


}else{

$tid = time();

$nytnavn = $tid . "_" . rand(1, 1000000) . "." . $ext;


copy($HTTP_POST_FILES['userfile']['tmp_name'],"$upload_sti$nytnavn");




$query = "UPDATE login SET pass = '$password', hjemmeside = '$hjemmeside', email = '$email', alder = '$alder', bopael = '$bopael', tlf = '$tlf', beskriv = '$beskrivelse', billede ='$nytnavn', filtype = '$ext' WHERE user ='".$_SESSION['navn']."'";
mysql_query($query) or die(mysql_error());

echo "Profil Opdateret";
print("    <script language='javascript'>
        location.href='liste.php';
        </script>");
}


}else{
echo "Billede blev IKKE opdateret";
}

}else{


$query = "UPDATE login SET pass = '$password', hjemmeside = '$hjemmeside', email = '$email', alder = '$alder', bopael = '$bopael', tlf = '$tlf', beskriv = '$beskrivelse' WHERE user ='".$_SESSION['navn']."'";
mysql_query($query) or die(mysql_error());
echo "Profil Opdateret";
print("    <script language='javascript'>
        location.href='liste.php';
        </script>");
}


        }
   



$sql = mysql_query("SELECT * FROM login WHERE user = '".$_SESSION['navn']."'");
    while($row = mysql_fetch_array($sql)) {
echo "\t <form action=\"ret_egen_profil.php\" method=\"post\">\n";
echo "\t <input type=\"hidden\" name=\"module\" value=\"action\"> \n";
echo "<table width='450'>
        <tr>
            <td colspan='2' align='center'>Ret bruger : $row[user]</td>
        </tr>
        <tr>
            <td width='200'>Ret Password:</td><td><input type='text' name='password' value='$row[pass]'></td>
        </tr>
        <tr>
            <td width='200'>Ret Hjemmeside:</td><td><input type='text' name='hjemmeside' value='$row[hjemmeside]'></td>
        </tr>
        <tr>
            <td width='200'>Ret Email:</td><td><input type='text' name='email' value='$row[email]'></td>
        </tr>
        <tr>
            <td width='200'>Ret Alder:</td><td><input type='text' name='alder' value='$row[alder]'></td>
        </tr>
        <tr>
            <td width='200'>Ret Bopæl:</td><td><input type='text' name='bopael' value='$row[bopael]'></td>
        </tr>
        <tr>
            <td width='200'>Ret Tlf.nr:</td><td><input type='text' name='tlf' value='$row[tlf]'></td>
        </tr>
        <tr>
            <td width='200'>Ret Billede:</td><td><input type='file' name='userfile'></td>
        </tr>
        <tr>
            <td width='200'>Ret Beskrivelse:</td><td><textarea name='beskrivelse' cols='34' rows='5'>$row[beskriv]</textarea></td>
        </tr>
        <tr>
            <td colspan='2' align='center'><input type='submit' class='bt' value='Opdater Profil'></td>
        </tr>
    </table>";
echo "\n \t</form>\n";
}

?>
</body>
</html>

Det opdaterer alt undtaget billedet!!!
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