• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

(Hilfe gesucht) Textfeldeintrag in txt mit Zusatz Speicher

Brabax

Neues Mitglied
Hallo

und Danke das ihr hier vorbeischaut. :wink:
Gleichmal vorweg in PHP kenn ich mich etwas aus und das Reicht um Scripts zu kopieren und zu wissen wo ich was im Queltext um tipen muss das es etwas anders aussieht :oops: aber zum schreiben eines eigenen Scripts reicht es leider noch nicht. Darum wende ich mich an euch und hoffe ihr habt Lust, Zeit und Gedult mir etwas zu Helfen.

Also kommen wir zu dem was ich gerne auf einer Seite reichen möchte.
Es soll in einem Eingabefeld nur die Möglichkeit geben 7 Zahlen einzutragen, diese wiederum sollen durch klicken des Sendebuttons mit einem Link kompiniert werden [Link+7 Zahlen] und dann auf einer txt-Datei gespeichert werden. Nach klicken des sende Buttons soll unter dem Eingabefeld ein kleiner text erscheinen. Weiter Einträge sollen in der kleichen txt-Datei unter dem letzten Eintrag gespeichert werden.

So kurzer Text zum schreiben und klingt vieleicht simpel aber ich bekomme es mit meinem PHP-Wissen nicht hin.:cry:

Hoffe es gibt eine gute Seele die mir Helfen kann und DANKE das ihr meinen Beitrag gelesen habt auch wenn ihr mir nicht Helfen könnt und für jeden der mir Helfen kann 1000 & 1 DANKE...
 
Och komm, ich wein gleich, es gibt so viele php turtorials,
kommt doch einfach mal mit konkreten Problemen, oder "mit was mache ich dies, ich kann ein bisschen php"
aber doch net immer, ich kann nix würds aber gern wissen

google mal
php $_Get, oder
php $_Post

das dürfte dir etwas grundwissen schaffen


MfG
 
*Taschentuch rüberschieb*
Das hier im Forum Sarkasmus an erster Stelle steht ist mir schon aufgefallen beim lesen so manch anderer Beiträge.
Aber danke für den kleinen Tip mach mich gleich mal ans googeln....

So nun, naja....
hab da was aber nicht schlagen wenn es nix ist...


<html>
<head>
<title></title>
</head>
<body>
<input name="Spieler-ID"> <input value="Eintragen"
name="Spieler-ID" type="submit">
--------------------------------------------
<?php
$daten = "...";

$datei_name = "Server1.txt";

$fp = fopen($datei_name, "a");

fwrite($fp, $daten);

fclose($fp);

?>
</body>
</html>

Nur finde ich nix um die verbindung zwischen dem Textfeld/Submit und dem $daten =. :sad: Bis jetzt speichert er nur die 3 Punkte immer wieder wenn ich die Seite öffne in der Server1.txt. *kopfkratz*
 
Zuletzt bearbeitet von einem Moderator:
Guten Morgen,

was Du erstmal brauchst, um Daten eingeben und verarbeiten zu können, ist ein Formular, und nicht nur ein Eingabefeld (das ist bei Dir sogar falsch) und eine submit-Schaltfläche. Im <form>-Tag wird auch definiert, was passieren soll, wenn die submit-Schaltfläche gedrückt wird. Hier ein Link für Formulare: SELFHTML: HTML/XHTML / Formulare / Formulare definieren Das ist bis jetzt noch alles reines HTML Wenn Du weißt, was ein Formular ist, und wie es aufgebaut ist, dann kommt der nächste Schritt, das Überprüfen der Daten auf Ihre Gültigkeit, also sowas wie, sind die Pflichtfelder gefüllt oder entsprechden die Daten dem, was ich erwarte z.B. ist der Inhalt eines Namensfeldes wirklich aus Buchstaben, oder steht da eine Zahl drin. Dazu empfehle ich Guter Code - Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform. Wenn Du soweit bist, dann sollte es für Dich fast kein Problem mehr sein, die Verarbeitung selber zu machen.

Gruß thuemmy
 
die eigentliche verbindung wird mit php dann ca so gelöst:
PHP:
$link = 'http://www.tralala.at?formdata='.$_GET['spieler_id'];
$link kannst du dann speichern.

ach ja, lass zeichen wie minus, rufzeichen, leerzeichen und umlaute im code weg, kann (muss nicht) zu problemen führen.
 
Zuletzt bearbeitet von einem Moderator:
Wirklich gewagtes Vorhaben.


TXT - Dateien sind alles andere als effektiv.

1. Datenabspeicherung ist erschwert da man unsearilizes arrays verwenden muss oder sich selbst ein CVS-Shema bastelt. Diese Daten müssen vor dem Abspeichern in die TXT-Vorbereitet werden. Beim Laden der Daten das gleiche Problem.

2. TXT Dateien sind extrem CPU-Lastig und können die Server-Load in die Höhe treiben, bis zum Serverabsturz.

3. Spätere Änderungen an der Syntax deiner Daten kann zu enormen Problemen führen.


Lösung:

MySQL, Oracle, SAP, Access oder sonst eine Datenbank.
 
die eigentliche verbindung wird mit php dann ca so gelöst:
PHP:
$link = 'http://www.tralala.at?formdata='.$_GET['spieler_id'];
$link kannst du dann speichern.

ach ja, lass zeichen wie minus, rufzeichen, leerzeichen und umlaute im code weg, kann (muss nicht) zu problemen führen.

Danke sysop aber es will nicht so recht funzen.
----------------------------------------------------------------
PHP:
<html>
<head>
</head>
<body>
<form action="./test2.php" method="get">
  <p>Spieler-ID:<br>
  <input name="SpielerID" size="7" maxlength="7"
 type="text"></p>
  <input name="SpielerID" value="Eintragen"
 type="submit"><br>
  <input value=" Abbrechen" type="reset">
<?php
$link = 'http://xxxxx.kilu.de/Server1/Server1.txt'.$_GET['spieler_id'];

$Datei_name = "Server1.txt";

$fp = fopen($datei_name, "a+");

fwrite($fp, $daten);

fclose($fp);

?>
</form>
</body>
</html>
-------------------------------------------------------
Textdatei wird erzeugt beim offnen der Seite "test2.php" aber der eingetragene Text wird dan in der Server1.txt nicht gespeichert bei klicken auf "Eintragen". Auch wenn ich aus get post mach geht es nicht.


@Franz danke für den Tip aber das macht mich erst richtig wuschig ich bekommen noch nichtmal das eine hin...:sad:
 
Zuletzt bearbeitet von einem Moderator:
ok ich glaube es ist am besten wenn du 2 dateien machst ... eine html mit dem formular und eine php wo dan eingetragen wird
dein Formular:
Code:
<html>
<body>
<form action="test2.php" method="GET">
[COLOR=#000000] <p>Spieler-ID:<br>
  <input name="SpielerID" size="7" maxlength="7"
 type="text"></p>
  <input name="SpielerID" value="Eintragen"
 type="submit"><br>
  <input value=" Abbrechen" type="reset">[/COLOR]
</form>
</body>
</html>
dan deine test2.php
PHP:
<?php 

$daten=$_GET['SpielerID'];

$Datei_name = "Server1.txt";

$fp = fopen($Datei_name, "a+");

fwrite($fp, $daten);

fclose($fp);

?>
 
Zuletzt bearbeitet:
@daschifahrar und Barbax,

Ich glaube, duch den ganzen Copy&Paste habt ihr einige Fehler gemacht.
Was enthällt $daten? $datei(bzw $link) wird nicht benutzt. Warum schreibt ihr $Datei_name erst mit großem D, dann mit kleinem D? Und $_GET['spieler_id'] wird nicht durch das Formular gesetzt.
Diese Fehler solltet ihr erstmal koregieren.
 
Danke @Die Zahl fehler behoben und siehe da es geht :razz:

PHP:
<html>
<head>
</head>
<body>
<form action="./test2.php" method="get">
  <p>Spieler-ID:<br>
  <input name="Spieler-ID" size="7" maxlength="7"
 type="daten"></p>
  <input name="SpielerID" value="Eintragen"
 type="submit"><br>
  <input value=" Abbrechen" type="reset">
<?php
$daten = $_GET['Spieler-ID'];

$daten_name = "Server1.txt";

$fp = fopen($daten_name, "a+");

fwrite($fp, $daten);

fclose($fp);

?>
</form>
</body>
</html>
und daschifahrer dieser kleine teil
PHP:
$daten=$_GET['SpielerID'];
hat den klick zum schreiben gebracht.

so jetzt weiter auf der wunschliste...

1. es dürfen nur Zahlen eingetragen werden
2. das eingetragene soll in der txt-datei untereinender und nicht hintereinander stehen.
3. es soll automatisch ein immer gleicher link vor die 7 Zahlen eingetragen werden beim speichern.

hoffe ihr könnt auch hier mir helfen aber DANKE schonmal für den ersten teil. :lol: :lol:
 
so jetzt weiter auf der wunschliste...

1. es dürfen nur Zahlen eingetragen werden
2. das eingetragene soll in der txt-datei untereinender und nicht hintereinander stehen.
3. es soll automatisch ein immer gleicher link vor die 7 Zahlen eingetragen werden beim speichern.
Zu Punkt1 hab ich da, als selbsternannter Zahlenmeister, eine Funktion für dich:
PHP:
function isteinezahl($zahl) { 
 if (preg_match("=^[0-9]+$=i",$zahl)) { 
 return TRUE; 
 } else { 
 return FALSE; 
 } 
}
Dann fragst du in deinen Script einfach ab, zb:
PHP:
if(!isteinezahl($_GET['Spieler-ID'])) {
// hier das, wenn die Var keine Zahl ist
}
Zu Punkt2 könntest du einen Zeilenumbruch bei jedem Eintrag machen, zb:
PHP:
$daten = $_GET['Spieler-ID']."\n";
Zu Punkt3 ist fast wir Punkt2, Beispiel:
PHP:
$daten = "http://domain.etc/bla.php?id=".$_GET['Spieler-ID']."\n";
Mfg
 
Zuletzt bearbeitet:
@daschifahrer
Danke was denkst du was ich mache nur ist das für mich zum teil nicht leicht. erstens nach was suchen, zweitens muss man das was da steht auch verarbeiten können und drittens bin ich gott froh das es so hilfsbereite leute wie euch gibt.

@Die Zahl

Punkt 2 funktioniert erst klassig

Punkt 3 da gibts noch nen kleines prob und zwar schreibt er den link IMMER sofort wenn die seite geöffnet wird und wenn dann was im feld steht und auf "Eintragen" klickt schreibt er es nochmal steht nix im feld und man klick dann wieder link ohne anhang.

Punkt 1 verstehe ich garnicht, wenn ich offen bin.

Aktueller PHP-Code
PHP:
<html>
<head>
  <title>Test</title>
</head>
<body>
<div style="text-align: center;">
<form action="./test2.php" method="get">
  <p>Spieler-ID:<br>
  <input name="Spieler-ID" size="7" maxlength="7"
 type="daten"></p>
  <input name="SpielerID" value="Eintragen"
 type="submit"><br>
  <input value=" Abbrechen" type="reset">
<?php $daten = "http://xxxx.de/xxxx/index.php?mode=view&user=".  $_get['Spieler-ID']. "\n";
$daten_name = "Server1.txt";
$fp = fopen($daten_name, "a+");
fwrite($fp, $daten);
fclose($fp);
?>
</form>
</div>
</body>
</html>

wichtig wäre mir das Prob punkt 2 erst zu lösen.
hab auch schon etwas gebastelt aber ergebnis war immer nen schuss nach hinten.
 
Punkt 3 da gibts noch nen kleines prob und zwar schreibt er den link IMMER sofort wenn die seite geöffnet wird und wenn dann was im feld steht und auf "Eintragen" klickt schreibt er es nochmal steht nix im feld und man klick dann wieder link ohne anhang.
Du solltest unbedingt eine Abfrage einbinden, so das er den Eintrag nur macht, wenn es auch was einzutragen gibt.
Inmoment bewirkt dein Script, das bei jedem Seitenaufruf in die Daten geschrieben wird.

So könnte z.b. die Abfrage aussehen:
PHP:
//dateianfang

if(empty($_GET['Spieler-ID'])) {
// hier dein formular
} else {
// hier die eintragung
}
Damit wird bewirkt, das das Formular angezeigt wird, wenn $_GET['Spieler-ID'] leer ist. (man könnte auch PHP: isset - Manual benutzen)
Andernfals wird die Eintragung vorgenommen. (Siehe Kommentare)
PHP: if - Manual

Punkt 1 verstehe ich garnicht, wenn ich offen bin.
PHP: Functions - Manual oder den Link von daschifahrer ansehen.

Mfg
 
Geil *fg*
DANKE Die Zahl, könnt dich knutschen :mrgreen: das funzt *hinundherhüpf*

so sieht es jetzt aus
PHP:
<html>
<head>
  <title>Test</title>
</head>
<body>
<div style="text-align: center;">
<form action="./test2.php" method="GET">

<p>Spieler-ID:<br>
  <input name="Spieler-ID" size="7" maxlength="7"
 type="daten"></p>
  <input name="SpielerID" value="Eintragen"
 type="submit"><br>
  <input value=" Abbrechen" type="reset">

<?php
if(empty($_GET['Spieler-ID'])) {
} else {
$daten = "http://xxxx.de/xxxx/index.php?mode=view&user=". $_GET['Spieler-ID'].  "\n";
$daten_name = "Server1.txt";
$fp = fopen($daten_name, "a+");
fwrite($fp, $daten);
fclose($fp);
}
?>

</form>
</div>
</body>
</html>
so werde mich mal über die beiden links von euch beiden her machen :mrgreen::mrgreen::mrgreen:
 
So alle 3 Punkte von der List soweit erledigt nur noch ein kleines Prob...

...zu erstmal der der aktuelle PHP-Code
PHP:
<div style="text-align: center;">
<form action="./test2.php" method="GET">
  <span
 style="font-weight: bold; text-decoration: underline;">
Spieler-ID:
  </span>
  <p><input name="Spieler-ID" size="7"
 maxlength="7" type="daten">
  </p>
  <p><input name="SpielerID" value="Eintragen"
 type="submit">
  <input value=" Abbrechen" type="reset"></p>
  <p>

<?php

 if(!ctype_digit($_GET['Spieler-ID'])){
  echo "Bitte trag nur deine Spieler-ID ein!";
} else { 

$daten = "http://xxxx.de/xxxx/index.php?mode=view&user=". $_GET['Spieler-ID']. "\n";
$daten_name = "Server1.txt";
$fp = fopen($daten_name, "a+");
fwrite($fp, $daten);
fclose($fp);
echo "Danke das du dich eingetragen hast!";
} 
?>

</form>
</div>
so und nun mein kleines Prob mit diesem Code:

Wenn die Seite neu geladen wird wird der der Eintrag in die txt-Datei wiederholt. Hab gedacht mit " exit; " nach " echo "Danke das du dich eingetragen hast!"; " könnte ich das prob losen aber dem ist leider nicht so! und googeln hab ich nix gefunden o. nicht nach dem richtigen gefragt @ daschifahrer.
 
du könntest am ende der datei noch einen header einfügen sprich in den php teil sowas:
PHP:
header("location:dein_start.htm");
jedoch musst du dan dein danke fürs eintragen löschen ... gibt sonst nen fehler
 
Wenn die Seite neu geladen wird wird der der Eintrag in die txt-Datei wiederholt. Hab gedacht mit " exit; " nach " echo "Danke das du dich eingetragen hast!"; " könnte ich das prob losen aber dem ist leider nicht so! und googeln hab ich nix gefunden o. nicht nach dem richtigen gefragt @ daschifahrer.
Ich hoffe ich verstehe das richtig: Du willst, das die Spieler-ID nur einmal auftaucht? (Währe logisch, da eine ID normal immer einzigartig ist)

Also sollte man prüfen, ob es diese ID bereits gibt. Ich versuch es mal:
PHP:
$schauen = @file("Server1.txt");
 while (list($line_num, $line) = @each($schauen)) {
  $teste = explode("index.php?mode=view&user=", $line);
  if($teste['1'] == $_GET['Spieler-ID']) {
   echo "Diese ID existiert bereits!";
   exit();
  }
}
Diese Schleife fragt also jede Zeile ab, was hinter "index.php?mode=view&user=" in der Datei steht. Sollte also die Zahl in $_GET['Spieler-ID'] vorhanden sein, beendet er das Script mit exit(). (Also solltests du diese Abfrage vor der Eintragung schreiben).

Es gibt sicherlich 'ne elegantere Lösung, aber was anderes fiehl mir um diese Uhrzeit nicht mehr ein ;)

Mfg
 
Zurück
Oben