webForumDet fria alternativet

Varför laddar mitt formulär inte upp min bild?

PHP

13 svar · 589 visningar · startad av jacobrudenstam

Medlem sedan mars 20098 inlägg
Frågan#1

När jag trycker submit så skickas all textdata i formuläret till min db precis som det ska. Men borde inte denna phpkod skicka filen till servern vid submit?!

Liten bit av koden:

<?php if ($submit) {
$tmpfil=$HTTP_POST_FILES["fil"]["tmp_name"];
print "$tmpfil <br>";
$fil=$HTTP_POST_FILES["fil"]["name"];
print "$fil";
move_uploaded_file("$tmpfil", "/images/$fil");
} ?>
<form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="form1" id="form1">
<table width="200" border="0">
<tr>
<td align="right" valign="top" scope="col"><p>Rubrik:</p></td>
<th scope="col"><label>
<input name="TITLE" type="text" id="TITLE" />
</label></th>
</tr>
<tr>
<td align="right" valign="top"><p>Text:</p></td>
<td><label>
<textarea name="TEXT" rows="4" id="TEXT"></textarea>
</label></td>
</tr>
<tr>
<td align="right" valign="top"><p>Bild:</p></td>
<td><label>
<input name="fil" type="file"/>
</label></td>

inte riktigt hela formuläret med här men det kanske räcker.

Medlem sedan juni 20031 837 inlägg
#2

Börja med att lägg din kod inom [php ] [/php ] taggar (utan mellanrum i taggen)

var kommer $submit ifrån?
Vad skriver din kod ut? du har ju

print "$tmpfil <br>";

eller

print "$fil";

Lägg till lite mer vid utskriften så att du vet vilken som är vilken av utskrifterna.

Medlem sedan juni 20006 031 inlägg
#3

Ta bort fnuttarna runt $tmpfil
move_uploaded_file($tmpfil, "/images/$fil");

/edit
Sen bör du använda $_FILES istället för $HTTP_POST_FILES

Medlem sedan mars 20098 inlägg
#4

Såhär ser hela formuläret ut, hur kan jag se vad koden skriver ut?

        <?php if ($submit) {
		$tmpfil=$HTTP_POST_FILES["fil"]["tmp_name"];
		print "$tmpfil <br>";
		$fil=$HTTP_POST_FILES["fil"]["name"];
		print "$fil";
		move_uploaded_file("$tmpfil", "/images/$fil");
		} ?>
      <form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="form1" id="form1">
        <table width="200" border="0">
          <tr>
            <td align="right" valign="top" scope="col"><p>Rubrik:</p></td>
            <th scope="col"><label>
              <input name="TITLE" type="text" id="TITLE" />
            </label></th>
          </tr>
          <tr>
            <td align="right" valign="top"><p>Text:</p></td>
            <td><label>
              <textarea name="TEXT" rows="4" id="TEXT"></textarea>
            </label></td>
          </tr>
          <tr>
            <td align="right" valign="top"><p>Bild:</p></td>
            <td><label>
              <input name="fil" type="file"/>
            </label></td>
          </tr>
          <tr>
            <td><input name="IMAGE" type="hidden" id="IMAGE" value="<img src:"<?php echo "/images/$fil"?>" /></td>
            <td><label>
              <input type="submit" name="SUBMIT" id="SUBMIT" value="Skicka" />
            </label></td>
          </tr>
        </table>
        <input type="hidden" name="MM_insert" value="form1" />
      </form>
Medlem sedan juni 20006 031 inlägg
#5

Var deklarerar du variablerna $submit och $editFormAction?
Vad innehåller dom?

Medlem sedan mars 20098 inlägg
#6

$editFormAction deklarerar all text info till min db (detta fungerar som det ska) och $submit deklarerar att bilden laddas upp när jag skickar formuläret, men den delen fung. som sagt var inte.

Medlem sedan juni 20006 031 inlägg
#7

Ok, eftersom jag inte vet hur du deklarerar variabeln $submit som inte fungerar så gör vi om din if sats.

Ändra raden:
<?php if ($submit) {
till:
<?php if (isset($_POST['SUBMIT'])) {

Medlem sedan mars 20098 inlägg
#8

Nu får jag i webbläsaren följande felmedd:
/tmp/phpmGIupk
PSP.jpg
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to access /images/PSP.jpg in /customers/jacobrudenstam.se/jacobrudenstam.se/httpd.www/ny_nyhet.php on line 124

Medlem sedan mars 200921 inlägg
#9

Du har inte skrivrättigheter i den mappen. Ändra till CHMOD 755 t.ex.

Medlem sedan mars 20098 inlägg
#10

jag har ställt rättigheterna på mappen till 777

Medlem sedan mars 20098 inlägg
#11

Nu fungerar det! felmed berodde på att jag hade skrivit

move_uploaded_file("$tmpfil", "/images/$fil");

istället för

move_uploaded_file("$tmpfil", "images/$fil");

det rackarns backslashet!

och min variabel $submit verkade inte fungera så det lirar när jag gjorde som bäste herr Pedda sa och körde

<?php if (isset($_POST['SUBMIT'])) {
Medlem sedan mars 20098 inlägg
#12

Stort tack Pedda!

Medlem sedan juni 20031 837 inlägg
#13

Glöm inte att markera svaret som löste din fråga.

Medlem sedan mars 200921 inlägg
#14

jacobrudenstam skrev:

jag har ställt rättigheterna på mappen till 777

Jasså? §e

Jobbigt allt hålla rätt på sökvägarna ibland!

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)