ik heb een pagina waarbij ik products toevoeg aan een database. als ik een product toevoeg, kan ik daar ook een logo voor uploaden.
products worde in database gezet en het logo wordt perfect geupload
nu moet ik deze products ook af en toe kunnen wijzigen.
het kan zelfs zijn da er een compleet nieuw logo moet worden geupload.
het probleem is niet dat het logo niet wordt geupload maar eerder dat de $_FILES['userfile'] ni werkt. dus hij krijgt het in product-edit3.php ni aan.
mijn form
mijn upload paginaPHP-code:<form action="?q=product-edit3" method="post">
<?php
$sql = "SELECT * FROM products WHERE pID='$pID'";
$result = mysql_query($sql);
while ($record = mysql_fetch_object($result)) {
$name = htmlentities($record->name);
$sdesc = htmlentities($record->sdesc);
$ldesc = htmlentities($record->ldesc);
$logo = $record->logo;
?>
<input type="hidden" name="pID" value="<?php echo "$record->pID";?>" />
<b>productnaam:</b> <br/>
<input type="text" name="pname" size="50" maxlength="255" value="<?php echo "$name";?>" />
<p></p>
<b>kleine omschrijving:</b><br/>
<textarea id="psdesc" name="psdesc" rows="5" cols="80" onfocus="getTarget('psdesc')" onselect="storeCursor(this)" onkeyup="storeCursor(this)" onclick="storeCursor(this)"><?php echo "$sdesc";?></textarea>
<p></p>
<b>omschrijving:</b><br/>
<textarea id="pldesc" name="pldesc" rows="20" cols="80" onfocus="getTarget('pldesc')" onselect="storeCursor(this)" onkeyup="storeCursor(this)" onclick="storeCursor(this)"><?php echo "$ldesc";?></textarea>
<p></p>
<?php
if ($logo) {
echo "<b>huidig logo</b><br />
<img src=\"" . $uploadrel . $logo . "\" border=\"1\" />
<p></p>";
}
?>
<b>logo uploaden</b><br /><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; color: #666666;">alleen .gif, .jpg en .png toegelaten<br />
bestand mag niet groter zijn dan 300kb</div><br />
<input type="file" name="userfile" size="50" />
<p></p>
<input type="submit" name="submit" value="product bewerken!" />
</form>
dit is ook ongeveer (mits het uit de database halen stuff) hetzelfde als mijn gewoon upload form bij products-add.php en deze werkt wel perfect... ik zie echt de fout ni...PHP-code:<h3>product bewerkt</h3>
<?php
ob_start();
session_start();
if (isset($_SESSION['user_id']))
{
function slash($input) {
if (get_magic_quotes_gpc()) {
return $input;
} else {
return addslashes($input);
}
}
$max_size = 307200;
if (isset($_FILES['userfile'])) {
$query = mysql_query("SELECT * FROM products WHERE pID='$pID'");
while($row = mysql_fetch_array( $query )) {
if ($row["logo"]) {
$delete = $row["logo"];
}
}
unlink($uploadpath . $delete);
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
if ($_FILES['userfile']['size']>$max_size) {
echo "het bestand is te groot<br>\n";
exit;
}
if (($_FILES['userfile']['type']=="image/gif") || ($_FILES['userfile']['type']=="image/pjpeg") || ($_FILES['userfile']['type']=="image/jpeg") || ($_FILES['userfile']['type']=="image/png")) {
if ($_FILES['userfile']['type']=="image/gif") {
$ext = "gif";
}
elseif ($_FILES['userfile']['type']=="image/pjpeg") {
$ext = "jpg";
}
elseif ($_FILES['userfile']['type']=="image/jpeg") {
$ext = "jpeg";
}
elseif ($_FILES['userfile']['type']=="image/png") {
$ext = "png";
}
else {
echo "verkeerd bestandstype<br>\n";
exit;
}
$pname = slash($pname);
$plogo = preg_replace("/[^a-zA-Z0-9s]/", "", $pname);
$upload = $plogo . '-logo.' . $ext;
$res = copy($_FILES['userfile']['tmp_name'], $uploadpath . $upload);
if (!$res) {
echo "upload mislukt!<br>\n";
exit;
}
else {
echo "upload gelukt<br>\n";
}
}
else {
echo "verkeerd bestandstype<br>\n";
exit;
}
}
}
$pname = slash($pname);
$psdesc = slash($psdesc);
$pldesc = slash($pldesc);
$upload = slash($upload);
mysql_query ("UPDATE products SET name='$pname', sdesc='$psdesc', ldesc='$pldesc', logo='$upload' WHERE pID='$pID'");
?>
product <b><? echo "$pname";?></b> is bewerkt.<p></p>
<p> </p>
<?php
} else {
echo "Niet ingelogd
klik <a href=\"?q=login\"> om door te gaan</a>";
}
ob_end_flush();
?>
ik heb al geprobeert om is een extra tekstveld toe te voege en die te late ophale in products-edit3.php en da werkt wel.
gelieve geen commentaar te geven op de rest van de code die mss crap lijkt, maar dit is pure test code.


LinkBack URL
About LinkBacks
Met citaat reageren

