Avatar billede raan Nybegynder
26. juni 2007 - 10:53 Der er 7 kommentarer og
1 løsning

profilbillede ændring.

Hej derude :-)

Jeg har en fil som kan uploade profilbilledet og smide stien ind i en database.
men jeg vil gerne have at den ændre navnet på billedet til deres ID! og hvis de så uploader flere billeder skal den bare sætte 1,2,3 osv på =)

<center>
&nbsp;</br>
<?
include("sql.php");

$konfiguration["upload_bibliotek"] = "./img/profilbillede";
$konfiguration["max_stoerrelse"] = "200";
list($major, $minor, $rev) = explode(".", phpversion());
if($major < 4) {
  die("Jeg kan kun arbejde med PHP 4.0.0 eller derover");
}
if($minor < 1) {
  $_FILES = $HTTP_POST_FILES;
  $_POST = $HTTP_POST_VARS;
  $_SERVER = $HTTP_SERVER_VARS;
}
if($_FILES["upfil"]["size"] > 0) {
$filetype = $_FILES['upfil']['type'];
if($filetype == "image/gif") { $type = "gif"; }
if($filetype == "image/jpeg") { $type = "jpg"; }
if($filetype == "image/pjpeg") { $type = "jpg"; }
if(!$type) {
echo "Ukendt type";
echo "<br> " . $filetype;
exit();
}
else {
if($type != "jpg" && $type != "gif")
{
echo "HAT!";
exit();
}
else
{
  $fra = $_FILES["upfil"]["tmp_name"];
  $til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];
  $fil_stoerrelse = filesize($fra)/1024;
  if($fil_stoerrelse > $konfiguration["max_stoerrelse"]) {
      die("Desv&aelig;rre - filen er for stor. Jeg accepterer kun " .
          $konfiguration["max_stoerrelse"] . "kb, og din fil fylder " .
          ceil($fil_stoerrelse) . "kb");
  }
  if(function_exists("move_uploaded_file")) {
    move_uploaded_file($fra, $til);
  } else {
    copy($fra, $til);
  }
  $tjek = mysql_query("select * from beg_profil WHERE username = '{$_SESSION['brugernavn']}'") or die(mysql_error());
  if(mysql_num_rows($tjek)>0)
  {
  $update = mysql_query("UPDATE beg_profil set profilbillede = '$til' WHERE username LIKE '" . $_SESSION['brugernavn'] . "'") or die(mysql_error());
  }
  header("Location: " . $_SERVER["PHP_SELF"]);
  exit;
}
}
}
else {

?>
<form action="" method="post" enctype="multipart/form-data">
                <table border="1" cellpadding="5" cellspacing="0">
                  <tr>
                    <td align="right" bgcolor="#999999"><b>Upload dit billede:</b></td>
                    <td bgcolor="#cccccc"><input type="file" name="upfil" /></td>
                  </tr>
                  <tr>
                    <td colspan="2" align="middle" bgcolor="#dddddd"><input type="submit" value="upload" /></td>
                  </tr>
                </table>
              </form>
<?
}
?>
Avatar billede coderdk Praktikant
26. juni 2007 - 12:12 #1
Hvis du nu gemte deres user ID i sessionen i stedet for brugernavn (og brugte den alle andre steder i stedet for voldsomt uoptimalt at bruge LIKE brugernavn) så kunne du bare ændre:

$til = $konfiguration["upload_bibliotek"] . "/" . $_FILES["upfil"]["name"];

til

$til = $konfiguration["upload_bibliotek"] . "/" . $_SESSION['userid'] . "." . $type;
Avatar billede raan Nybegynder
26. juni 2007 - 13:45 #2
jamen det burde jeg vel også kunne ændre nu?
Avatar billede coderdk Praktikant
26. juni 2007 - 14:00 #3
Mjah, du skal bare ændre din loginprocedure, så du også gemmer $_SESSION['userid'] ud over $_SESSION['brugernavn'] så ville det jeg har skrevet virke. Så kan du ændre statements som:

  $tjek = mysql_query("select * from beg_profil WHERE username = '{$_SESSION['brugernavn']}'") or die(mysql_error());
  if(mysql_num_rows($tjek)>0)
  {
  $update = mysql_query("UPDATE beg_profil set profilbillede = '$til' WHERE username LIKE '" . $_SESSION['brugernavn'] . "'") or die(mysql_error());


til


  $tjek = mysql_query("select * from beg_profil WHERE userid = '{$_SESSION['userid']}'") or die(mysql_error());
  if(mysql_num_rows($tjek)>0)
  {
  $update = mysql_query("UPDATE beg_profil set profilbillede = '$til' WHERE userid = '" . $_SESSION['userid'] . "'") or die(mysql_error());
Avatar billede coderdk Praktikant
26. juni 2007 - 14:00 #4
Og evt. andre steder hvor du tidligere har brugt queries med $_SESSION['brugernavn']
Avatar billede raan Nybegynder
26. juni 2007 - 14:11 #5
altså $_SESSION['userid']=$row['id']; ?
Avatar billede raan Nybegynder
26. juni 2007 - 14:17 #6
fik det til at virke ..
men ville du hjælpe mig med det andet problem?
- altså hvis den samme bruger upload et nyt billede, skal det gamle slettes?
Avatar billede coderdk Praktikant
26. juni 2007 - 14:40 #7
Der skal ikke gøres yderligere. Hvis filen findes i forvejen, overskriver move_uploaded_file den! :)
Avatar billede raan Nybegynder
26. juni 2007 - 14:41 #8
Arh, smart! :)
- tak for hjælpen!
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