| |
Boardmenü |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Guckloch |
Hier kann man sich über die letzten Beiträge im Board live informieren, das kleine Fenster welches sich durch einen Klick öffnet aktualisiert sich von alleine alle 60 Sekunden.
Guckloch öffnen |
Rechner-Support Toolbar |
|
Team |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Boardsuche |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
Forenliste |
| Ihnen fehlen die Rechte dazu um den Inhalt dieser Box zu sehen. |
|
|
 |
Protokollskript - Problem in Verbindung mit DB |
|
rich
Jungspund

Dabei seit: 02.01.2008
Beiträge: 20
Dieser User hat sich mal bedankt
CPU: Core 2 Duo T7100 @ 1,80 GHZ
 |
|
| Protokollskript - Problem in Verbindung mit DB |
 |
Huhu,
ich hab ein kleines techn. Problem mit meinem Protokolluploadskript.
Der Upload und das anschließende Versenden der Datei per Email funktioniert ohne Probleme, allerdings trägt es nichts in die Datenbank ein, um es von dort ebenfalls auslesen zu können.
Wo liegt in meinem Skript der Fehler?
Ist evtl. ein wenig unsauber programmiert, aber ich bitte um Rücksichtsnahme
Anbei der Code + .rar Archiv
Danke und viele Grüße
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
|
//database.php
<?php
// Connect to database
$mysql_server = "localhost";
$mysql_user = "xyz";
$mysql_pwd = "xyz";
$mysql_db = "xyz";
$connect = mysql_connect("$mysql_server","$mysql_user","$mysql_pwd");
mysql_select_db($mysql_db,$connect);
if (!$connect)
{
echo "<font face=\"Tahoma,Verdana,Arial\" color=\"black\">Die Verbindung zur Datenbank ist z.Z. nicht möglich.<br>Versuchen Sie es bitte <a href=\"javascript:location.reload()\">nocheimal</a>.</font>\n";
exit;
}
php?>
|
|
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
|
// index.php
<?php
include("database.php");
include("mail.php");
php?>
<head>
</head>
<body></body>
<p class="globalhead">Protokollarchiv</p>
<p class="headline">Kategorie1:
<ul>
<?php
$sql = "SELECT id, kategorie, DATE_FORMAT(datum,'%d') as tag, DATE_FORMAT(datum,'%m') as monat, DATE_FORMAT(datum,'%Y') as jahr, file FROM protocol_test WHERE kategorie=1 ORDER BY datum";
$erg = mysql_query($sql);
while (list($id,$kategorie,$tag,$monat,$jahr,$file) = mysql_fetch_row($erg))
{
echo"<li><a href=\"../protokolle/$file\">ProtokollKategorie1 vom $tag.$monat.$jahr</a></li>";
} //endwhile
?>
</ul>
<p class="headline">Kategorie2:</p>
<ul>
<?php
$sql = "SELECT id, kategorie, DATE_FORMAT(datum,'%d') as tag, DATE_FORMAT(datum,'%m') as monat, DATE_FORMAT(datum,'%Y') as jahr, file FROM protocol_test WHERE kategorie=2 ORDER BY datum";
$erg = mysql_query($sql);
while (list($id,$kategorie,$tag,$monat,$jahr,$file) = mysql_fetch_row($erg))
{
echo"<li><a href=\"../protokolle/$file\">ProtokollKategorie2 vom $tag.$monat.$jahr</a></li>";
} //endwhile
php?>
</ul>
<p align="center"><a href="hinzufuegen.php">neues Protokoll hinzufügen</a></p>
<p align="center"><a href="../index.php">Zurück</a></p>
<p> </p>
</body>
</html>
|
|
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
|
// hinzufuegen.php
<?php
include("database.php");
include("mail.php");
if($_POST['add'])
{
if($_FILES['localupload']['name']!="") {
$datum = $_POST['jahr']."-".$_POST['monat']."-".$_POST['tag'];
$endung = substr($_FILES['localupload']['name'], strrpos($_FILES['localupload']['name'],".")+1);
if($_POST['kategorie'] == 1) {
$newFilename = "staru_$datum.$endung";
$to=$strTo_StaRu;
}
else {
$newFilename = "stafue_$datum.$endung";
$to=$strTo_StaFue;
}
move_uploaded_file($_FILES['localupload']['tmp_name'], $protodir."/".$newFilename);
$sql = "INSERT INTO protocol_test (id,kategorie,datum,file) VALUES ($_POST[kategorie],$datum,$newFilename)";
$result = mysql_query($sql);
//Dateianhang als BASE64 Codieren
$datei_content = fread(fopen($protodir."/".$newFilename,"r"),filesize($protodir."/".$newFilename));
$datei_content = chunk_split(base64_encode($datei_content));
$boundary =strtoupper(md5(uniqid(time())));
$subject = "Protokoll vom $_POST[tag].$_POST[monat].$_POST[jahr]";
$mail_header = "From: Protokollpfadfinder <protokoll@pfadfinder-steppenwolf.de>";
/* Generiere einen Boundary */
$boundary = strtoupper(md5(uniqid(time())));
/* Beginne den Mail-Header mit MIME-Mail-Header */
$mail_header .= "\nMIME-Version: 1.0";
$mail_header .= "\nContent-Type: multipart/mixed; boundary=$boundary";
$mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";
/* Hier faengt der normale Mail-Text an */
$mail_content = str_replace("_%Dateiname%_", $newFilename, $mail_content); //aktueller Dateiname noch hinzufügen
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: text/plain"; //$content_type
$mail_header .= "\nContent-Transfer-Encoding: 8bit";
$mail_header .= "\n\n$mail_content";
/* Hier faengt der Datei-Anhang an */
$mail_header .= "\n--$boundary";
$mail_header .= "\nContent-Type: ".$_FILES[$_POST['localupload']]['type']."; name=\"$newFilename\"";
/* Lese aus dem Array $contenttypes die Codierung fuer den MIME-Typ des Anhangs aus */
$mail_header .= "\nContent-Transfer-Encoding: base64";
$mail_header .= "\nContent-Disposition: attachment; filename=\"$newFilename\"";
$mail_header .= "\n\n$datei_content";
/* Gibt das Ende der eMail aus */
$mail_header .= "\n--$boundary--";
mail($to,$subject,"",$mail_header);
}
else {
$uploadfalse = true;
$errMessage = "Es wurde keine Datei zum Hochladen ausgewählt";
}
}
php?>
<body>
<p class="globalhead">Protokollarchiv</p>
<?php
if($uploadfalse) {
Echo "<p><span class=\"errorMessage\">$errMessage</span></p>";
}
if($_POST['add'] && !$uploadfalse)
{
php?>
<p></p>
<p span class="headline">Protokoll erfolgreich hinzugefügt</p>
<p>Ursprünglicher Dateiname: <? echo $_FILES['localupload']['name']; ?> <br />
Neuer Dateiname: <? echo $newFilename; ?></p>
<p>Datei erfolgreich hochgeladen und per Mail verschickt</p>
<p><a href="index.php">zurück zur Protokollübersicht</a> <br />
</p>
<?php
}
else {
php?>
<p class="headline">Neues Protokoll hinzufügen:</p>
<form name="add" method="post" action="" enctype="multipart/form-data">
<table width="393" border="0" cellspacing="4" cellpadding="2">
<tr>
<td width="70">Kategorie:</td>
<td width="300">
<select name="kategorie">
<option value="1">Stammesrunde</option>
<option value="2">Stammesführungsrunde</option>
</select></td>
</tr>
<tr>
<td width="70">Datum:</td>
<td>
<select name="tag">
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="monat">
<option value="01">Januar</option>
<option value="02">Februar</option>
<option value="03">März</option>
<option value="04">April</option>
<option value="05">Mai</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">Dezember</option>
</select>
<select name="jahr">
<option selected value="2008">2008</option>
</select></td>
</tr>
<tr>
<td width="70">Datei:</td>
<td>
<input type="file" name="localupload" size="28"> </td>
</tr>
<tr>
<td colspan="2"> <div align="center">
<input name="add" type="submit" id="add" value="Hinzufügen">
<input type="button" name="Abbrechen" value="Abbrechen" onClick="">
<input type="hidden" value="true" name="add">
</div></td>
</tr>
</table>
</form>
<?php
}
php?>
</body>
</html>
|
|
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
// mail.php
<?php
//Uploaddirectory
$protodir ="./protokolle";
//Mailempfänger definieren
$strTo_StaFue = "fear4ever@gmail.com, "; // Kategorie 2
$strTo_StaRu = $strTo_StaFue;
$strTo_StaRu .= "fear4ever@gmail.com, "; // Kategorie 1
//Mailcontent definieren
$mail_content = "Hallo \n";
$mail_content .= "Es ist wiedereinmal so weit, ein neues Protokoll wurde hochgeladen.\n";
$mail_content .= "Alle verfügbaren Protokolle findet Ihr auch im internen Bereich auf unserer Homepage unter \"Protokollarchiv\"\n\n";
$mail_content .= "Auf Bald\n\n";
$mail_content .= "PS: see attached file(_%Dateiname%_)";
php?>
|
|
DATENBANK:
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
|
--
-- Tabellenstruktur für Tabelle `protocol_test`
--
CREATE TABLE `protocol_test` (
`id` int(11) NOT NULL auto_increment,
`kategorie` text NOT NULL,
`datum` date NOT NULL,
`file` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Daten für Tabelle `protocol_test`
--
|
|
| Dateianhang: |
skript.rar (4 KB, 2 mal heruntergeladen)
|
__________________
"There are 10 kinds of people. Those who understand binary, and those who do not."
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von rich: 22.03.2008 13:55.
|
|
22.03.2008 13:55 |
|
|
| |
|
sile
Programmierer
Dabei seit: 18.07.2006
Beiträge: 90
Dieser User hat sich mal bedankt
 |
|
hallo,
ich würde mal beim insert das feld "id" weg lassen, dann funzt das auch!
greetz
sile
|
|
22.03.2008 14:07 |
|
|
| |
|
tomtaz
Grünschnabel
Dabei seit: 11.03.2008
Beiträge: 3
Dieser User hat sich mal bedankt
CPU: AMD Athlon XP X2 6600+
 |
|
Weiters muss ich hier empfehlen, da du Werte mittels Post in die DB schreibst, mysql_real_escape_string( ) zu verwenden um eine SQL- Injektion auszuschließen!
Dieser Link wird erst nach der Registrierung angezeigt.
|
|
28.03.2008 14:38 |
|
|
| |
|
|
|
 |
|