PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

16-09-2003, 15:15
|
baschi
Junior Member
|
|
Registriert seit: Sep 2003
Beiträge: 95
|
|
Probleme mit Bild-Upload!
Moin Moin,
bin zwar kein blutiger Anfänger mehr, aber ich habe ein sehr grosses Problem dem ich schnellstmöglich abhilfe schaffen möchte!
Ich habe auf meiner Seite eine Mitgliederliste unter PHP und MySQL, welche folgende Felder enthält:
- Nickname im Forum
- Name
- Email
- Land
- Ort
- PLZ
- Fahrzeug
- Kommentar
- Datum der Eintragung
und
- Bild
Und das Bild bereitet mir arge Schwierigkeiten! Folgendes Eintrage Formular habe ich selber und mit Hilfe von Dreamweaver erzeugt:
Code:
<?php require_once('Connections/cmflphp.php'); ?>
<?php require_once('Connections/cmflphp.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO fl_php_data (nickname, name, email, land, ort, plz, fahrzeug, kommentar, datum, visible, bild) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, CURDATE(), 'N', %s)",
GetSQLValueString($HTTP_POST_VARS['nickname'], "text"),
GetSQLValueString($HTTP_POST_VARS['name'], "text"),
GetSQLValueString($HTTP_POST_VARS['email'], "text"),
GetSQLValueString($HTTP_POST_VARS['land'], "text"),
GetSQLValueString($HTTP_POST_VARS['ort'], "text"),
GetSQLValueString($HTTP_POST_VARS['plz'], "text"),
GetSQLValueString($HTTP_POST_VARS['fahrzeug'], "text"),
GetSQLValueString($HTTP_POST_VARS['kommentar'], "text"),
GetSQLValueString($HTTP_POST_VARS['datum'], "date"),
GetSQLValueString($HTTP_POST_VARS['visible'], "text"),
GetSQLValueString($HTTP_POST_VARS['bild'], "text"));
mysql_select_db($database_cmflphp, $cmflphp);
$Result1 = mysql_query($insertSQL, $cmflphp) or die(mysql_error());
$insertGoTo = "mailtest.php";
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $HTTP_SERVER_VARS['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
mysql_select_db($database_cmflphp, $cmflphp);
$query_Recordset1 = "SELECT * FROM fl_php_data";
$Recordset1 = mysql_query($query_Recordset1, $cmflphp) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_select_db($database_cmflphp, $cmflphp);
$query_Recordset2 = "SELECT * FROM fl_php_laender";
$Recordset2 = mysql_query($query_Recordset2, $cmflphp) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 = mysql_num_rows($Recordset2);
?>
<html>
<head>
<title>Die Mitsubishi Colt Tuning Seite</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div align="center"><strong><font size="4" face="Arial, Helvetica, sans-serif">In die Fanliste eintragen!
</font></strong></div>
<form method="post" name="form1" enctype="multipart/form-data" action="<?php echo $editFormAction; ?>">
<br>
<table align="center">
<tr valign="baseline">
<td width="96" align="right" nowrap><strong><font size="-1" face="Arial, Helvetica, sans-serif">Alias
im Forum:</font></strong></td>
<td width="344"><input type="text" name="nickname" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Name:*</font></strong></td>
<td><input type="text" name="name" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Email:*</font></strong></td>
<td><input type="text" name="email" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Land:*</font></strong></td>
<td>
<select name="land">
<?php
do {
?>
<option value="<?php echo $row_Recordset2['land']?>" ><?php echo $row_Recordset2['land']?></option>
<?php
} while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));
?>
</select>
</td>
<tr>
<tr valign="baseline">
<td nowrap align="right"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Ort:*</font></strong></td>
<td><input type="text" name="ort" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Plz:*</font></strong></td>
<td><input type="text" name="plz" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Fahrzeug:*</font></strong></td>
<td><input type="text" name="fahrzeug" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Fahrzeug:*</font></strong></td>
<td><input type="file" name="bild" value="" size="32">
</td>
</tr>
<tr valign="baseline">
<td nowrap align="right" valign="top"><strong><font size="-1" face="Arial, Helvetica, sans-serif">Kommentar:</font></strong></td>
<td>
<textarea name="kommentar" cols="50" rows="5"></textarea>
</td>
</tr>
<tr valign="baseline">
</tr>
<tr valign="baseline">
<td height="21" align="right" nowrap> </td>
<td><font color="#FF0000" size="-2" face="Arial, Helvetica, sans-serif">Mit
* gekennzeichnete
Felder sind Pflichtfelder!</font></td>
</tr>
<tr valign="baseline">
<td nowrap align="right"> </td>
<td><input type="submit" value="Datensatz einfügen">
</td>
</tr>
</table>
<input type="hidden" name="datum" value="">
<input type="hidden" name="visible" value="">
<input type="hidden" name="MM_insert" value="form1">
</form>
<p align="center"><font color="#FF0000" size="-2" face="Arial, Helvetica, sans-serif"><strong> Dein
Eintrag wird nicht sofort in der Liste sichtbar sein, denn um Missbrauch
zu vermeiden werden alle Einträge vorab von einem Admin kontrolliert!</strong></font></p>
<form method="post" name="form2">
</form>
<p> </p>
</body>
</html>
<?php
mysql_free_result($Recordset1);
mysql_free_result($Recordset2);
?>
Die DB hat folgende Struktur:
Code:
CREATE TABLE `fl_php_data` (
`ID` int(10) NOT NULL auto_increment,
`passwort` varchar(50) NOT NULL default '',
`nickname` varchar(50) default NULL,
`name` varchar(50) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`land` varchar(50) NOT NULL default '',
`ort` varchar(50) NOT NULL default '',
`plz` varchar(10) NOT NULL default '',
`fahrzeug` varchar(50) NOT NULL default '',
`kommentar` varchar(255) default NULL,
`datum` date NOT NULL default '0000-00-00',
`visible` varchar(5) NOT NULL default 'no',
`bild` varchar(255) default NULL,
PRIMARY KEY (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=145 ;
Die Spalte 'passwort' ist noch ungenutzt!
Folgenden Gedankengang hatte ich:
Ein User trägt sich ein und läd ein Bild mit hoch, welches in der DB gespeichert wird und dynamisch mit den Daten angezeigt werden kann!
Nun ist es aber so, daß beim abschicken des Formulars alle Felder in der DB richtig ausgefüllt werden, aber das feld 'bild' bleibt leer!
Ich habe schon alles mögliche ausprobiert, auch beim Spalten-Typ 'BLOB' geht es nicht!
Bitte helft mir, gebt mir den entscheidenen Tipp, was ich falsch mache!
Ich sitze schon seit ein paar Stunden davor und komme einfach nicht weiter!
Danke schon mal
Gruß
Baschi
Geändert von baschi (16-09-2003 um 15:24 Uhr)
|

16-09-2003, 15:20
|
schmalle
  Ich Root, Du nix
|
|
Registriert seit: Jun 2001
Ort: Egelsbach FFM
Beiträge: 9.170
|
|
zum einen mal sind zusammengeklickte codes etwas gerauenghaftes! wenn du was lernen willst, versuche es mal ohne klicken
wenn du bilder in der DB speichern willst muss das feld vom typ blob sein! aber sowas macht man eigentlich nicht. das reisst die arme datenbank nämlich ganz schön runter! speicher das bild auf dem server, und in der DB nur den pfad zu dem bild
|

16-09-2003, 15:20
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
ich seh hier weder beim insert eine spalte "bild" noch ein file-field im formular
|

16-09-2003, 15:25
|
baschi
Junior Member
|
|
Registriert seit: Sep 2003
Beiträge: 95
|
|
Sorry, hatte einen alten Quelltext gepostet, jetzt sind im INSERT und im Formular die Felder fürs Bild vorhanden!
|

16-09-2003, 15:26
|
baschi
Junior Member
|
|
Registriert seit: Sep 2003
Beiträge: 95
|
|
Zitat:
Original geschrieben von schmalle
zum einen mal sind zusammengeklickte codes etwas gerauenghaftes! wenn du was lernen willst, versuche es mal ohne klicken
wenn du bilder in der DB speichern willst muss das feld vom typ blob sein! aber sowas macht man eigentlich nicht. das reisst die arme datenbank nämlich ganz schön runter! speicher das bild auf dem server, und in der DB nur den pfad zu dem bild
|
Das ist das eine, aber mein Problem ist etwas anderes!
Wäre nett, wenn Du trotz dem "geklicke" mal schauen könntest!
Danke
|

16-09-2003, 15:30
|
Wurzel
Master  
|
|
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
|
|
na bitte, jetzt sind sie also da
dann such hier im forum mal nach upload bzw move_uploaded_file ... und beherzige den tipp von schmalle.
btw: pack den code mal bitte zwischen die php-tags. ^^ da oben ist ein button dafür bzw [ PHP] [ /PHP] (ohne die leerzeichen)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|