hallo!
ich habe eine seite mit profilen, die in einer datenbank gespeichert werden. die mitglieder sollen außerdem auch ein bild hochladen können. dies soll mit einem formular passieren. der name der datei muss in die datenbank geschrieben werden, während das bild selbst in einen ordner auf den server hochgeladen werden muss.
die tabelle 'profiles' der datenbank hat die felder: page_id, page_title, page_content, page_image
die datei mit dem formular sieht so aus (damit müsste aber eigentlich alles richtig sein):
die daten hier werden an die seite "edit_thanks.php" weitergegeben. Diese sieht so aus:
ich hab schon alles mögliche probiert, aber ich kann einfach kein bild hochladen. wenn ich per ftp ein bild hochlade und den namen in die datenbank eintrage, dann wird es mit diesem script aber wieder aus der datenbank entfernt. das feld "page_image" ist dann wieder leer. könnt ihr auf den ersten blick fehler erkennen? wäre echt toll, wenn ihr mir helfen könnt.
der ordner, in denen ich bilder hochladen will, muss doch dann auch beschreibbar sein, also chmod 755 oder so, stimmts?
danke!
ich habe eine seite mit profilen, die in einer datenbank gespeichert werden. die mitglieder sollen außerdem auch ein bild hochladen können. dies soll mit einem formular passieren. der name der datei muss in die datenbank geschrieben werden, während das bild selbst in einen ordner auf den server hochgeladen werden muss.
die tabelle 'profiles' der datenbank hat die felder: page_id, page_title, page_content, page_image
die datei mit dem formular sieht so aus (damit müsste aber eigentlich alles richtig sein):
Code:
<?
include("../layout/config.inc");
$table = profiles;
$connection = mysql_connect($hostname, $user, $pass) or die ("Unable to connect!");
if ($page_id) {
$query = "SELECT * FROM $table WHERE page_id=$page_id";
$result = mysql_db_query($database, $query, $connection) or die ("Error in query: $query. " . mysql_error());
$myrow = mysql_fetch_array($result);
$page_id = $myrow["page_id"];
$page_title = $myrow["page_title"];
$page_content = $myrow["page_content"];
$page_image = $myrow["page_image"];
// print the id for editing
mysql_free_result($result);
mysql_close($connection);
}
?>
<form method="post" action="edit_thanks.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type=hidden name="page_id" value="<? echo $page_id ?>">
<? if ($page_image) {?>
<input type=hidden name="page_image" value="<? echo $page_image ?>">
<? } ?>
<input type=hidden name="laheta" value="1">
Bild:<br>
<input type="file" name="uploadfile2">
<?
if ($page_image) {
?>
<a href="/profiles/<? echo $page_image ?>">jetziges bild anzeigen >></a>
<br>
<br>
<input type="checkbox" name="delete_bigpicture" value="delete_picture">
Bild löschen<br>
<?
}
?>
<br>
Name:<br>
<INPUT TYPE="text" NAME="page_title" SIZE="20" MAXLENGTH="50" VALUE="<? echo $page_title; ?>">
<br><br>
Profile-Info<br>
<TEXTAREA NAME="page_content" COLS="40" ROWS="8" WRAP="Virtual"><? echo $page_content; ?></TEXTAREA>
<br><br>
<input type="submit" name="Submit" value="speichern">
</form>
<br><br><a href="index.php">zurück >></a></td>
</tr>
</table>
<?php
include("../layout/footer.inc");
?>
die daten hier werden an die seite "edit_thanks.php" weitergegeben. Diese sieht so aus:
Code:
<?
include("../layout/config.inc");
$table = profiles;
if(($file != none) && $page_title && $page_content) {
$formats = array('jpg','gif','png');
$dest = "/home/users/dshells/roxy/html/profiles/$file_name";
$final_filename = str_replace(" ", "_", $file_name);
if(in_array(strtolower(substr($final_filename,-3)),$formats)) {
if(!copy($file,$dest)) {
echo "Unable to create $dest - check permissions<br>\n";
exit;
}
}
$connection = mysql_connect($hostname, $user, $pass) or die ("Unable to connect!");
$sql = "UPDATE $table SET page_title='$page_title',
page_image='$final_filename',page_content='$page_content' WHERE page_id=$page_id";
$result = mysql_db_query($database, $sql, $connection) or die ("Error in query: $sql . " .
mysql_error());
mysql_close($connection);
}
else {
if ($page_content) {
$connection = mysql_connect($hostname, $user, $pass) or die ("Unable to connect!");
if ($delete_picture) {
$delete = unlink("/home/users/dshells/roxy/html/profiles/$page_image");
$page_image = "";
}
$sql = "UPDATE $table SET
page_title='$page_title',page_image='$page_image',page_content='$page_content' WHERE page_id=$page_id";
$result = mysql_db_query($database, $sql, $connection) or die ("Error in query: $sql . " .
mysql_error());
echo "database updated<br><br>";
mysql_close($connection);
}
else {
echo "required fields missing";
}
}
?>
ich hab schon alles mögliche probiert, aber ich kann einfach kein bild hochladen. wenn ich per ftp ein bild hochlade und den namen in die datenbank eintrage, dann wird es mit diesem script aber wieder aus der datenbank entfernt. das feld "page_image" ist dann wieder leer. könnt ihr auf den ersten blick fehler erkennen? wäre echt toll, wenn ihr mir helfen könnt.
der ordner, in denen ich bilder hochladen will, muss doch dann auch beschreibbar sein, also chmod 755 oder so, stimmts?
danke!