PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Upload Script


n0tcashed
03.10.2009, 14:48:49
Hallo,

ich versuche schon seit einiger Zeit ein Upload Script zu erstellen

<?PHP
$hostname = ".................";
$db_user = "..................";
$db_password = ".............";
$database = "...............";
$db_table = "users";


$db = mysql_connect($hostname, $db_user, $db_password);
mysql_select_db($database,$db);

$uploadDir = 'images/'; //Image <strong class="highlight">Upload</strong> Folder

if(isset($_POST['Submit']))
{
$fileName = $_FILES['Photo']['name'];
$tmpName = $_FILES['Photo']['tmp_name'];
$fileSize = $_FILES['Photo']['size'];
$fileType = $_FILES['Photo']['type'];

$filePath = $uploadDir . $fileName;

$result = move_uploaded_file($tmpName, $filePath);
if (!$result) {
echo "Fehler beim Hochladen";
exit;
}

if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
$filePath = addslashes($filePath);
}



$query = "UPDATE $db_table ( picture where id='50' ) VALUES ('$filePath')";

mysql_query($query) or die('Fehler, Upload Fehlgeschlagen');

}
?>

Leider schlägt dies immer fehl...
Könnte mir vielleicht einer dabei helfen?

Vielen Dank schon mal im Vorraus

DokuLeseHemmung
03.10.2009, 15:04:21
Wieso sehe ich da kein error_reporting() und mysql_error()?
Und keine Auswertung von $_FILES['Photo']['error']?
Und kein "echo $query;"?

Damit solltest du selber den Fehler lokalisieren können.

Crisps
03.10.2009, 15:16:59
UPDATE $db_table ( picture where id='50' ) VALUES ('$filePath')

Wo hast du diese komische Query her?

So sollte die Abfrage eigentlich aussehen:
UPDATE $db_table SET picture = '$filePath' WHERE id = 50

Wobei es eigentlich Platzverschwendung ist, wenn man gleich den ganzen Pfad zum Bild abspeichert...

n0tcashed
03.10.2009, 20:35:57
Ok vielen Dank hat super geklappt!

n0tcashed
05.10.2009, 19:11:35
Hallo,

ich habe noch eine Frage und zwar lese ich mit diesem Script aus der Datenbank vohergespeicherte links von Bildern aus. Nun möchte ich aber das diese Bilder nicht untereinander dargestellt werden sondern erst das erste bild mit einem link wo man zum nächsten link kommt. Leider habe ich keine Ahnung wie ich das realisieren könnte.
Vielleicht kann mir ja einer helfen. Vielen Dank schon mal!

<?php
include 'dbc.php';
page_protect();

$rs_settings = mysql_query("select * from bilder");

$rs_recent = mysql_query("select * from bilder") or die(mysql_error());


if($_POST['doSave'] == 'Speichern')
{
function filter($arr) {
return array_map('mysql_real_escape_string', $arr);
}
$_POST = filter($_POST);

mysql_query("UPDATE users SET
`user_name` = '$_POST[user_name]',
`link` = '$_POST[link]',
") or die(mysql_error());

}
?>

<html>
<head>
<style type="text/css">

body, html{ width: 100%;
}

div.bg {
background-image: url(bg.jpg);
background-repeat:repeat-x;
background-color:9e0e0e;
width:100%;
border:1px solid red;
padding:0px;
}

</style>

<title>Bilder</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<body>
<div class="bg">
<table width="100%" border="0" cellspacing="0" cellpadding="5" class="main">
<tr>
<td colspan="3">&nbsp;</td>
</tr>
<tr>
<td width="160" valign="top">
<?

if (isset($_SESSION['user_id'])) {?>
<div class="myaccount">
<p><strong>Hallo, <? echo $_SESSION['user_name'];?></strong></p>
<a href="myaccount.php">Mein Account</a><br>
<a href="users.php">Benutzer</a><br>
<a href="users.php"><strong>Bilder</strong></a><br>
<a href="mysettings.php">Einstellungen</a><br>
<a href="logout.php">Ausloggen </a>
</div>
<? } ?>
<p>&nbsp; </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></td>
<td width="732" valign="top">
<h3 class="titlehdr">Bilder</h3>
<p>
<?
if (isset($_GET['msg'])) {
echo "<div class=\"error\">$_GET[msg]</div>";
}

?>

<? while ($rrows = mysql_fetch_array($rs_recent)) {?>
<br>
<table width="90%" border="0" align="center" cellpadding="3" cellspacing="3" class="forms">
<tr>
<td width="300"><center><? echo "<img src=\"";
echo $rrows['link'];
echo "\" width=\"246\" height=\"343\"></img>" ?></center></td>
</form>
<br><br>
</tr>
<? } ?></td></tr>
</table><br>
</div>
</body>
</html>

CPA
06.10.2009, 08:52:27
Hallo,

ich habe noch eine Frage und zwar lese ich mit diesem Script aus der Datenbank vohergespeicherte links von Bildern aus. Nun möchte ich aber das diese Bilder nicht untereinander dargestellt werden sondern erst das erste bild mit einem link wo man zum nächsten link kommt. Leider habe ich keine Ahnung wie ich das realisieren könnte.
Vielleicht kann mir ja einer helfen. Vielen Dank schon mal!




Also ein kleines bisschen Eigeninitiative deinerseits wäre auch wünschenwert...

Aber nun gut... kleiner Tip: Vergib jedem Bild in der Datenbank in einer zusätlichen Spalte eine fortlaufende ID, anhand derer kannst dann das jeweils nächste Bild aus der Datenbank abfragen.

Code poste ich hier jetzt mal keinen, da du ruhig auch mal bisschen deinen Kopf anstrengen solltest.