qualitum logo
Ladda upp en bild - Problem

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
ermusik



Medlem i: 3500 dagar

Status: Offline



#724727
Inlägg Skrivet: 2012-07-24 16:12      Ämne: Ladda upp en bild - Problem Citera

I samma formulär som jag använder när jag skriver till tabellerna i databasen hade jag nu tänkt att samtidigt ladda upp en bild till en mapp som heter bilder.

Bilden är tänkt att tillhöra det specifika id som posten får.
Och då hade jag tänkt att spara bildnamnet i databasen
KOD:
1:
   $_FILES['bild']['name'] = '';


Hur man sen visar bilden har jag inte kommit underfund med ännu, så jag tänkte med att jag börjar med att få in bilden i mappen, vilket jag har gjort tusen gånger. Men helt plötsligt så får jag bara inte rätt på det.

Ser någon snäll person vad felet är :)
Jag har en mapp som heter bilder och den har fått alla rättigheter

form.php
KOD:
1:
<div align="left">Skriv in evenemanget<br>
2:
 
3:
<div align="left">
4:
 
5:
 
6:
<form action="write.php" method="post" enctype="multipart/form-data" class="padding">
7:
<input type="hidden" name="MAX_FILE_SIZE" value="3000">
8:
<div align="left">
9:
 
10:
 
11:
 
12:
<b><FONT FACE="Arial" SIZE=1 COLOR="#003366">Tid <font color="#FF0000">(ex. 13:00)</font>:</b><br>
13:
 
14:
<input type="text" name="tid" style="width: 160px;"><br>
15:
 
16:
<b><FONT FACE="Arial" SIZE=1>Datum <font color="#FF0000">(Y-M-D)</font>:</b><br>
17:
 
18:
<input type="text" name="datum" style="width: 160px;"><br>
19:
 
20:
<b><FONT FACE="Arial" SIZE=1>Var:</b><br>
21:
 
22:
<input type="text" name="plats" style="width: 160px;"><br>
23:
 
24:
<b><FONT FACE="Arial" SIZE=1>Evenemang:</b><br>
25:
 
26:
<input type="text" name="evenemang" style="width: 160px;"><br>
27:
 
28:
<b><FONT FACE="Arial" SIZE=1>Slutdatum <font color="#FF0000">(Y-M-D)</font>:</b><br>
29:
 
30:
<input type="text" name="datumslut" style="width: 160px;"><br>
31:
 
32:
<b><FONT FACE="Arial" SIZE=1>Detaljerad beskrivning:</b><br>
33:
<textarea name="beskrivning" cols="35" rows="6"></textarea><br>
34:
 
35:
 
36:
<br>
37:
<input type="file" name="bild">&nbsp;<input type="submit" name="klar" value="Skicka">
38:
</form>


write.php
KOD:
1:
<?php
2:
require 'conn.php';
3:
 
4:
 
5:
 
6:
 
7:
if(isset($_POST['klar']))
8:
{
9:
 
10:
// Array med tillåtna filtyper
11:
$allowed_types = array('images/gif', 'images/jpeg', 'images/pjpeg', 'images/png', 'images/x-png');
12:
 
13:
// Kolla om det finns uppladdad fil, och att den är av rätt fil typ
14:
// Om allt är rätt ladda upp filen
15:
if (is_uploaded_file($_FILES['bild']['tmp_name']) && in_array($_FILES['bild']['type'], $allowed_types)) {
16:
 
17:
    // Tag bort ogiltliga tecken från filnamn samt ändra till små bokstäver
18:
    $_FILES['bild']['name'] = strtolower($_FILES['bild']['name']);
19:
    $search = array('å', 'ä', 'ö', ' ');
20:
    $replace = array('a', 'a', 'o', '_');
21:
    $_FILES['bild']['name'] = str_replace($search, $replace, $_FILES['bild']['name']);
22:
    $_FILES['bild']['name'] = preg_replace("/[^a-z0-9_.-]/", "", $_FILES['bild']['name']);
23:
 
24:
    // För över filen till sin destination
25:
    move_uploadad_file($_FILES['bild']['tmp_name'], 'bilder/'.$_FILES['bild']['name']);
26:
 
27:
} else {
28:
 
29:
    $_FILES['bild']['name'] = '';
30:
 
31:
}
32:
 
33:
 
34:
   $id =  mysql_real_escape_string($_POST['id']);
35:
   $tid =  mysql_real_escape_string($_POST['tid']);
36:
   $datum =  mysql_real_escape_string($_POST['datum']);
37:
   $plats =  mysql_real_escape_string($_POST['plats']); 
38:
   $evenemang =  mysql_real_escape_string($_POST['evenemang']);
39:
   $datumslut =  mysql_real_escape_string($_POST['datumslut']);
40:
   $beskrivning =  mysql_real_escape_string($_POST['beskrivning']);
41:
   $sql = mysql_query("INSERT INTO evenemang (id,tid,datum,plats,evenemang,datumslut,beskrivning) VALUES ('$id','$tid','$datum','$plats','$evenemang','$datumslut','$beskrivning')");
42:
   header("Location: form.php");
43:
 
44:
 
45:
 
46:
}
47:
 
48:
 
49:
?>
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
f0rce



Medlem i: 1206 dagar

Status: Offline



#724729
Inlägg Skrivet: 2012-07-24 16:19      Ämne: Citera

Vad är det som händer?
får du något error?
lägg in or die(mysql_error());
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
ermusik



Medlem i: 3500 dagar

Status: Offline



#724730
Inlägg Skrivet: 2012-07-24 16:25      Ämne: Citera

All information som jag skriver in via formuläret läggs in och visas som det skall. Tja förutom bildnamnet (Men, så långt har jag inte kommit än)

Utan problemet är att jag inte får in bilden som jag försöker ladda upp i mappen.
--------------------

Nä usch och fy....
Det här var på tok för komplicerat för mig, så jag ger upp denna tanke :)

Tack iaf!
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 3919 dagar
Från: Järfälla
Status: Offline



#724733
Inlägg Skrivet: 2012-07-24 17:52      Ämne: Citera

"move_uploadad_file" ??
Har du inte felrapportering aktivt på din maskin tycker jag du ska ordna det.
 

_________________
Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
ermusik



Medlem i: 3500 dagar

Status: Offline



#724735
Inlägg Skrivet: 2012-07-24 18:05      Ämne: Citera

Jag vet faktiskt inte :)
Mitt webbhotell kan man ju hoppas på att dom har det aktivt, men jag har inte fått några felmeddelande.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 3919 dagar
Från: Järfälla
Status: Offline



#724737
Inlägg Skrivet: 2012-07-24 18:13      Ämne: Citera

ermusik skrev:
Jag vet faktiskt inte Smile
Mitt webbhotell kan man ju hoppas på att dom har det aktivt, men jag har inte fått några felmeddelande.
Nej, man hoppas på det rakt motsatta. Webbhotell ska ha felrapportering avstängd som standard, det är en säkerhetsfråga. Produktionssajter ska inte läcka information i onödan.

Kolla med webbhotellet hur du aktiverar felrapportering (olika sätt för Apachemoduls-PHP resp CGI-PHP).
Du kan inte använda error_reporting(E_ALL) i ditt script ifall du letar syntaxfel.
 

_________________
Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
ermusik



Medlem i: 3500 dagar

Status: Offline



#724742
Inlägg Skrivet: 2012-07-24 18:36      Ämne: Citera

Aha :)
Det visste jag inte!
Fast, det är mycket som jag inte vet om detta iof :P
Skall göra det faktiskt!

Fast, just detta projektet ger jag nog upp tror jag.
Det blev lite väl komplicerat för mig med allt
* Ladda upp bilder
* få in bildnamnet till tabellen i databasen
* hämta rätt bild, till rätt id

i teorin förstod jag hur man skulle göra, men att göra det i praktiken blev det lite värre med :)
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Wedge
Administratör



Medlem i: 3919 dagar
Från: Järfälla
Status: Offline



#724743
Inlägget är accepterad som det rätta svaret Skrivet: 2012-07-24 18:40      Ämne: Citera

Räckte det inte att stava "move_uploaded_file" rätt?
 

_________________
Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
ermusik



Medlem i: 3500 dagar

Status: Offline



#724744
Inlägget är accepterad som det rätta svaret Skrivet: 2012-07-24 18:47      Ämne: Citera

Hahaha det har jag inte sett faktiskt :)
Får testa detta :)

Okej lite nya krafter fick jag tydligen :)

Nu har jag kommit så här långt:

Jag har lyckats ladda upp filen till mappen

bildens namn lagras i tabellen i databasen

KOD:
1:
<?php
2:
require 'conn.php';
3:
 
4:
 
5:
 
6:
if(isset($_POST['klar']))
7:
{
8:
 
9:
if (is_uploaded_file($_FILES['bild']['tmp_name'])) {
10:
 
11:
   // Katalog där du sparar filen/bilden
12:
   $path = './bilder/';
13:
   
14:
   /*
15:
      Lite kontroller här så filnamnet inte innehåller mellanslag,
16:
      å, ä, ö eller liknande. Ändra om så är fallet.
17:
   */
18:
   
19:
   // Spara filen till sin destination
20:
   move_uploaded_file($_FILES['bild']['tmp_name'], $path.$_FILES['bild']['name']);
21:
 
22:
}else {
23:
 
24:
    $_FILES['bild']['name'] = '';
25:
 
26:
}
27:
 
28:
 
29:
   $id =  mysql_real_escape_string($_POST['id']);
30:
   $tid =  mysql_real_escape_string($_POST['tid']);
31:
   $datum =  mysql_real_escape_string($_POST['datum']);
32:
   $plats =  mysql_real_escape_string($_POST['plats']);
33:
   $evenemang =  mysql_real_escape_string($_POST['evenemang']);
34:
   $datumslut =  mysql_real_escape_string($_POST['datumslut']);
35:
   $beskrivning =  mysql_real_escape_string($_POST['beskrivning']);
36:
   $sql = mysql_query("INSERT INTO evenemang (id,tid,datum,plats,evenemang,datumslut,beskrivning,bild) VALUES ('$id','$tid','$datum','$plats','$evenemang','$datumslut','$beskrivning','{$_FILES['bild']['name']}')");
37:
   header("Location: form.php");
38:
 
39:
 
40:
 
41:
}
42:
 
43:
 
44:
?>



Men, hur visar jag nu bilden? Dvs om jag nu kommer att visa den, för räcker det verkligen med bildens namn för att kunna plocka fram och visa den?

Destade så här, men det funkade inte:

KOD:
1:
echo("<img src="bilder/ . $rad["bild"] . ">");


och när jag gjorde så här, så skrevs bara namnet på bilden ut
KOD:
1:
<td><?php echo $bild ?></td>


YES!!!!!! :-D :-D
Jag löste det:

KOD:
1:
<img src="bilder/<?php echo $bild; ?>"
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo