Avatar billede kimox Nybegynder
05. november 2003 - 17:22 Der er 16 kommentarer og
1 løsning

Billede gem !

Kære eksperter, er der ikke nok en der kan hjælpe mig med at lave så man kan oploade et billede til en mappe på min server, og samtidig med det så krypter den evt. navnet på filen og sætter ind i min mysql database, så jeg kan hente lige præcis det billede frem når jeg siger feks. Vis profil ?

Det skal siges det er en opret side det skal laves på.

som kan ses her:
http://vix-mix.dk/div/opret.phps

Håber virkelig der er en der vil hjælpe mig igennem dette, for sidder fast lige ind til :((
Avatar billede rackbox Nybegynder
05. november 2003 - 20:57 #1
40 pt. for det svar... Hmm.. Ikke meget... Jeg vælger den "lette" løsning så ;-)

<HTML>
<form enctype='multipart/form-data' name='postform' action="senddata.php">
<input type=file>
<input type=submit>
</form>

senddata.php
<?php
$destination = "billeder/";
$filename = $_FILES['postform']['name'];
$encrypted_name=md5($filename);
move_uploaded_files($_FILES['postform']['tmp_name'],
$destination.$encrypted_name);
$query = "insert into MyTable values('', ".$encrypted_name;
mysql_query($query);

Læs evt mere på http://dk2.php.net/manual/en/function.move-uploaded-file.php
Avatar billede sukos Juniormester
06. november 2003 - 00:54 #2
hvorfor kryptere et billedenavn?
Avatar billede rackbox Nybegynder
06. november 2003 - 22:06 #3
Muligvis for at ikke alle og enhver kan gætte hvilket billede der hører til hvilken profil...
Avatar billede kimox Nybegynder
08. november 2003 - 13:25 #4
Ja rigtigt.. hnn.. rack.. hvor mange points skal du have for at lave det til mig med den "sværere" løsning hehe.. og sætte det ind så det passer med det jeg har lavet ? http://vix-mix.dk/div/opret.phps
Avatar billede rackbox Nybegynder
08. november 2003 - 13:36 #5
Det er ikke udelukkende et spørgsmål om points.. Jeg har kigget på din kode og vurderer at jeg nok skal bruge et par timer på at sætte mig ind i, hvad der sker - specielt også fordi jeg ikke har adgang til din func.php fil. Dernæst skal vi tage højde for, hvilket billed-format du ønsker at benytte; Skal det kun være jpg eller skal der være support for alle typer af billeder?

Ovennævnte script stiller krav til klientens browser om, at den er god til at gennemskue enc_type, idet der ikke kommer file extension på, såsom .jpg eller .gif - men jeg anbefaler under alle omstændigheder at du vælger kun at understøtte .jpg. Det er nemlig et kendt format, og umiddelbart det, der kan give det bedste resultat på internettet. GIF understøtter kun 256 farver, og BMP/TIFF/etc fylder for meget. Vend tilbage med lidt mere - så kan vi snakke om det.
Jeg vil IKKE sætte min kode ind i din kode. Det må du selv gøre. Jeg vil derimod gerne lave en funktion til at håndtere dit krav - når jeg ved præcis hvad det er ;-)
Avatar billede kimox Nybegynder
10. november 2003 - 16:13 #6
Hehe det synes jeg lyder helt hundrede procent fair !..

Ja den skal nemlig kun understøtte jpeg, jpg.

min func.php fil ser sådan ud:

<?php
mysql_connect("HOST", "BRUGER", "KODE");
mysql_select_db("DB");

//Indsættelsen
$ip = $REMOTE_ADDR;
$host = gethostbyaddr($ip);
$time= explode(" ", microtime());
$userusec =(double)$time[0];
$usersec =(double)$time[1];
$select = mysql_query("select * from online where ip like '$ip'");
mysql_query("delete from online where date < $usersec -1500"); 
if(!mysql_num_rows($select)){
    mysql_query("insert into online (id,ip,host,date) values ('','$ip','$host','$usersec')");
}
mysql_query("update online set side = '$PHP_SELF' where ip = '$ip'");
print "<table>";

?>

Det er egentlig ikke noget med hvad der kommer efter indsættelse.. det er bare den øverste del med at connecte den bruger :)
Avatar billede kimox Nybegynder
10. november 2003 - 16:15 #7
min sql ser sådan ud:

CREATE TABLE users (
  id tinyint(4) NOT NULL auto_increment,
  navn varchar(50) NOT NULL default '',
  pass tinytext NOT NULL,
  realname varchar(80) NOT NULL default '',
  age tinytext NOT NULL,
  level tinytext NOT NULL,
  email varchar(255) default NULL,
  icq varchar(20) NOT NULL default '',
  msn varchar(200) NOT NULL default '',
  fri text NOT NULL,
  hp varchar(255) NOT NULL default '',
  pic text NOT NULL,
  by varchar(255) NOT NULL default '',
  ip text NOT NULL,
  dato varchar(20) default NULL,
  PRIMARY KEY  (id),
  UNIQUE KEY navn (navn)
) TYPE=MyISAM;

håber det er nok info.. du må hellere end gerne skrive her, eller på icq 77962511
Avatar billede rackbox Nybegynder
10. november 2003 - 23:06 #8
Jeg holder mig til at skrive her - det gør det også nemmere for andre at følge med i udviklingen ;-)

din query skal i så fald se således ud:
$query = "insert into users  values ('', ...alle dine værdier..., ".$encrypted_filename.", ...resten af dine værdier...)"
Men det havde du vel gættet. Hvor præcist er det, at dit problem er? Prøv at fremstille en simpel case, som du nemt kan flytte over til din egen kode, eks.

<html>
<body>
<form enctype='multipart/form-data' name='postform' action="senddata.php">
<input type=file name=profilpic>
navn: <input type=text name=navn><br>
pass: <input type=password name=pass><br>
og så videre...

<input type=submit>
</form>
</body>
</html>

senddata.php
<?php
$destination = "billeder/";
$filename = $_FILES['postform']['name'];
$encrypted_name=md5($filename);
move_uploaded_files($_FILES['profilpic']['tmp_name'],
$destination.$encrypted_name);
$query = "insert into users values('', ".$encrypted_name; //+alle dine værdier
mysql_query($query);


Fortæl mig mere præcist, hvor det fejler for dig, så kan jeg bedre hjælpe dig. Jeg vil IKKE sætte mig ind i flere timers kode. Men hvis du kan forsimple forklaringen af dine krav, så er jeg din mand ;-)
Avatar billede kimox Nybegynder
12. november 2003 - 20:18 #9
den siger fejl her:
move_uploaded_files($_FILES['profilpic']['tmp_name'];

min side ser sådan ud nu:
<?php

require("db.php");

if(isset($_POST['navn']) && isset($_POST['fri'])) {

    $tid = date("d/m Y - H:i");

$navn = mysql_escape_string(htmlspecialchars(stripslashes($_POST['navn'])));

    $_POST['fri'] = addslashes($_POST['fri']);

    $_POST['email'] = addslashes($_POST['email']);

$hp = $_POST['hp'];
$pass = $_POST['pass'];
$pass2 = $_POST['pass2'];

unset($navnefejl);
$checknavn = @mysql_query("SELECT navn FROM users WHERE navn='$navn'");
if (@mysql_num_rows($checknavn)>0) {
$navnefejl = "<br><b><font color=\"#990000\">Fejl. Navnet er taget</font></b><br>"; }
else {

unset($emailfejl);
$checkemail = @mysql_query("SELECT email FROM users WHERE email='$_POST[email]'");
if (@mysql_num_rows($checkemail)>0) {
$emailfejl = "<br><font color=\"#990000\">Fejl. Der kan ikke oprettes 2 brugere med samme mail!</font><br>"; }
else {

if (!$pass || !$pass2 || $pass!=$pass2) {
$passfejl = "<br><font color=\"#990000\">Fejl. Kodeordet er ikke gentaget korrekt</font><br>"; }
else {

if (!ereg("^http://", $hp)) { $hp="http://".$hp; }

$destination = "img/";
$filename = $_FILES['postform']['name'];
$encrypted_name=md5($filename);
move_uploaded_files($_FILES['profilpic']['tmp_name'];
$destination.$encrypted_name);
    mysql_query("INSERT INTO users (navn, fri, email, ip, dato, pass, realname, age, `by`, icq, msn, encrypted_name, pic, hp) VALUES('$navn', '$_POST[fri]', '$_POST[email]', '$_SERVER[REMOTE_ADDR]', '$tid', MD5('$pass'), '$_POST[realname]', '$_POST[age]', '$_POST[by]', '$_POST[icq]', '$_POST[msn]', '$_POST[pic]', '$_POST[encrypted_name]', '$hp')") or die(mysql_error());
}
}
}

}
?>


                        <form enctype='multipart/form-data' method=post name='postform'  action="<?php echo $_SERVER['PHP_SELF']; ?>">

                          <div align="center">

                            <table border="0" cellspacing="0" cellpadding="0" width="380" height="126" class="tekst_normal">
                              <tr>
                                <td width=137><b>Brugernavn* : </b></td>
                                <td colspan="2">
                                  <input type="text" size="16" class="box" name="navn">
                                  <?php if ($navnefejl) { echo $navnefejl; } ?>
                                </td>
                              </tr>
                              <tr>
                                <td width="137" height="27"><b>Password* : </b></td>
                                <td height="27" colspan="2">
                                  <input type="password" size="16" class="box" name="pass">
                                  <b></b></td>
                              </tr>
                              <tr>
                                <td width="137" height="27"><b>Gentag password*
                                  : </b></td>
                                <td height="27" colspan="2">
                                  <input type="password" size="16" class="box" name="pass2">
                                  <?php if ($passfejl) { echo $passfejl; } ?>
                                  <b></b></td>
                              </tr>
                              <tr>
                                <td width="137"><b>Navn:</b></td>
                                <td colspan="2">
                                  <input type="text" size="16" class="box" name="realname">
                                  <b></b></td>
                              </tr>
                              <tr>
                                <td width="137"><b>Alder:</b></td>
                                <td colspan="2">
                                  <input type="text" size="16" class="box" name="age">
                                  <b></b></td>
                              </tr>
                              <tr>
                                <td width="137"><b>By:</b></td>
                                <td colspan="2">
                                  <input type="text" size="16" class="box" name="by">
                                  <b></b></td>
                              </tr>
                              <tr>
                                <td width="137"><b>Email* :</b></td>
                                <td colspan="2">
                                  <input type="text" size="16" class="box" name="email">
                                  <b>
                                  <?php if ($emailfejl) { echo $emailfejl; } ?>
                                  </b></td>
                              </tr>
                              <tr>
                                <td width="137" height="13"><b>ICQ:</b></td>
                                <td height="13" colspan="2"> <b>
                                  <input type="text" size="16" class="box" name="icq">
                                  </b></td>
                              </tr>
                              <tr>
                                <td width="137"><b>MSN:</b></td>
                                <td colspan="2">
                                  <input type="text" size="16" class="box" name="msn">
                                </td>
                              </tr>
                              <tr>
                                <td width="137"><b>evt. url p&aring; billede:</b></td>
                                <td colspan="2">
                                  <p>
                                    <input type="text" size="16" class="box" name="pic">
                                    <input type=file name=profilpic>
                                  </p>
                                  </td>
                              </tr>
                              <tr>
                                <td width="137"><b>Hjemmeside :</b></td>
                                <td width="155">
                                  <input type="text" size="20" class="box" name="hp" value="http://">
                                </td>
                                <td width="88"><b><i>Husk http://</i></b></td>
                              </tr>
                              <tr>
                                <td width="137"><b>Tekst :</b></td>
                                <td colspan="2">
                                  <textarea cols="36" class="box" rows="5" name="fri"></textarea>
                                </td>
                              </tr>
                            </table>
                            <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('opret','','../knap/k/opret_on.gif',1)"><input type=image src=../knap/k/opret.gif width=45 height=29 value="submit" name="opret">
                            </a>
                            <a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('reset','','../knap/k/reset_on.gif',1)" onclick="document.forms[0].reset();return false"><img name="reset" border="0" src="../knap/k/reset.gif" width="45" height="29"></a></div>
                        </form>
Avatar billede rackbox Nybegynder
13. november 2003 - 17:58 #10
Lad være med at poste så meget kode.. Kun det relevante...

Hvilken fejl fortæller den dig? Har du husket at sætte enc-type i din form? For uden den kan du ikke uploade... Plus tjek lige om firewall er sat til at stoppe uploadtrafik..
Avatar billede kimox Nybegynder
14. november 2003 - 19:34 #11
ja det er slået til: <form enctype='multipart/form-data' method=post name='postform'  action="<?php echo $_SERVER['PHP_SELF']; ?>">

og der er ikke firewall på fordi jeg har andre steder på min server hvor jeg uploader. Og mappen er selvf. cdmodet 777 :)

og den kommer med fejlen her:
move_uploaded_files($_FILES['profilpic']['tmp_name'];

(vix-mix.dk/site/opret5.php)
Avatar billede rackbox Nybegynder
14. november 2003 - 20:05 #12
Men den må da osse skrive en eller form for fejlkode/beskrivelse, hvis jeg da kender PHP ret...
Avatar billede kimox Nybegynder
17. november 2003 - 09:07 #13
JaJa.. den skriver

Parse error: parse error in /usr/www/vix-mix_dk/public_html/site/opret5.php on line 577
Avatar billede rackbox Nybegynder
17. november 2003 - 17:58 #14
Du mangler øjensynligt en parantes slut.. Din syntax skal være

move_uploaded_files($_FILES['profilpic']['tmp_name'], "der/hvor/du/vil/gemme/filen/filnavn");

eller

move_uploaded_files($_FILES['profilpic']['tmp_name'], "images/".$_FILES['profilpic']['name']);
Avatar billede kimox Nybegynder
19. november 2003 - 20:21 #15
Der er ingen af dem der virker.. den siger stadig fejl i den linje ://

det ser sådan ud:
$destination = "img/";
$filename = $_FILES['postform']['name'];
$encrypted_name=md5($filename);
move_uploaded_files($_FILES['profilpic']['tmp_name'], "img/".$_FILES['profilpic']['name']);
$destination.$encrypted_name);
    mysql_query("INSERT INTO users (navn, fri, email, ip, dato, pass, realname, age, `by`, icq, msn, encrypted_name, pic, hp) VALUES('$navn', '$_POST[fri]', '$_POST[email]', '$_SERVER[REMOTE_ADDR]', '$tid', MD5('$pass'), '$_POST[realname]', '$_POST[age]', '$_POST[by]', '$_POST[icq]', '$_POST[msn]', '$_POST[pic]', '$_POST[encrypted_name]', '$hp')") or die(mysql_error());
}
}
}

}
?>
Avatar billede kimox Nybegynder
19. november 2003 - 20:25 #16
undskyld.. den siger fejl her: $destination.$encrypted_name);
Avatar billede kimox Nybegynder
19. april 2004 - 16:07 #17
-lukket-
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