 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
27.12.2005, 16:42
|
#1
|
|
TP-Insider
Registriert seit: Feb 2004
Ort: Schweiz
|
Was ganz einfaches: .txt aus Formular generieren und auf Server speichern
Hallo
Der Titel sagt eigentlich alles, über die Suche habe ich nichts passendes gefunden.
Mein bisherige Code sieht so aus:
PHP-Code:
$txt = $_POST['beschreibung']; if (!isset($txt)) { $dateiname_txt = $dateiname . ".txt"; $datei = "../galerie/bilder/$ordner/$dateiname_txt"; $gdatei = fopen($datei, "w+") or exit('Datei kann nicht geöffnet werden!'); flock($gdatei, LOCK_EX) or die('$gdatei kann nicht gesperrt werden...'); $inhalt = fread($gdatei, filesize("$datei")); rewind($gdatei); fwrite($gdatei, "$txt"); fclose($gdatei); }
Leider funktioniert das nicht... (Keine Fehlermeldung) Die Datei selber (anderer Teil des Scripts) wird korrekt hochgeladen. $dateiname und $ordner wird weiter oben korrekt abgefüllt.
Hat jemand einen Gratistip für mich?
Dankeschön!
__________________
Gruss belimo
Meine Lieblings-Firefox-Erweiterung: Firebug
|
|
|
27.12.2005, 16:50
|
#2
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Mönchengladbach
|
Spontan ist mir folgendes aufgefallen:
PHP-Code:
if(!isset($txt))
Diese Bedinung ist nur erfüllt, wenn $txt nicht gesetzt ist...
Meinst du nicht eher
PHP-Code:
if(isset($txt))
?
Noch eine kleine Anmerkung:
PHP-Code:
fwrite($gdatei, "$txt");
Die "" sind hier überflüssig und verwirren nur. Besser wäre
PHP-Code:
fwrite($gdatei, $txt);
__________________
GCM d- s: a-- C++$ UL P L+ E--- W++ N o? K- w+ !O !M !V PS+ PE Y PGP- t+ 5? X R- tv- b- DI- !D G e h! r++ z?
Geändert von Jupp (27.12.2005 um 16:52 Uhr).
|
|
|
27.12.2005, 16:57
|
#3
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Hast Du in dem Verzeichnis /$ordner Schreibrechte?
Besteht das Verzeichnis $ordner schon? Sonst erst eines erstellen!
die statt exit!
$gdatei = fopen($datei, "w+") or exit('Datei kann nicht geöffnet werden!');
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
27.12.2005, 17:10
|
#4
|
|
TP-Insider
Registriert seit: Feb 2004
Ort: Schweiz
|
Danke erstmals!
Jupp's Bemerkungen habe ich erstmals so geändert. klar
Betreff Schreibrechte:
In den Ordnern $ordner werden ja die Bilder korrekt hochgeladen. Können Bilder auch ohne Schreibrechte hochgeladen werden?
Wenn ja, kann es sein dass ich keine habe. Ist Schreibrechte = chmod 777???
Ordner bestehen natürlich. Struktur:
/bilder/ordner1
/ordner2
/ordner3
die oder exit: Kommt doch nicht drauf an oder? Ich meine wenn die Datei nicht geöffnet werden kann kann er ja ==> exit  oder?
Das Script kann dann ja verlassen werden, ist ja überflüssig wenn die Datei nicht geöffnet werden kann.
Danke für die superschnelle Unterstützung. Ich liebe das TP 
__________________
Gruss belimo
Meine Lieblings-Firefox-Erweiterung: Firebug
|
|
|
27.12.2005, 17:18
|
#5
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Mönchengladbach
|
Wenn die Datei schon durch das Script erstellt wurde, hat das Script in dem Ordner auch Schreibrechte.
__________________
GCM d- s: a-- C++$ UL P L+ E--- W++ N o? K- w+ !O !M !V PS+ PE Y PGP- t+ 5? X R- tv- b- DI- !D G e h! r++ z?
|
|
|
27.12.2005, 17:21
|
#6
|
|
TP-Insider
Registriert seit: Feb 2004
Ort: Schweiz
|
Hm, ja also sicherheitshalber habe ich dem gesamten Ordner Bilder noch chmod 777 verpasst.
Neu tritt folgende Fehlermeldung auf:
Warning: fread(): Length parameter must be greater than 0. in /home/hotelgut/public_html/kaloei/admin/neuesbild.php on line 78
Deshalb der vollständigkeits halber hier das gesamte Script:
PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Neues Bild erfassen</title>
<link href="../style_admin.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Neues Bild erfassen</h1>
<form action="<?php print $PHP_SELF ?>" method="post" enctype="multipart/form-data" name="galerie">
<table width="100%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td>Bild auswählen: </td>
<td><input type="file" name="dateiname"></td>
<td> </td>
</tr>
<tr>
<td valign="top">Bildbeschreibung:</td>
<td><textarea name="beschreibung" cols="50" rows="3" id="beschreibung"></textarea></td>
<td> </td>
</tr>
<tr>
<td>Kategorie</td>
<td><select name="kategorie">
<option value="Unsere Musik">Unsere Musik</option>
<option value="Unsere Familie">Unsere Familie</option>
<option value="Unsere Auftritte">Unsere Auftritte</option>
</select></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Übertragen">
<input type="hidden" name="MAX_FILE_SIZE" value="100000"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</form>
<hr>
<?php
// BILD HOCHLADEN (Funktioniert einwandfrei)
$dateiname = $_FILES['dateiname']['name'];
$tmp_name = $_FILES['dateiname']['tmp_name'];
if (!isset($dateiname)) {exit;}
/*if (!is_uploaded_file($tmp_name)) {
echo 'Fehler!<br>';
switch ($_FILES['dateiname']['error']) {
case 1: echo "Die Datei überschreitet die maximale Grösse von 2 Megabytes."; break;
case 2: echo "Die Datei überschreitet die maximale Grösse von Bytes."; break;
case 3: echo "Die Datei wurde nur teilweise übertragen."; break;
case 4: echo "Sie haben vergessen, die Datei auszuwählen."; break;
}
exit;
}*/
$ordner = $_POST['kategorie'];
$uploadname = "../galerie/bilder/$ordner/$dateiname";
move_uploaded_file($tmp_name, $uploadname);
printf("Die Datei <b>%s</b> befindet sich auf dem Webserver im Ordner <b>%s</b>!<br>\n", $_FILES['dateiname']['name'], $uploadname);
printf("Sie ist <b>%s Bytes</b> gross und vom Typ <b>%s</b>.<br>\n", $_FILES['dateiname']['size'], $_FILES['dateiname']['type']);
// BILDBESCHREIBUNG .TXT ERSTELLEN (Problemfall)
$txt = $_POST['beschreibung'];
if (isset($txt)) {
$dateiname_txt = $dateiname . ".txt";
$datei = "../galerie/bilder/$ordner/$dateiname_txt";
$gdatei = fopen($datei, "w+") or die('Datei kann nicht geöffnet werden!');
flock($gdatei, LOCK_EX) or die('$gdatei kann nicht gesperrt werden...');
$inhalt = fread($gdatei, filesize("$datei"));
rewind($gdatei);
fwrite($gdatei, $txt);
fclose($gdatei);
}
?>
</body>
</html>
__________________
Gruss belimo
Meine Lieblings-Firefox-Erweiterung: Firebug
|
|
|
27.12.2005, 17:22
|
#7
|
|
TP-Insider
Registriert seit: Feb 2004
Ort: Schweiz
|
Zitat:
|
Zitat von Jupp
Wenn die Datei schon durch das Script erstellt wurde, hat das Script in dem Ordner auch Schreibrechte.
|
Ne der Ordner wurde manuell erstellt. Aber wie gesagt: chmod777 wurde vergeben
__________________
Gruss belimo
Meine Lieblings-Firefox-Erweiterung: Firebug
|
|
|
27.12.2005, 17:30
|
#8
|
|
TP-Insider
Registriert seit: Jul 2004
Ort: Mönchengladbach
|
Bist du dir ganz sicher, dass die Datei ("../galerie/bilder/$ordner/$dateiname_txt";) auch vorhanden ist? So wie ich das sehe, gibt die Anweisung
PHP-Code:
filesize("$datei")
einen Fehler zurück, weil die Datei nicht vorhanden ist.
__________________
GCM d- s: a-- C++$ UL P L+ E--- W++ N o? K- w+ !O !M !V PS+ PE Y PGP- t+ 5? X R- tv- b- DI- !D G e h! r++ z?
|
|
|
27.12.2005, 18:43
|
#9
|
|
TP-Insider
Registriert seit: Feb 2004
Ort: Schweiz
|
Hm, habe es mir jetzt einfach gemacht. Das Scipt ist nicht ganz selbstgemacht.
D.h. ich habe gemerkt, dass ich den Codeabschnitt (der mit Fehlermeldung) gar nicht brauche:
PHP-Code:
flock($gdatei, LOCK_EX) or die('$gdatei kann nicht gesperrt werden...');
$inhalt = fread($gdatei, filesize("$datei"));
rewind($gdatei);
Soll für das gut sein:
Sperrung, neueste Einträge zuerst (ist eigentlich ein Gästebuchscript), und Datenzeiger wieder an den Anfang setzen. Weil ich das Script für eine Galerie benötige, habe ich eh für jedes Bild eine eigene txt => daher überflüssig.
Das Problem wäre also gelöst.  Nun hab ich noch ein anderes mit einer rename-Funktion. Aber das krieg ich hoffentlich selber hin.
Danke jedenfalls für die Unterstützung!
__________________
Gruss belimo
Meine Lieblings-Firefox-Erweiterung: Firebug
|
|
|
28.12.2005, 01:41
|
#10
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Die Insel in Europa die aus Europa erst Europa macht _________________________ Nähe Lenzburg
|
Wegen Rechte: Zuvor wusste ich ja nicht, dass die Bilder in den gleichen Ordner kommen.
Statt $Datei mit strlen() die Länge der Beschreibung festlegen und einsetzen
bei filesize("$datei")
__________________
[321 Name="Joe"]
wie immer, lieber gleich mit notepad, dem Editor meines Vertrauens
[/321]
use my HTML-Tester
Motto'06: Mut zur deutschen Sprache!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 Uhr.
|
 |