Zur Navigation

Daten hinzufügen - Bindestrich vor jedem Punkt

1 Marcel (Gast)

Hallo!

Ich habe mein erstes eigenes Script programmiert und vorerst nicht mit einer MySQL Datenbank gearbeitet. Als Alternative verwende ich eine Text-Datei (.txt).

Mein Script dient als Merkliste zu einigen Projekten (die vielleicht schon bald folgen werden...). Dabei habe ich oben ein Formular und darunter die komplette Ausgabe der Datei. Wenn ich etwas in das Formular eingebe, soll es mit einem Klick auf "Hinzufügen" zur aktuellen Liste hinzugefügt werden.

Bisher hat man Script auch einwandfrei funktioniert, bis ich versucht habe nach jedem neueingetragenen Punkt ein <br>, sowie ein Bindestrich (-) zu setzen. Seitdem funktioniert das Eintragen nicht mehr. Ich würde mich über Hilfe freuen:

<form action="myvoc2.php" method="post">
Text der zur <b>MyVoc-Verbesserungsliste</b> hinzugefügt werden soll:<br>
<input type="text" size="75" name="MyVoc">
<input type="submit" value="Hinzufügen"><br><br>
<?PHP
$MyVoc2 = "myvoc.txt";
$Anzahl = count($MyVoc2);
$Datei = fopen ('myvoc.txt', 'r');
echo "<i>";
while (!feof ($Datei))
{
$line = fgets ($Datei, 4096);
echo htmlentities($line) . "<br>";
}
echo "</i>";
echo "Zur Zeit gibt es insgesamt <b>$Anzahl</b> MyVoc-Verbesserungseinträge.<br><br>";
fclose ($Datei)
?>

(Hinzufügeformular / komplette Ausgabe)


<?PHP
$add = fopen ("myvoc.txt","a");
fwrite ($add, "\n"-.$Notiz);
echo "Es wurde folgende Verbesserung zur MyVoc-Liste hinzugefügt (<a href=\"myvoc.php\">zurück</a>):<br><br><i><b>$MyVoc</b></i>";
fclose ($add);
?>

(Antwort auf Hinzufügung)


Vielleicht weiß jemand eine Lösung zu meinem Problem...

EDIT: Eventuelle Erleichterungen wären auch schön.

Mit freundlichen Grüßen,
***

28.01.2006 11:12 | geändert: 28.01.2006 11:15

2 Jörg Kruse

Hallo Marcel,

ich denke der Bindestrich muss als Teil des Strings noch mit zwischen die Anführungszeichen:

fwrite ($add, "\n-".$Notiz);

Löst das das Problem?

28.01.2006 11:34

3 Marcel (Gast)

Nein, leider nicht.

Es sieht derzeit wie folgt aus:
http://profiforum.com/lempix/myvoc.php
Du kannst es ja mal ausprobieren.

Wenn ich das richtig sehe wird zwar ein Zeilenumbruch und ein Bindestrich hinzugefügt, der eingegebene Text allerdings nicht ausgegeben.

EDIT: Kann man irgendwo einsehen wer momentan im Forum online ist?

28.01.2006 11:38 | geändert: 28.01.2006 11:47

4 Jörg Kruse

Die Variable $Notiz hast du in myvoc2.php noch gar nicht definiert? Dem Input-Feld des Formulars zufolge wäre sie folgendermaßen zu definieren:

$add = fopen ("myvoc.txt","a");
$Notiz = $_POST['MyVoc'];
fwrite ($add, "\n-".$Notiz);

Funktioniert es dann?

28.01.2006 12:11

5 Marcel (Gast)

Ah, vielen Dank Jörg. Du bist echt spitze - Problem gelöst! :)

Wenn wir schonmal dabei sind, weißt du warum mein Counter nicht perfekt funktioniert und wie ich <i> besser einbinden kann? Mit einer externen echo-Funktion ist es nicht optimal, oder?

P.S. Was ich aber komisch finde, vorher hatte ich die von dir hinzugefügte Zeile auch nicht drin und trotzdem hat alles funktioniert?!

28.01.2006 12:23 | geändert: 28.01.2006 12:24

6 Jörg Kruse

Statt ...
echo "<i>";
... könntest du auch schreiben:
?>
<i>
<?php
... aber das ist in diesem Fall nicht einfacher ;)

Der Counter zählt die Anzahl der Datei myvoc.txt - was immer 1 ergibt

P.S. Was ich aber komisch finde, vorher hatte ich die von dir hinzugefügte Zeile auch nicht drin und trotzdem hat alles funktioniert?!

Hattest du $Notiz vielleicht vorher anders benannt?

28.01.2006 12:57 | geändert: 28.01.2006 12:57

7 Marcel (Gast)

Okay, dann lass ich das mit dem Kursivschreiben so. Danke.

Den Counter werde ich gleich mal bearbeiten. Dachte er zählt die beschriebenen Zeilen der Datei.

Ja, ich hatte es vorher anders benannt. Stimmt. Jetzt verstehe ich es. Danke.

-----------------------------

Jetzt habe ich nochmal eben eine technische Frage. Und zwar möchte ich gerne wissen ob es möglich ist Fehlermeldungen bzw. Bestätigunsmeldungen mit PHP in einem Pop-Up auszugeben. D.h. ich habe ein Formular und wenn dieses erfolgreich abgeschickt wude, soll sich automatisch ein Pop-Up mit der entsprechenden Meldung öffnen.

28.01.2006 13:04 | geändert: 28.01.2006 13:32

8 Jörg Kruse

In der Beschreibung von fwrite() auf php.net ist ein schöner Beispielcode für die Ausgabe von verschiedenen Fehlermeldungen bzw. der Bestätigung über print. Allerdings in keinem Popup - die Meldung erscheint auf der Seite selbst. (Falls dir das Pop-Up wichtig ist, könntest du die Meldung noch über die JavaScript-Funktion alert() ausgeben)

28.01.2006 15:33 | geändert: 28.01.2006 15:34

9 Marcel (Gast)

Ich komme immer weiter in Sachen PHP, vielen Dank Jörg.
Vielleicht findest du ja noch ein Fehler in meinem Script. Ich würde mich über Meldungen freuen.

http://profiforum.com/lempix/myvoc.php

EDIT: Natürlich sind auch Meldungen von anderen hilfsbereiten Personen erwünscht. :)

28.01.2006 16:18 | geändert: 28.01.2006 18:17

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]