Jag FÖRSÖKER använda följande kod för att ladda upp bilder i en mapp "photos", samt spara lite annan info direkt i databasen.
Allt annat fungerar bra, men bilderna vill INTE sparas i mappen "photos". :(
Ja, mappen är chmoddad till 777.
Troligtvis har jag rört till det ordentligt, men jag hoppas att NÅGON kan hitta felet. ;)
<?php }elseif($_GET['action'] == "add"){?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<form method="post" action="admin.php?action=save" name="photo" enctype="multipart/form-data" onSubmit="return Check();">
<tr>
<td colspan="2" style="border-bottom: 1px solid #2B60CD"><font size="2"><b>Nytt foto</b></font></td>
</tr>
<tr>
<td><b>Titel:</b><br><input type="text" name="titel" style="width:100%"></td>
</tr>
<tr>
<td><b>Foto:</b><br><input type="file" name="bild" style="width:100%"></td>
</tr>
<tr>
<td valign="top"><b>Kort info:</b><br><textarea name="info" style="width:100%" rows="8"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="posta" value="Spara foto"></td>
</tr>
</form>
</table>
<?php }elseif($_GET['action'] == "save"){
if (isset($_FILES['bild']) && is_uploaded_file($_FILES['photos']['tmp_name'])) {
// Kolla filändelse
$image_info = getimagesize($_FILES['photos']['tmp_name']);
switch ($image_info[2]) {
case 1:
$ext = '.gif';
break;
case 2:
$ext = '.jpg';
break;
case 3:
$ext = '.png';
break;
case 5:
$ext = '.psd';
break;
case 6:
$ext = '.bmp';
break;
}
mysql_query("Insert Into photo(titel,info) Values('".$_POST['titel']."','".$_POST['info']."')");
$id = mysql_insert_id();
move_uploaded_file($_FILES['bild']['tmp_name'], "photos/bild_".$id.$ext);
mysql_query("Update photo Set bild='bild_".$id."$ext' Where id='".$id."'");
}else{
mysql_query("Insert Into photo(titel,info) Values('".$_POST['titel']."','".$_POST['info']."')");
}?>
<script>location.href='admin.php';</script>
tydalMedlem sedan juni 20034 013 inlägg 1. Var blir det fel och vad blir det för fel? Lägg till error_reporting(E_ALL); överst.
2. Körs koden som sparar filen? Lägg till echo("Sparade photos/bild_" . $id . $ext); på raden efter move_uploaded_file.
Well.. all info sparas till databasen UTOM fältet "bild", samt bilden blir INTE uppladdad i mappen "photos".
Fick följande error nu...
Notice: Undefined index: action in /home/kunder/*****/*****/nk/filer/admin.php on line 66
Notice: Undefined index: sida in /home/kunder/*****/*****/nk/filer/admin.php on line 70
Detta är hela koden för sid-bläddringen (rad 66 - 76):
<?php if($_GET['action'] == ""){
//############ Sidnavigering start ##################
$antal_inlagg = mysql_num_rows(mysql_query("SELECT * FROM photo"));
$sida = $_GET["sida"];
if (!isset($sida)) { $sida = 1; }
$sidantal = ceil($antal_inlagg/$antal);
$start = ($sida*$antal)-$antal;
//############ Sidnavigering slut ##################
Det "hände" inget med...
echo("Sparade photos/bild_" . $id . $ext);
tydalMedlem sedan juni 20034 013 inlägg
Guldstrand skrev:
Det "hände" inget med...
echo("Sparade photos/bild_" . $id . $ext);
Då körs alltså inte den koden (och då är det ju inte så konstigt att filen inte sparas).
Vi får titta på vad det är som krävs för att den koden ska köras...
Det är detta som inte körs:
elseif($_GET['action'] == "save")
Antingen så är $_GET['action'] inte "save" eller så är det någon if-sats högre upp som är sann i stället.
tydal skrev:
Då körs alltså inte den koden (och då är det ju inte så konstigt att filen inte sparas).
Vi får titta på vad det är som krävs för att den koden ska köras...
Det är detta som inte körs:
elseif($_GET['action'] == "save")
Antingen så är $_GET['action'] inte "save" eller så är det någon if-sats högre upp som är sann i stället.
Hmm, ok... :x
F*n.. jag har redan stirrat mig blind på detta i snart 2 timmar.
:(
tydalMedlem sedan juni 20034 013 inlägg Du får nog posta hela koden, för felet kan mycket väl ligga någon annanstans. Såvida inte det är det uppenbara att det är $_POST['action'] du har lagrat i.
tydal skrev:
Du får nog posta hela koden, för felet kan mycket väl ligga någon annanstans. Såvida inte det är det uppenbara att det är $_POST['action'] du har lagrat i.
Sure...
Här är hela admin-scriptet:
<?php
require ("./inc/settings.php");
If ($_SESSION['admin'] == ""){
if ($_GET['action'] == "login") {
if (($_POST['user'] == "$Admin1") && ($_POST['losen'] == "$Admin2")) {
$_SESSION['admin'] = "inloggad";
}else{
}?>
<script>location.href='admin.php';</script>
<?php }else{?>
<table cellspacing="0" align="center" cellpadding="0" border="0" width="200" style="border: 1px solid black">
<tr>
<td height="20" bgcolor="#E8E8E8" style="border-bottom: 1px solid black">
<b>LOGGA IN PÅ ADMINSIDAN</b>
</td>
</tr>
<form action="admin.php?action=login" method="post">
<tr height="20">
<td valign="top"> <b>Adminnamn:</b><br> <input type="text" name="user" size="25"></td>
</tr>
<tr height="20">
<td valign="top"> <b>Adminlösen:</b><br> <input type="password" name="losen" size="25"></td>
</tr>
<tr height="24">
<td valign="middle">
<input type="submit" value="Logga In" border="0">
</td>
</tr>
</form>
</table>
<?php }
}elseIf ($_SESSION['admin'] == "inloggad"){?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<tr>
<td style="border-bottom: 1px solid #2B60CD"><a href="admin.php"><b>Start</b></a> | <a href="?action=add"><b>Lägg till</b></a>| <a href="?action=logut"><b>Logga ut</b></a></td>
</tr>
</table>
<?php if($_GET['action'] == ""){
//############ Sidnavigering start ##################
$antal_inlagg = mysql_num_rows(mysql_query("SELECT * FROM photo"));
$sida = $_GET["sida"];
if (!isset($sida)) { $sida = 1; }
$sidantal = ceil($antal_inlagg/$antal);
$start = ($sida*$antal)-$antal;
//############ Sidnavigering slut ##################
$sql = mysql_query("SELECT * FROM photo ORDER BY titel LIMIT $start, $antal") or die(mysql_error());?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<?php if (mysql_affected_rows() == 0){?>
<tr>
<td colspan="2">Tomt</td>
</tr>
<?php }else{
while ($RS = mysql_fetch_array($sql)){?>
<tr>
<td width="65%><a href="viewphoto.php?id=<?=$RS['id'];?>"><?=$RS['titel'];?></a></td>
<td width="35%" align="right">
<?php if ($RS['bild'] != ""){?><a href="admin.php?action=deletePic&id=<?=$RS['id'];?>&sida=<?=$sida?>" OnClick="return confirm('Ta bort bild?');">Del pic</a> <?php }?>
<a href="admin.php?action=change&id=<?=$RS['id'];?>&sida=<?=$sida?>"><img src="gfx/change.gif" border="0" alt="Ändra"></a>
<a href="admin.php?action=delete&id=<?=$RS['id'];?>&sida=<?=$sida?>" OnClick="return confirm('Ta bort fotot?');"><img src="gfx/delete.gif" border="0" alt="Radera"></a>
</td>
</tr>
<?php }
if($sidantal > 1){?>
<tr>
<td style="border-top: 1px solid #2B60CD" colspan="2">
<?php //############ Sidnavigering start ##################
if ($sida > 1){
$sida1 = $sida-1;
echo '<a href="?sida='.$sida1.'"><b>Bakåt</b></a> | ';
}
for ($i=1;$i<$sidantal+1;$i++){
$e = $i;
while (strlen($e) < strlen($sidantal)) { $e = "0".$e; }
if ($sida == $i) { echo "<font color=\"#000000\">[<b>$e</b>]</font> "; } else { echo "<a href=\"?sida=$i\">$e</a> "; }
}
if ($sida <= $sidantal - 1){
echo ' | <a href="?sida='.++$sida.'"><b>Framåt</b></a>';
}
//############ Sidnavigering slut ##################?>
</td>
</tr>
<?php }}?>
</table>
<?}elseif($_GET['action'] == "add"){?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<form method="post" action="admin.php?action=save" name="photo" enctype="multipart/form-data" onSubmit="return Check();">
<tr>
<td colspan="2" style="border-bottom: 1px solid #2B60CD"><font size="2"><b>Nytt foto</b></font></td>
</tr>
<tr>
<td><b>Titel:</b><br><input type="text" name="titel" style="width:100%"></td>
</tr>
<tr>
<td><b>Foto:</b><br><input type="file" name="bild" style="width:100%"></td>
</tr>
<tr>
<td valign="top"><b>Kort info:</b><br><textarea name="info" style="width:100%" rows="8"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="posta" value="Spara foto"></td>
</tr>
</form>
</table>
<?php }elseif($_GET['action'] == "save"){
if (isset($_FILES['bild']) && is_uploaded_file($_FILES['photos']['tmp_name'])) {
// Kolla filändelse
$image_info = getimagesize($_FILES['photos']['tmp_name']);
switch ($image_info[2]) {
case 1:
$ext = '.gif';
break;
case 2:
$ext = '.jpg';
break;
case 3:
$ext = '.png';
break;
case 5:
$ext = '.psd';
break;
case 6:
$ext = '.bmp';
break;
}
mysql_query("INSER INTO photo(
titel,
info)
VALUES(
'".$_POST['titel']."',
'".$_POST['info']."')");
$id = mysql_insert_id();
move_uploaded_file($_FILES['bild']['tmp_name'], "photos/bild_".$id.$ext);
echo("Sparade photos/bild_" . $id . $ext);
mysql_query("UPDATE photo SET bild='bild_".$id."$ext' WHERE id='".$id."'");
}else{
mysql_query("INSERT INTO photo(
titel,
info)
VALUES(
'".$_POST['titel']."',
'".$_POST['info']."')");
}?>
<script>location.href='admin.php';</script>
<?php }elseif($_GET['action'] == "change"){
$sql = mysql_query("Select * From photo Where id='".$_GET['id']."'") or die(mysql_error());
$RS = mysql_fetch_array($sql);?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<form method="post" action="admin.php?action=update&id=<?=$RS['id'];?>&sida=<?=$_GET['sida']?>" name="photo" enctype="multipart/form-data" onSubmit="return Check();">
<tr>
<td colspan="2" style="border-bottom: 1px solid #2B60CD"><font size="2"><b>Ändra foto <i><?=$RS['titel'];?></i></b></font></td>
</tr>
<tr>
<td><b>Titel:</b><br><input type="text" name="titel" style="width:100%" value="<?=$RS['titel'];?>"></td>
</tr>
<tr>
<td><b>Foto:</b> <?php if ($RS['bild'] != ""){?>(<a href="photos/<?=$RS['bild'];?>" target="_blank">Bild</a>)<?php }?><br><input type="file" name="bild" style="width:100%"></td>
</tr>
<tr>
<td valign="top"><b>Kort info:</b><br><textarea name="info" style="width:100%" rows="8"><?=$RS['info'];?></textarea></td>
</tr>
<tr>
<td><input type="submit" name="posta" value="Ändra foto"></td>
</tr>
</form>
</table>
<?php }elseif($_GET['action'] == "update"){
if (isset($_FILES['bild']) && is_uploaded_file($_FILES['photos']['tmp_name'])) {
// Kolla filändelse
$image_info = getimagesize($_FILES['photos']['tmp_name']);
switch ($image_info[2]) {
case 1:
$ext = '.gif';
break;
case 2:
$ext = '.jpg';
break;
case 3:
$ext = '.png';
break;
case 5:
$ext = '.psd';
break;
case 6:
$ext = '.bmp';
break;
}
move_uploaded_file($_FILES['bild']['tmp_name'], "photos/bild_".$_GET['id'].$ext);
mysql_query("Update photo Set
titel='".$_POST['titel']."',
info='".$_POST['info']."',
bild='bild_".$_GET['id']."$ext'
Where id='".$_GET['id']."'");
}else{
mysql_query("Update photo Set
titel='".$_POST['titel']."',
info='".$_POST['info']."'
Where id='".$_GET['id']."'");
}?>
<script>location.href='admin.php?sida=<?=$_GET['sida']?>';</script>
<?php }elseif($_GET['action'] == "delete"){
$sql = mysql_query("Select * From photo Where id='".$_GET['id']."'") or die(mysql_error());
$RS = mysql_fetch_array($sql);
$fil = $RS['bild'];
if (file_exists("photos/$fil")) {
unlink("photos/$fil");
}
mysql_query("Delete From photo Where id='".$_GET['id']."'");?>
<script>location.href='admin.php?sida=<?=$_GET['sida']?>';</script>
<?php }elseif($_GET['action'] == "deletePic"){
$sql = mysql_query("Select * From photo Where id='".$_GET['id']."'") or die(mysql_error());
$RS = mysql_fetch_array($sql);
$fil = $RS['bild'];
if (file_exists("photos/$fil")) {
unlink("photos/$fil");
}
mysql_query("Update photo Set bild='' Where id='".$_GET['id']."'");?>
<script>location.href='admin.php?sida=<?=$_GET['sida']?>';</script>
<?php }elseif($_GET['action'] == "logut"){
session_unset();
session_destroy();?>
<script>location.href='viewphoto.php';</script>
<?php exit;
}
}?>
tydalMedlem sedan juni 20034 013 inlägg Aha, nu såg jag... det är en annan if-sats... Det är den här som inte körs:
if (isset($_FILES['bild']) && is_uploaded_file($_FILES['photos']['tmp_name'])) {
och din filuppladdningsruta heter ju "bild":
<input type="file" name="bild" style="width:100%">
Alltså ska det vara $_FILES['bild'] överallt och inte $_FILES['photos'].
tydal skrev:
Aha, nu såg jag... det är en annan if-sats... Det är den här som inte körs:
if (isset($_FILES['bild']) && is_uploaded_file($_FILES['photos']['tmp_name'])) {
och din filuppladdningsruta heter ju "bild":
<input type="file" name="bild" style="width:100%">
Alltså ska det vara $_FILES['bild'] överallt och inte $_FILES['photos'].
Ooops.. :r
Ja.. jag hade på känn att det skulle vara ett SIMPELT fel.
Nu laddas bilden upp i mappen "photos", MEN bilden saknar filändelse (.ext), och nu sparas INGEN info i databasen. :q
Nevermind.. hade tydligen felstavat vissa funktioner samt andra småsaker.
Man ska INTE koda när man inte har sovit på snart 2 dygn. :D
Well.. nu fungerar det som det ska.
Tack för hjälpen tydal. ;)
EDIT: Nu verkar allt fungera som det ska förutom följande fel...
Notice: Undefined index: action in /home/kunder/*****/*****/nk/filer/admin.php on line 69
Notice: Undefined index: sida in /home/kunder/*****/*****/nk/filer/admin.php on line 73
Line 69 - 79:
<?php if($_GET['action'] == ""){
//############ Sidnavigering start ##################
$antal_inlagg = mysql_num_rows(mysql_query("Select * From photo"));
$sida = $_GET["sida"];
if (!isset($sida)) { $sida = 1; }
$sidantal = ceil($antal_inlagg/$antal);
$start = ($sida*$antal)-$antal;
//############ Sidnavigering slut ##################
Tänkte fortsätta denna tråd genom att posta lite annan kod. ;)
(Man vill ju inte SPAMMA med nya trådar.)
Jag har gjort om koden ovan så att man även ska kunna ladda upp låtar (mp3, midi m.fl.), men det blir lite fel.
Testade att ladda upp en låt under 2 MB och det fungerade kanon, den sparades i mappen "songs" och all tillhörande info sparades i databasen.
Men.. jag får ingen filändelse på den uppladdade filen, det blir bara "lat_1" inget mer.
Förmodligen så har jag skrivit mina ext/filformat helt fel, eller så hade jag för höga förhoppningar om mig själv. ;)
Iallafall är jag tacksam ifall ni kan hjälpa mig med att hitta eventuella "fel" i följande kod.
<?php if($_GET['action'] == ""){
//############ Sidnavigering start ##################
$antal_inlagg = mysql_num_rows(mysql_query("SELECT * FROM songs"));
$sida = $_GET["sida"];
if (!isset($sida)) { $sida = 1; }
$sidantal = ceil($antal_inlagg/$antal);
$start = ($sida*$antal)-$antal;
//############ Sidnavigering slut ##################
$sql = mysql_query("SELECT * FROM songs ORDER BY titel LIMIT $start, $antal") or die(mysql_error());?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<?php if (mysql_affected_rows() == 0){?>
<tr>
<td colspan="2">Finns inga uppladdade låtar, än.</td>
</tr>
<?php }else{
while ($RS = mysql_fetch_array($sql)){?>
<tr>
<td width="65%><a href="viewphoto.php?id=<?=$RS['id'];?>"><?=$RS['titel'];?></a></td>
<td width="35%" align="right">
<?php if ($RS['lat'] != ""){?><a href="songs.php?action=deletePic&id=<?=$RS['id'];?>&sida=<?=$sida?>" OnClick="return confirm('Ta bort låt?');">Rad låt</a> <?php }?>
<a href="songs.php?action=change&id=<?=$RS['id'];?>&sida=<?=$sida?>"><img src="gfx/change.gif" border="0" alt="Ändra"></a>
<a href="songs.php?action=delete&id=<?=$RS['id'];?>&sida=<?=$sida?>" OnClick="return confirm('Ta bort album?');"><img src="gfx/delete.gif" border="0" alt="Radera"></a>
</td>
</tr>
<?php }
if($sidantal > 1){?>
<tr>
<td style="border-top: 1px solid #2B60CD" colspan="2">
<?php //############ Sidnavigering start ##################
if ($sida > 1){
$sida1 = $sida-1;
echo '<a href="?sida='.$sida1.'"><b>Bakåt</b></a> | ';
}
for ($i=1;$i<$sidantal+1;$i++){
$e = $i;
while (strlen($e) < strlen($sidantal)) { $e = "0".$e; }
if ($sida == $i) { echo "<font color=\"#000000\">[<b>$e</b>]</font> "; } else { echo "<a href=\"?sida=$i\">$e</a> "; }
}
if ($sida <= $sidantal - 1){
echo ' | <a href="?sida='.++$sida.'"><b>Framåt</b></a>';
}
//############ Sidnavigering slut ##################?>
</td>
</tr>
<?php }}?>
</table>
<?}elseif($_GET['action'] == "add"){?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<form method="post" action="songs.php?action=save" name="song" enctype="multipart/form-data" onSubmit="return Check();">
<tr>
<td colspan="2" style="border-bottom: 1px solid #2B60CD"><font size="2"><b>Nytt album eller låt</b></font></td>
</tr>
<tr>
<td><b>Titel:</b><br><input type="text" name="titel" style="width:100%"></td>
</tr>
<tr>
<td><b>Låt:</b><br><input type="file" name="lat" style="width:100%"></td>
</tr>
<tr>
<td valign="top"><b>Kort info:</b><br><textarea name="info" style="width:100%" rows="8"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="posta" value="Spara"></td>
</tr>
</form>
</table>
<?php }elseif($_GET['action'] == "save"){
if (isset($_FILES['lat']) && is_uploaded_file($_FILES['lat']['tmp_name'])) {
// Kolla filändelse
$image_info = getimagesize($_FILES['lat']['tmp_name']);
switch ($image_info[2]) {
case 1:
$ext = '.mp3';
break;
case 2:
$ext = '.wma';
break;
case 3:
$ext = '.wav';
break;
case 6:
$ext = '.mid';
break;
case 8:
$ext = '.ram';
break;
}
mysql_query("INSERT INTO songs(
titel,
info)
VALUES(
'".$_POST['titel']."',
'".$_POST['info']."')") or die(mysql_error());
$id = mysql_insert_id();
move_uploaded_file($_FILES['lat']['tmp_name'], "songs/lat_".$id.$ext);
mysql_query("UPDATE songs SET lat='lat_".$id."$ext' WHERE id='".$id."'") or die(mysql_error());
}else{
mysql_query("INSERT INTO songs(
titel,
info)
VALUES(
'".$_POST['titel']."',
'".$_POST['info']."')") or die(mysql_error());
}?>
<script>location.href='songs.php';</script>
<?php }elseif($_GET['action'] == "change"){
$sql = mysql_query("SELECT * FROM songs WHERE id='".$_GET['id']."'") or die(mysql_error());
$RS = mysql_fetch_array($sql);?>
<table border="0" width="<?=$width?>" align="center" cellpadding="3" cellspacing="0">
<form method="post" action="songs.php?action=update&id=<?=$RS['id'];?>&sida=<?=$_GET['sida']?>" name="song" enctype="multipart/form-data" onSubmit="return Check();">
<tr>
<td colspan="2" style="border-bottom: 1px solid #2B60CD"><font size="2"><b>Ändra album/låt <i><?=$RS['titel'];?></i></b></font></td>
</tr>
<tr>
<td><b>Titel:</b><br><input type="text" name="titel" style="width:100%" value="<?=$RS['titel'];?>"></td>
</tr>
<tr>
<td><b>Låt:</b> <?php if ($RS['lat'] != ""){?>(<a href="songs/<?=$RS['lat'];?>" target="_blank">Lyssna</a>)<?php }?><br>
<input type="file" name="lat" style="width:100%"></td>
</tr>
<tr>
<td valign="top"><b>Kort info:</b><br><textarea name="info" style="width:100%" rows="8"><?=$RS['info'];?></textarea></td>
</tr>
<tr>
<td><input type="submit" name="posta" value="Ändra"></td>
</tr>
</form>
</table>
<?php }elseif($_GET['action'] == "update"){
if (isset($_FILES['lat']) && is_uploaded_file($_FILES['lat']['tmp_name'])) {
// Kolla filändelse
$image_info = getimagesize($_FILES['lat']['tmp_name']);
switch ($image_info[2]) {
case 1:
$ext = '.mp3';
break;
case 2:
$ext = '.wma';
break;
case 3:
$ext = '.wav';
break;
case 6:
$ext = '.mid';
break;
case 8:
$ext = '.ram';
break;
}
move_uploaded_file($_FILES['lat']['tmp_name'], "songs/lat_".$_GET['id'].$ext);
mysql_query("UPDATE songs SET
titel='".$_POST['titel']."',
info='".$_POST['info']."',
lat='lat_".$_GET['id']."$ext'
Where id='".$_GET['id']."'") or die(mysql_error());
}else{
mysql_query("UPDATE songs SET
titel='".$_POST['titel']."',
info='".$_POST['info']."'
Where id='".$_GET['id']."'") or die(mysql_error());
}?>
<script>location.href='songs.php?sida=<?=$_GET['sida']?>';</script>
Hade verkligen uppskattat ifall någon kunde hjälpa mig med ovanstående. ;)