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.
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??
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!!!