carl_xMedlem sedan mars 20001 858 inlägg Har ett script i PHP som jag använder för att ladda upp bilder. Problemet är att om jag använder en bild som submit-knapp så fungerar det inte. Vad är problemet?
<input type="image" name="submit" src="../images/spara.gif" style="width: 43px; height: 14px;" />
GuffaMedlem sedan juni 2004533 inlägg Ifall du kollar efter ett värde i Request.Form("submit") så fungerar det inte om du använder type="image". Däremot så kan du kolla efter "submit.x" eller "submit.y".
carl_xMedlem sedan mars 20001 858 inlägg Förslag på hur det skulle kunna se ut då?
AxelMedlem sedan aug. 20004 638 inlägg Eller skicka med en ny variabel med ett hidden-fält.
carl_xMedlem sedan mars 20001 858 inlägg Och hur löser man det på bästa sätt?
GuffaMedlem sedan juni 2004533 inlägg
carl_x skrev:
Förslag på hur det skulle kunna se ut då?
Det beror ju alldeles på hur koden ser ut som tar emot formuläret.
carl_xMedlem sedan mars 20001 858 inlägg
Guffa skrev:
Det beror ju alldeles på hur koden ser ut som tar emot formuläret.
<form name="ladda" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<br />
Lägg till i befintlig kategori:<br /><?php echo $parties; ?>
<br />
Skapa ny kategori:<br/><input type="text" name="newParty" class="mataIn" />
<br />
Kommentar till bilden:<br/><input type="text" name="comment" class="mataIn" />
<br />
Bild som ska laddas upp:<br /><input type="file" name="picture" class="mataIn" />
<br />
<input type="image" name="submit" src="../images/spara.gif" style="width: 43px; height: 14px;" />
</form>
GuffaMedlem sedan juni 2004533 inlägg Är det där all kod? Då är det ju inte så konstigt att det inte fungerar. Du har ju ingenting som sparar filen.
carl_xMedlem sedan mars 20001 858 inlägg
Guffa skrev:
Är det där all kod? Då är det ju inte så konstigt att det inte fungerar. Du har ju ingenting som sparar filen.
<?php
require("template.php");
require("../functions.php");
function rezise($path, $name)
{
global $imageMaxW, $imageMaxH;
$fullpath = $path . '/' . $name;
$info = getimagesize($fullpath);
if($info[0] < $imageMaxW && $info[1] < $imageMaxH)
{
copy($fullpath, $path . '/small-' . $name);
}
else
{
list($newW, $newH) = getNewSize($info[0], $info[1], $imageMaxW, $imageMaxH);
switch($info[2])
{
case 1: //Gif
$img = imagecreatefromgif($fullpath);
$outfcn = "imagegif";
break;
case 2: //Jpeg
$img = imagecreatefromjpeg($fullpath);
$outfcn = "imagejpeg";
break;
case 3: //Png
$img = imagecreatefrompng($fullpath);
$outfcn = "imagepng";
break;
default:
return -1;
}
$img2 = imagecreatetruecolor($newW, $newH);
imagecopyresampled($img2, $img, 0, 0, 0, 0, $newW, $newH, $info[0], $info[1]);
$outfcn($img2, $path . '/small-' . $name);
imagedestroy($img);
imagedestroy($img2);
}
}
if(checkP("submit") && checkF("picture"))
{
if(checkP("comment"))
$comment = $_POST['comment'];
else
$comment = "";
if(checkP("party") && $_POST['party'] != "0")
$pId = intval($_POST['party']);
if(checkP("newParty"))
{
query("INSERT INTO parties VALUES(0, '" . strip(htmlentities($_POST['newParty'])) . "')");
$pId = insertid();
}
else
{
header("Location: " . $_SERVER['PHP_SELF'] . "?error=party");
die();
}
$path = $picPath . $pId;
// echo $path;
if(!file_exists($path))
{
// echo "Fan!";
mkdir($path, 0777);
}
$info = getimagesize($_FILES['picture']['tmp_name']);
if($info[2] == 0 || $info[2] == 1 || $info[2] == 2)
{
$sql = "INSERT INTO pictures (party, name, comment) VALUES('" . $pId . "', '" . strip($_FILES['picture']['name']) . "', '" . strip(htmlentities($comment)) . "')";
query($sql);
$name = insertid() . strtolower(strrchr($_FILES['picture']['name'], '.'));
$pic = $path . '/'. $name;
move_uploaded_file($_FILES['picture']['tmp_name'], $pic);
rezise($path, $name);
header("Location: " . $_SERVER['PHP_SELF'] . "?uploaded=true");
die();
}
else
{
header("Location: " . $_SERVER['PHP_SELF'] . "?error=format");
die();
}
}
echo top();
?>
<td class="Text">
<!-- Sidan innehåll börjar här -->
<b>Lägg till bilder</b>
<br /><br />
Scriptet genererar två bilder; en liten thumbnail på max 100x74 pixlar, och en lite större bild med en maxhöjd på 500 pixlar och en maxbredd på 678 pixlar.
<br /><br />
<?php
if(checkG("uploaded") && $_GET['uploaded'] == 'true')
echo "Bilden är nu inlagd";
else if(checkG("error"))
{
if($_GET['error'] == 'party')
{
echo "Något gick fel.<br /><br />";
}
else if($_GET['error'] == 'format')
{
echo "Felaktigt bildformat. Bilden måste vara antingen gif, jpg eller png<br /><br />";
}
}
$sql = "SELECT * FROM parties ORDER BY name DESC";
$res = query($sql);
$parties = '<select class="mataIn" style="width: 350px;" name="party"><option value="0">Ny kategori</option>';
$sel = false;
while($row = fetch($res))
{
$parties .= '<option ' . (!$sel ? 'selected="selected"' : '') . ' value="' . $row->partyId . '">' .unstrip($row->name) . '</option>';
$sel = true;
}
$parties .= '</select>';
?>
<form name="addPicture" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<br />
Lägg till i befintlig kategori:<br /><?php echo $parties; ?>
<br /><br />
Skapa ny kategori: (Max 100 tecken)<br/><input type="text" name="newParty" class="mataIn" style="width: 350px;" />
<br /><br />
Kommentar till bilden: (Frivilligt, max 65535 tecken)<br/><input type="text" name="comment" class="mataIn" style="width: 350px;" />
<br /><br />
Bild som ska laddas upp: (Endast JPG, PNG eller GIF)<br /><input type="file" name="picture" class="mataIn" style="width: 350px;" />
<br /><br />
<input type="submit" name="submit" value="Ladda upp bild">
<!--<input type="image" name="submit" src="../images/spara.gif" style="width: 43px; height: 14px;" />-->
</form>
</td>
<?php
echo bottom();
?>
GuffaMedlem sedan juni 2004533 inlägg Du kanske skulle flytta tråden till PHP?
Jag kan ingen PHP, men jag kan ju gissa...
Kontrollerar checkP("submit") ifall du har ett värde ifrån formuläret med nyckeln "submit"? I så fall är det ju det som inte fungerar.