PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wohin mit dem "move_uploaded_file" schnipsel


sodiummd
20.02.2005, 00:23:05
nabend,

hab folgendes uploadscript. dis soll jetzt noch erweitert werden, um einen bilderupload. so wie es jetzt ist, schreibt er den namen des bildes in die db, allerdings weiß ich nicht, an welche stelle ich den move_uploaded_file" schnipsel setzen soll...

wäre über tips echt dankbar...

if(!isset($set))
{
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
if($type != "image/gif" && $type != "image/jpeg" && $type != "image/jpg") {
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if ($size > "900000") {
$err[] = "Die Datei welche du hochladen willst, ist zu gross!Maximale Dateigrosse beträgt 50 KB!";
}
seitenAnfang("Neues Tier aufnehmen");
echo "<h1>Neues Tier aufnehmen</h1>n";
echo "<form action="$PHP_SELF" method="post">n";
echo "<input type="hidden" name="set" value="true">n";
echo "<table border="1">n";

echo "<tr>n";
echo "<td><b>Lateinische Gattungsbezeichnung:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_lat_gattung" size="50" maxlength="40">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Lateinische Artenbezeichnung:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_lat_art" size="50" maxlength="40">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Deutsche Bezeichnung</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_deut" size="50" maxlength="50">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Herkunft:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_herkunft" size="50" maxlength="50">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Größe:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_groesse" size="50" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Lebensweise:</b></td>n";
echo "<td>n";
echo "<select name="f_lebensweise" size="1"><option>$lw1<option>$lw2<option>$lw3</select>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Haltung:</b></td>n";
echo "<td>n";
echo "<select name="f_haltung" size="1"><option>$hg1<option>$hg2<option>$hg3<option>$hg4</select>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Temperatur:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_temp" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Luftfeuchtigkeit:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_luftfe" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Zucht:</b></td>n";
echo "<td>n";
echo "<textarea rows="10" name="f_zucht" cols="60"></textarea>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Beschrieben von:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_beschrieben_von" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Artenschutz:</b></td>n";
echo "<td>n";
echo "<input type="checkbox" name="f_artenschutz" value="WA II">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Beschreibung:</b></td>n";
echo "<td>n";
echo "<textarea rows="10" name="f_beschreibung" cols="60"></textarea>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Bild 1:</b></td>n";
echo "<td>n";
echo "<input name="file" type="file">n";
echo "</td>n";
echo "</tr>n";

echo "</table>n";
echo "<p>n";
echo "<input type="submit" value="Daten abspeichern">n";
echo "<input type="reset" value="Daten verwerfen">n";
echo "</form>n";
} //!isset($set)
else
{
include("../hidden/db_connect2.php");
seitenAnfang("Das Tier wurde der Datenbank erfolgreich hinzugefügt");
if(@mysql_connect($host, $user, $pwd))
{
if(@mysql_select_db($dbname))
{
$sql = "INSERT INTO $tblname1 (lat_gattung, lat_art, deut, herkunft, groesse, lebensweise, haltung, temp, luftfe, zucht, beschrieben_von, artenschutz, beschreibung, bild1) VALUES ("
. "'$f_lat_gattung', "
. "'$f_lat_art', "
. "'$f_deut', "
. "'$f_herkunft', "
. "'$f_groesse', "
. "'$f_lebensweise', "
. "'$f_haltung', "
. "'$f_temp', "
. "'$f_luftfe', "
. "'$f_zucht', "
. "'$f_beschrieben_von', "
. "'$f_artenschutz', "
. "'$f_beschreibung', "
. "'$file');";
if(@mysql_query($sql))
{
echo "<h1>Eintrag erfolgreich</h1>n";
echo "Das neue Tier <b>$f_lat_gattung $f_lat_art $file</b> wurde erfolgreich eingetragen.<p><hr>";
}
else
{
echo "Der Datensatz konnte leider nicht gespeichert werden. ";
echo "Schau nochmal nach, was denn fehlt.<p>n";
}
} //mysql_select_db()
else
echo "<br><i>Verbindung zur Datenbank ist im Moment nicht m&ouml;glich!</i><br>n";
mysql_close();
}//mysql_connect()
}
else
echo "<br><i>Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.</i><br>n";
} //else-Zweig !isset($set)
back(3);
seitenEnde();
?>

|Coding
20.02.2005, 00:25:50
jo, das soll jetzt mal einer sagen, wo der schnippsel, den du hast und hier keiner kennt, hin soll...

du musst schon alle angaben posten!

sodiummd
20.02.2005, 00:29:59
na
if(empty($err)) {
move_uploaded_file($file, "$DOCUMENT_ROOT/spinnendatenbank/img/$file_name");
echo "Die Datei $name wurde erfolgreich hochgeladen! ";
$ergebnis = mysql_query($sql) or die(mysql_error());}

is eigentlich alles...

|Coding
20.02.2005, 00:48:55
also ich sehe im obigen code (post #1) nur nirgendwo, das da was hochgeladen wird, ich sehe nur, das da was in die db geschrieben wird.

wie willst du dann was mit move_uploaded_file anfangen?

sodiummd
20.02.2005, 00:58:18
mhhh, das is jetzt natürlich peinlich. kannst mir trotzdem sagen, was ich da dann noch reinsetzen muss, damit es funzt...*g*

|Coding
20.02.2005, 01:27:35
öhm ne, glaube ich nicht!

schau mal hier: an alle user (http://www.selfphp.info/forum/showthread.php?t=1835)

sodiummd
20.02.2005, 01:51:10
nagut, sorry wegen dem script.

fehlt dann jetzt nur der enctype="multi..... oder noch mehr???

|Coding
20.02.2005, 02:08:14
das mit dem script war jetzt kein drama, darum ging es mir jetzt auch nicht. mir geht es viel eher darum, dass ich das gefühl habe, dass du dir den code lieber schreiben lassen möchtest, als dich selbst zu versuchen.

das ist nähmlich so eine sache, die wir hier garnicht gerne sehen.

sodiummd
20.02.2005, 02:13:00
ich sitzt seit drei tagen vor dem doofen script. ich mein, ich bin ja noch newbie...

hab hier 3 bücher liegen, unzählige tutorials gelesen, aber alle funzten nicht so, wie ich das wollte. na war ich schon soweit, dass wenigstens der textkram in die db geladen wurde (erstmal überglücklich) bloß dann mussten ja noch die bilder dazu kommen. und nun häng ich und weiß nicht weiter, da ich jetzt eigentlich schon jede mögliche "stellung" des schnipsels ausprobiuert hab und es trotzdem nicht funzt. ich mein, ich wär glücklich, wenn man mir das script fertig schreiben würde, wobei, selbergeschrieben und funktionierend macht es einen doch glücklicher... aber es muss erstmal funzen*heul*

kannst mir nichmal büdde büdde nen tip geben... :-)

|Coding
20.02.2005, 02:31:35
ich habe mit mal erlaubt in deinem ersten posting die php tags ein zusetzen ([ php] und [ /php]), damit man mal besser was erkennen kann. desweiteren kann ich dir da jetzt nicht weiterhelfen, da ich gerade selbst arbeite und das muss fertig werden, ich schaue im moment mehr oder weniger kurz mal zwischen durch rein.

ich finde es gut das du es selbst, versucht hast, da das nicht immer der fall ist (bei manchen usern) bin ich in der hinsicht vorsichtig geworden, ich muss schließlich alle gleich behandeln. verstehst du hoffentlich.

sodiummd
20.02.2005, 02:40:54
na klar, ich kann dir jetzt auch sagen, das es funzt, habs eben hinbekommen... *freu*

aber eine frage hät ich noch. kennst du ein script, bzw nen schnipsel, der den dateinamen der hochgeladenen datei ändert in eine vortlaufende nummer??? oder vielleicht in die ID der zeile der db, wobei das dann eventuell so aussehen müsste 1_1.jpg, 1_2.jpg,... da ich ja immer bis zu 4 Bilder pro tier hochlade

|Coding
20.02.2005, 02:54:01
das hört sich doch gut an.

poste doch mal das script so wie es jetzt ist, dann kann ich besser helfen.
denk aber bitte an die php-tags ([ php] und [ /php] nur ohne die beiden leerzeichen.)

sodiummd
20.02.2005, 03:15:09
büddschön *stolzmitangib*
<?php
require("../hidden/biblio2.php");
include("../hidden/info.php");

if(!isset($set))
{
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
if($type != "image/gif" && $type != "image/jpeg" && $type != "image/jpg") {
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if ($size > "900000") {
$err[] = "Die Datei welche du hochladen willst, ist zu gross!Maximale Dateigrosse beträgt 50 KB!";
}
seitenAnfang("Neues Tier aufnehmen");
echo "<h1>Neues Tier aufnehmen</h1>n";
echo "<form action="$PHP_SELF" method="post" enctype="multipart/form-data">n";
echo "<input type="hidden" name="set" value="true">n";
echo "<table border="1">n";

echo "<tr>n";
echo "<td><b>Lateinische Gattungsbezeichnung:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_lat_gattung" size="50" maxlength="40">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Lateinische Artenbezeichnung:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_lat_art" size="50" maxlength="40">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Deutsche Bezeichnung</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_deut" size="50" maxlength="50">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Herkunft:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_herkunft" size="50" maxlength="50">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Größe:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_groesse" size="50" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Lebensweise:</b></td>n";
echo "<td>n";
echo "<select name="f_lebensweise" size="1"><option>$lw1<option>$lw2<option>$lw3</select>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Haltung:</b></td>n";
echo "<td>n";
echo "<select name="f_haltung" size="1"><option>$hg1<option>$hg2<option>$hg3<option>$hg4</select>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Temperatur:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_temp" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Luftfeuchtigkeit:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_luftfe" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Zucht:</b></td>n";
echo "<td>n";
echo "<textarea rows="10" name="f_zucht" cols="60"></textarea>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Beschrieben von:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_beschrieben_von" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Artenschutz:</b></td>n";
echo "<td>n";
echo "<input type="checkbox" name="f_artenschutz" value="WA II">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Beschreibung:</b></td>n";
echo "<td>n";
echo "<textarea rows="10" name="f_beschreibung" cols="60"></textarea>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Bild 1:</b></td>n";
echo "<td>n";
echo "<input name="file" type="file">n";
echo "</td>n";
echo "</tr>n";

echo "</table>n";
echo "<p>n";
echo "<input type="submit" value="Daten abspeichern">n";
echo "<input type="reset" value="Daten verwerfen">n";
echo "</form>n";
} //!isset($set)
else
{
include("../hidden/db_connect2.php");
seitenAnfang("Das Tier wurde der Datenbank erfolgreich hinzugefügt");
if(empty($err)) {
move_uploaded_file($file, "$DOCUMENT_ROOT/***/spinnendatenbank/img/$file_name");
echo "Die Datei $file_name wurde erfolgreich hochgeladen! ";
if(@mysql_connect($host, $user, $pwd))
{
if(@mysql_select_db($dbname))
{
$sql = "INSERT INTO $tblname1 (lat_gattung, lat_art, deut, herkunft, groesse, lebensweise, haltung, temp, luftfe, zucht, beschrieben_von, artenschutz, beschreibung, bild1) VALUES ("
. "'$f_lat_gattung', "
. "'$f_lat_art', "
. "'$f_deut', "
. "'$f_herkunft', "
. "'$f_groesse', "
. "'$f_lebensweise', "
. "'$f_haltung', "
. "'$f_temp', "
. "'$f_luftfe', "
. "'$f_zucht', "
. "'$f_beschrieben_von', "
. "'$f_artenschutz', "
. "'$f_beschreibung', "
. "'$file_name');";
if(@mysql_query($sql))
{
echo "<h1>Eintrag erfolgreich</h1>n";
echo "Das neue Tier <b>$f_lat_gattung $f_lat_art $file_name</b> wurde erfolgreich eingetragen.<p><hr>";
}
else
{
echo "Der Datensatz konnte leider nicht gespeichert werden. ";
echo "Schau nochmal nach, was denn fehlt.<p>n";
}
} //mysql_select_db()
else
echo "<br><i>Verbindung zur Datenbank ist im Moment nicht m&ouml;glich!</i><br>n";
mysql_close();
}//mysql_connect()
}
else
echo "<br><i>Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.</i><br>n";
} //else-Zweig !isset($set)
back(3);
seitenEnde();
?>

Achso, sag mal, wenn ich vier bilder mit einmal hochladen will, muss ich dann auch vier mal den Move befehl machen???

|Coding
20.02.2005, 03:54:18
Achso, sag mal, wenn ich vier bilder mit einmal hochladen will, muss ich dann auch vier mal den Move befehl machen???

jain... das könnte man in einer schleife lösen.
etwa so:

foreach($files as $name){
move_uploaded_file($file........);
}

$files muss ein array sein und du brauchst natürlich dem entsprechend 4 input fields vom type "file".

sodiummd
20.02.2005, 04:26:56
danke, für den tipp

neues problem...

immer wenn ich neue bilder hochlade ändert der die properties auf 600... dann kann die aber keiner mehr sehen. wie kann ich das einstellen, das der die auf 644 lässt und nicht immer wieder zurückgeht...???

|Coding
20.02.2005, 04:36:39
das was du suchst ist der befehl chmod()

sodiummd
20.02.2005, 06:45:42
:-) ich werd bestimmt langsam nervig*g*

hättest du ne idee, wie ich beim upload den dateinamen ändern könnte und zwar in die ID der jeweiligen zeile der db??? + einer bildnummer (sprich 1bis4)???

|Coding
20.02.2005, 14:13:28
hast du denn in deiner tabelle eine spalte names id o.ä.?

sodiummd
20.02.2005, 15:48:07
jup,mit auto_increment

|Coding
20.02.2005, 16:05:30
ok, dann musst du dir die id des letzten datensatzes holen, welcher in der db gespeichert ist, aber bevor du den neuen einfügst.

jetzt nimmst du dir das array mit den files und lässt es in einer schleife abarbeiten.

foreach($filearray as $file_id => $file){
// datei.jpg -> file_ext[0] = 'datei' $file_ext[1] 'jpg'
$file_ext = explode('.', $file);

$new_file_names[] = $id_des_letzten_datensatz++.'-'.$file_id.$file_ext[1];
}
so in etwa.

sodiummd
20.02.2005, 16:55:54
ok, also den datensatz hol ich mir ja mit mysql_result() allerdings weiß ich jetzt wieder nicht, welchen befehl mir die letzte zeile ausgibt. im buch hab ich hier nur

mysql_result(SQL-Ergebnis, Zeile, Spalte); stehen... ok, wenn ich zeile und spalte durch zahlen austausche kann ich auf bestimmte zugreifen, aber ich brauch ja jeweils immer die letzte...???

sodiummd
20.02.2005, 18:07:33
sag mal, hab ich in der foreach schleife was falsch gemacht???


foreach($files as $name){
move_uploaded_file($files, "$DOCUMENT_ROOT/gospider/spinnendatenbank/img/$files_name");
echo "<table width="100%" border="1">n";
echo "<tr><td class="headerInfo">Die Datei $file_4_name wurde erfolgreich hochgeladen!</td></tr>n";
echo "</table>n";
}

der schreibt zwar den namen in die db (ok, hat ja damit nix zu tun) läd aber die bilder nicht ins verzeichnis...

|Coding
20.02.2005, 18:54:30
hi,

ändere: move_uploaded_file($files //..
mal in: move_uploaded_file($name //...

müsste dann klappen.

sodiummd
20.02.2005, 19:21:11
habsch gemacht, er hat auch was in den ordner verschoben, allerdings hieß die datei array und damit konnte ich nix anfangen...

achso und wie ging das jetzt genau mit der letzten zeile auslesen. wie gesagt, ich denk mir mal mit mysql_result, allerdings wie immer wieder die letzte???

|Coding
20.02.2005, 19:26:25
darf ich noch mal dein aktuelles script sehn?

sodiummd
20.02.2005, 19:39:22
lieber nicht*g*

büdde

<?php
require("../hidden/biblio2.php");
include("../hidden/info.php");
chmod ("../img/", 0755);

if(!isset($set))
{
// file_1
$tempname_1 = $_FILES['file_1']['tmp_name'];
$name_1 = $_FILES['file_1']['name'];
$type_1 = $_FILES['file_1']['type'];
$size_1 = $_FILES['file_1']['size'];
if($type_1 != "image/gif" && $type_1 != "image/jpeg" && $type_1 != "image/jpg") {
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if ($size_1 > "900000") {
$err[] = "Die Datei welche du hochladen willst, ist zu gross!Maximale Dateigrosse beträgt 50 KB!";
}
//file_2
$tempname_2 = $_FILES['file_2']['tmp_name'];
$name_2 = $_FILES['file_2']['name'];
$type_2 = $_FILES['file_2']['type'];
$size_2 = $_FILES['file_2']['size'];
if($type_2 != "image/gif" && $type_2 != "image/jpeg" && $type_2 != "image/jpg") {
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if ($size_2 > "900000") {
$err[] = "Die Datei welche du hochladen willst, ist zu gross!Maximale Dateigrosse beträgt 50 KB!";
}

//file_3
$tempname_3 = $_FILES['file_3']['tmp_name'];
$name_3 = $_FILES['file_3']['name'];
$type_3 = $_FILES['file_3']['type'];
$size_3 = $_FILES['file_3']['size'];
if($type_3 != "image/gif" && $type_3 != "image/jpeg" && $type_3 != "image/jpg") {
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if ($size_3 > "900000") {
$err[] = "Die Datei welche du hochladen willst, ist zu gross!Maximale Dateigrosse beträgt 50 KB!";
}

//file_4
$tempname_4 = $_FILES['file_4']['tmp_name'];
$name_4 = $_FILES['file_4']['name'];
$type_4 = $_FILES['file_4']['type'];
$size_4 = $_FILES['file_4']['size'];
if($type_4 != "image/gif" && $type_4 != "image/jpeg" && $type_4 != "image/jpg") {
$err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden.";
}
if ($size_4 > "900000") {
$err[] = "Die Datei welche du hochladen willst, ist zu gross!Maximale Dateigrosse beträgt 50 KB!";
}

seitenAnfang("Neues Tier aufnehmen");
echo "<h1>Neues Tier aufnehmen</h1>n";
echo "<form action="$PHP_SELF" method="post" enctype="multipart/form-data">n";
echo "<input type="hidden" name="set" value="true">n";
echo "<table border="1">n";

echo "<tr>n";
echo "<td><b>Unterfamilie:</b></td>n";
echo "<td>n";
echo "<select name="f_u_fam" size="1"><option>$t1<option>$t2<option>$t3<option>$t4<option>$t5<option>$t6<option>$t7<option>$t8<option>$t9<option>$t10<option>$t11<option>$t12</select>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Lateinische Gattungsbezeichnung:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_lat_gattung" size="50" maxlength="50">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Lateinische Artenbezeichnung:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_lat_art" size="50" maxlength="40">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Deutsche Bezeichnung</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_deut" size="50" maxlength="50">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Übersetzung Gattung:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_ue_gat" size="50" maxlength="254">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Übersetzung Art:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_ue_art" size="50" maxlength="254">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Herkunft:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_herkunft" size="50" maxlength="90">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Größe:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_groesse" size="50" maxlength="90">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Lebensweise:</b></td>n";
echo "<td>n";
echo "<select name="f_lebensweise" size="1"><option>$lw1<option>$lw2<option>$lw3</select>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Haltung:</b></td>n";
echo "<td>n";
echo "<select name="f_haltung" size="1"><option>$hg1<option>$hg2<option>$hg3<option>$hg4</select>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Temperatur:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_temp" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Luftfeuchtigkeit:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_luftfe" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Zucht:</b></td>n";
echo "<td>n";
echo "<textarea rows="10" name="f_zucht" cols="60"></textarea>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Beschrieben von:</b></td>n";
echo "<td>n";
echo "<input type="text" name="f_beschrieben_von" size="30" maxlength="30">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Artenschutz:</b></td>n";
echo "<td>n";
echo "<input type="checkbox" name="f_artenschutz" value="WA II">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Beschreibung:</b></td>n";
echo "<td>n";
echo "<textarea rows="10" name="f_beschreibung" cols="60"></textarea>n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Bild 1:</b></td>n";
echo "<td>n";
echo "<input name="file_1" type="file">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Bild 2:</b></td>n";
echo "<td>n";
echo "<input name="file_2" type="file">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Bild 3:</b></td>n";
echo "<td>n";
echo "<input name="file_3" type="file">n";
echo "</td>n";
echo "</tr>n";

echo "<tr>n";
echo "<td><b>Bild 4:</b></td>n";
echo "<td>n";
echo "<input name="file_4" type="file">n";
echo "</td>n";
echo "</tr>n";

echo "</table>n";
echo "<p>n";
echo "<input type="submit" value="Daten abspeichern">n";
echo "<input type="reset" value="Daten verwerfen">n";
echo "</form>n";
} //!isset($set)
else
{
include("../hidden/db_connect2.php");
seitenAnfang("Das Tier wurde der Datenbank erfolgreich hinzugefügt");
if(empty($err)) {
foreach($files as $name){
move_uploaded_file($name, "$DOCUMENT_ROOT/gospider/spinnendatenbank/img/$files");
echo "<table width="100%" border="1">n";
echo "<tr><td class="headerInfo">Die Datei $files wurde erfolgreich hochgeladen!</td></tr>n";
echo "</table>n";
}
echo "<table width="100%" border="1">n";
echo "<tr>n";
echo "<td width="25%" class="boxText">$file_1_name</td>n";
echo "<td width="25%" class="boxText">$file_2_name</td>n";
echo "<td width="25%" class="boxText">$file_3_name</td>n";
echo "<td width="25%" class="boxText">$file_4_name</td>n";
echo "</tr>n";
echo "<tr>n";
echo "<td><img src="../img/$file_1_name"></td>n";
echo "<td><img src="../img/$file_2_name"></td>n";
echo "<td><img src="../img/$file_3_name"></td>n";
echo "<td><img src="../img/$file_4_name"></td>n";
echo "</tr>n";
echo "</table>n";

if(@mysql_connect($host, $user, $pwd))
{
if(@mysql_select_db($dbname))
{
$sql = "INSERT INTO $tblname1 (u_fam, lat_gattung, lat_art, deut, ue_gat, ue_art, herkunft, groesse, lebensweise, haltung, temp, luftfe, zucht, beschrieben_von, artenschutz, beschreibung, bild1, bild2, bild3, bild4) VALUES ("
. "'$f_u_fam', "
. "'$f_lat_gattung', "
. "'$f_lat_art', "
. "'$f_deut', "
. "'$f__ue_gat', "
. "'$f_ue_art', "
. "'$f_herkunft', "
. "'$f_groesse', "
. "'$f_lebensweise', "
. "'$f_haltung', "
. "'$f_temp', "
. "'$f_luftfe', "
. "'$f_zucht', "
. "'$f_beschrieben_von', "
. "'$f_artenschutz', "
. "'$f_beschreibung', "
. "'$file_1_name', "
. "'$file_2_name', "
. "'$file_3_name', "
. "'$file_4_name');";
if(@mysql_query($sql))
{
echo "<h1>Eintrag erfolgreich</h1><hr>n";
echo "Das neue Tier <b>$f_lat_gattung $f_lat_art und das Bild $files</b> wurde erfolgreich eingetragen.<p><hr>";
}
else
{
echo "Der Datensatz konnte leider nicht gespeichert werden. ";
echo "Schau nochmal nach, was denn fehlt.<p>n";
}
} //mysql_select_db()
else
echo "<br><i>Verbindung zur Datenbank ist im Moment nicht m&ouml;glich!</i><br>n";
mysql_close();
}//mysql_connect()
}
else
echo "<br><i>Der Server ist wegen Wartungsarbeiten vor&uuml;bergehend nicht erreichbar.</i><br>n";
} //else-Zweig !isset($set)
back(3);
seitenEnde();
?>

und als arrays hab ich das so gemacht


$files = array("$file_1", "$file_2", "$file_3", "$file_4");
$name = array("$file_1_name", "$file_2_name", "$file_3_name", "$file_4_name");


ich denk mir mal, das ich irgendwas mit den arrays falsch gemacht hab...

|Coding
20.02.2005, 21:32:51
also irgendwie durchschaue ich dein script so langsam nicht mehr. vielleicht bringst du da erst mal etwas übersicht rein, sprich alles raus was 'unsinn' ist und mal etwas sortieren.

xabbuh
20.02.2005, 21:57:41
Bezüglich letzter Datensatz: Schau dir mal die Funktion mysql_insert_id an.

sodiummd
21.02.2005, 09:57:00
ich hab das jetzt mal mit dem chmod probiert, allerdings kann ich wieder nur bestimmten files die zugriffsrechte geben oder gibts ne variable für alle files im ordner. hab aich schon probiert mit
chmod ("../img", 0766); aber dann setzt er auch nur den ordner auf 766 und nicht das, was drin ist...

|Coding
21.02.2005, 09:58:19
du musst jede datei einzeln setzen, oder alle mit einer schleife.

sodiummd
21.02.2005, 10:00:04
wenn ich in dem ordner später 100 bilder hab, kann ich dich nicht im script 100 mal
chmod ("../img*", 0766); stehen haben

und mit der schleife...??? da häng ich dann doch wieder. ich hab das schon mit der anderen schleife nicht verstanden. hab mir das auch nochmal im buch durchgelesen.. blick da aber irgendwie nicht durch...

|Coding
21.02.2005, 10:03:20
später machen ist auch quark. setz die rechte doch direkt nach dem upload.

xabbuh
21.02.2005, 10:13:18
Und wenn du die Zugriffsrechte aller Dateien in einem Verzeichnis ändern möchtest, solltest du dir mal die Funktion readdir() anschauen, mit der sich ein Verzeichnis auslesen lässt.

sodiummd
21.02.2005, 10:23:43
ok, also das bild wird jetzt hochgeladen, die zugriffsrechte werden auf 766 gesetzt (macht er auch) aber er zeigt sie trotzdem nicht an, der pfad stimmt...

|Coding
21.02.2005, 10:28:57
was heißt "er zeigt sie nicht an"? sind die files nicht im ordner, kannst du sie nicht öffnen?

sodiummd
21.02.2005, 10:35:34
ich kann sie mit dem ftp programm sehen, also sie sind im ordner, der pfad stimmt auch, die zugriffsrechte auch, aber sie werden nicht angezeigt, und wenn ich den link direkt eingebe, dan sagt er mir, das es die seite nicht gibt...

|Coding
21.02.2005, 10:42:24
was für rechte haben die files denn? haben die sicher 766?

sodiummd
21.02.2005, 10:45:25
alle im ordner haben 766... haben jetzt jeden einzelnen durchgeklickt...

|Coding
21.02.2005, 11:34:00
mit den rechten müssen sich die dateien öffnen lassen, dann musst du den pfad irgendwie falsch eingegeben haben...

xabbuh
21.02.2005, 11:35:16
Wie sieht der HTML-Quelltext aus, mit du versuchst die Bilder anzuzeigen?

sodiummd
21.02.2005, 12:02:02
ich habs jetzt doch noch hinbekommen. ich speichere die bilder jetzt einfach in nem anderen ordner und es funzt... *freu*

so, jetzt nurnoch die dateien umbenennen. also ich hole mir die letzte ID. wenn ich sie aber mit printf mysql_insert_ID hole, dann sagt er mir "0" und last_insert_ID kenn er nicht. und dann wieder das problem mit der foreach schleife. da blick ich ja, wie gesagt nun garnicht durch...

|Coding
21.02.2005, 12:22:14
ich wenn du die bilder im alten ordner nicht angezeigt bekommen hast, dann deswegen, weil der ordner nicht die korrekten rechte hatte...

zum anderen mysql_insert_id() musst du nach dem einfügen des datensatzes ausführen. die funktion liefert dir den wert des letzten auto_increment zurück, welcher in der tabelle eingefügt wurde. war der letzte insert in die tabelle ohne auto_increment, liefert die funktion 0 zurück!

sodiummd
21.02.2005, 12:46:49
aber die sind doch alle mit auto incre... oder muss ich noch irgendwo reinschreiben, in welcher spalte der auto ist???

|Coding
21.02.2005, 12:57:33
wie sieht den der teil mit mysql_insert_id aus?

sodiummd
21.02.2005, 13:35:42
also wenn du die spalte für die ID meinst, die sieht so aus

ID INT 4 UNSIGNED NOTNULL auto_increment

|Coding
21.02.2005, 14:14:57
nein, ich meine den php code...

xabbuh
21.02.2005, 16:23:05
Vom Prinzip her muss der Fileupload und Eintrag in die Datenbank etc. so ablaufen:

<?php
$sql = "INSERT INTO ...";
mysql_query($sql);

$id = mysql_insert_id();

move_uploaded_file($file, $id . '.endung');
?>

sodiummd
21.02.2005, 16:52:54
ähm, ich glaub ich werd langsam doof. gestern hab ich noch gewusst, wie ich die "such" seite machen wollte... huete weiß ich nichts mehr.

kennt jemand eine beispielseite, wie ich mit hilfe eines Optionsfeldes mir bestimmte spalten aus einer db holen kann.

sodiummd
21.02.2005, 17:13:27
komischer weise wird mir bei dem script nur die erste zeile der spalte angezeigt, müsste es aber nciht alles zeigen???

<?
include ("hidden/db_connect2.php");

mysql_connect($host, $user, $pwd) or
die("Verbindung nicht möglich");
mysql_select_db($dbname);

$sql="select lat_gattung from tbltiere";
$result=mysql_query($sql);
$spalte=mysql_fetch_array($result);
echo "$spalte[lat_gattung]";
?>

sodiummd
21.02.2005, 17:32:59
wo ich gerade mal dabei bin, euch tot zuquatschen.

kennt ihr das problem mit dem IE und den iframes mit dem scrollbalken unten??? kennt ihr da irgendeine möglichkeit???

hab jetzt auch schon einiges ausprobiert, aber es funzt absolut nichts... der horizontale bleibt...*heul*

xabbuh
21.02.2005, 18:44:23
komischer weise wird mir bei dem script nur die erste zeile der spalte angezeigt, müsste es aber nciht alles zeigen???
Nein, das ist schon richtig so, da du ja keine Schleife verwendest: http://tut.php-q.net/mysql-select-php.html#u2


kennt ihr das problem mit dem IE und den iframes mit dem scrollbalken unten??? kennt ihr da irgendeine möglichkeit???
1. Auf Frames verzichten bzw. 2. den Inhaltsbereich so breit zu machen, dass er komplett in den Frame passt.

sodiummd
21.02.2005, 19:04:54
die angezeigte tabelle ist 600 px, der frame ist 660 px, also daran kann es ja nicht liegen... hab gelesen, das der IE bei frames immer einen horizontalen scrollbalken macht, wenn ein verticaler da ist...

xabbuh
21.02.2005, 19:16:47
die angezeigte tabelle ist 600 px, der frame ist 660 px, also daran kann es ja nicht liegen... hab gelesen, das der IE bei frames immer einen horizontalen scrollbalken macht, wenn ein verticaler da ist...
Auch gut möglich. Besser ist es sowieso auf Frames zu verzichten und stattdessen ein <div>-Element mit der Eigenschaft overflow:scroll (http://de.selfhtml.org/css/eigenschaften/positionierung.htm#overflow) zu wählen.

sodiummd
21.02.2005, 19:20:21
wie ist denn das mit den divs, hab noch nie damit gearbeitet. ich will das jaso haben, das nur der teil neu geladen wird, der sich verändert.

xabbuh
21.02.2005, 19:26:23
Das wirst du damit nicht hinkriegen. Aber damit könntest du zumindest die Scrollbars hinbekommen.
Hast du es testweise mal mit einer Tabellenbreite von 500 probiert?

sodiummd
21.02.2005, 19:28:26
auch schon, selbst wenn ich nur links lauter buchstaben nach unten gesetzt habe, macht er das. weil sobald ein verticaler scrollbar entsteht, nimmt er ein paar pixel vom frame weg udn die versucht er mit dem horizontalen wieder auszugleichen, auch wenn er das nicht braucht...

xabbuh
21.02.2005, 19:32:02
Dann wird das wohl ein Problem des Internet Explorers sein.

sodiummd
21.02.2005, 19:42:41
ist es ja auch. ich will es aber weg haben... dis sieht doof aus*g*

xabbuh
21.02.2005, 20:05:22
ist es ja auch. ich will es aber weg haben... dis sieht doof aus*g*
Die Alternativen kennst du ja jetzt... :-)

sodiummd
22.02.2005, 11:24:36
habt ihr eventuell mal ein paar beispielseiten, bzw. infoseiten über div's. hab da noch nicht wirklich was gefunden...

danke

|Coding
22.02.2005, 11:26:07
schau mal hier: http://de.selfhtml.org/

sodiummd
22.02.2005, 11:49:21
gucke mal bitte, bei dem script müsste er doch theoretisch prüfen, ob die seite lesbar ist und wenn, sie dann auch ausgeben. allerdings bringt er mir da nen fehler...


<?
$ergebnis = is_readable ("shop/index.php");
if ($erbegnis) {
$artikel_array = File ($shop/index.php");

echo ".$artikel_array[0]."n";
}
else
{
echo "seite nicht verfügbarn";
}
?>

FEHLER: Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /***/***/gospider/test1.php on line 14

die seite ist aber vorhanden. wenn ich ehrlich bin, ist das sogar einbeispiel aus einem buch... da denk t man doch, das die wenigstens funzen...

|Coding
22.02.2005, 11:57:50
($shop/index.php"); <-- fehler

("$shop/index.php");
oder
($shop."/index.php");

xabbuh
22.02.2005, 11:59:31
Oder auch 'shop/index.php'

sodiummd
22.02.2005, 12:52:50
ich mal wieder...

also, ich hab das design jetzt in ein tampalte gepackt und dort nen platzhalter reingesetzt ($inhalt)

der phpschnatter ist jetzt getrennt davon...


<?
function gettemplate($template,$endung="tpl")
{
return str_replace(""","\"",implode("",file($template.".".$endung)));
}
function dooutput($template) {
echo $template;
}

//Der Inhalt wird z.B. aus einer Datenbank geholt
$inhalt = $row[inhalt];
//jetzt der Aufruf, wo das Template geholt wird und die Platzhalter ersetzt werden.
eval("dooutput("".gettemplate("design/index")."");");
//Bei eval() muss beachtet werden, dass alle Hochkommas und Variablenzeichen ($) durch ein Backslash markiert werden

//inhalt.php
include('config.php');

if(isset($_GET['section']) AND isset($dateien[$_GET['section']]))
{
//Ist eine $_GET Variable vorhanden wird PHP angewiesen
//zu prüfen ob die Datei existiert und diese dann zu laden

if(!file_exists($dateien[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";

include $dateien[$_GET['section']];
}
else
{
//Wenn keine Variable oder Definition vorhanden ist
//lade die Fehlerseite bzw. die Indexseite
include $dateien['error'];
}
?>


$inhalt soll in eine tabelle eingefügt werden, er läd die neue datei aber unter der tabelle...

zu sehen hier (http://gospider.net/inhalt.php)

die verlinkung ist bis jetzt nur "impressum" alles andere geht woanders hin...

|Coding
22.02.2005, 13:13:09
siehe: http://www.selfphp.com/forum/showthread.php?p=58017#post58017