Charakterdaten abspeichern...(in txt) und wieder auslesen.

Crowner

Mitglied
Ich bin ein ziemlicher anfänger, was php angeht, daher hab ich auch noch einige probleme, nun wollte ich euch mal um Rat fragen. Ich hab ne kleine Clanpage, und da möchte ich, dass jeder benutzer seine charakterdaten selber ändern kann (da die immer wieder ändern).
Aber bisher hab ich etwas ziemlich benutzerunfreundliches, was ziemlich unsicher und kompliziert ist:
Hier kann man sich eintragen:
write.php

Und hier wird es dann angezeigt (unter Charakter):
members.php

Aber ich möchte das ganze einfacher machen... ausserdem wird jetzt für jede person eine eigene textdatei benötigt und jeder kann die Daten von jedem ändern.
Wenn ihr es ausprobieren wollt, könnt ihr das mit dem Testuser machen.
Ich hoffe, ihr könnt mir gute Tipps geben.

Das wichtigste aus write.php:
Code:
[size=2]    <table width="600" border="1" cellpadding="5" cellspacing="0" bordercolor="#222222" bgcolor="#550000">
      <tr>
        <td><div align="right"><font size="4" face="Courier New, Courier, mono"><strong>Speicherort(name):</strong> </font></div></td>
        <td><input name="speicherort" type="text" id="speicherort" style="background:#222222; color: #FF0000; font-family: Times New Roman, Times, serif; font-size: 16px; width: 175px;">
          <a href="javascript:schreibeTFeld('form1','speicherort','crowner')"> Crowner</a> - 
          <a href="javascript:schreibeTFeld('form1','speicherort','neo')">Neo</a> - 
<a href="javascript:schreibeTFeld('form1','speicherort','wirschi')">Wirschi</a> - 
<a href="javascript:schreibeTFeld('form1','speicherort','winnipu')">WinniPu</a>  - <a href="javascript:schreibeTFeld('form1','speicherort','testuser')">Testuser</a></td>
      </tr>
      <tr> 
        <td><div align="right"><font size="4" face="Courier New, Courier, mono"><strong>Charakterdaten:</strong></font></div></td>
        <td><input name="text" type="text" id="text" style="background:#222222; color: #FF0000; font-family: Times New Roman, Times, serif; font-size: 16px; width: 500px;" value=""></td>
      </tr>
      <tr> 
        <td colspan="2"><div align="center"> 
            <input type="submit" name="Submit" value="Abschicken">
          - <a href="javascript:schreibeTFeld('form1','text','<br>')">Zeilenumbruch
          einf&uuml;gen</a> <font size="2">(der Text nach dem &lt;br&gt; wird auf eine neue Zeile
          geschrieben)</font></div></td>
      </tr>
    </table>
    <br>
    Charakterdaten von <? echo $speicherort ?> werden/wurden ge&auml;ndert!
  </form>
<?
echo "<input type='text' value='" . $name ."'>";
?>
<?
$datei = fopen("$speicherort.txt","w-");
fwrite($datei, $text);
fclose($datei);
?>
<br>
Das sind ihre Angaben:<br>
<?php
$char = fopen("$speicherort.txt","r");
print fgets($char);
?>[/size

Und so lese ich die daten wieder aus:
Code:
php
$char = fopen("http://www.slrgku.ch/crownershomepage/diabolo/user/testuser.txt","r");
print fgets($char);
?>
:(

Gruss Crowner:
 
Zuletzt bearbeitet:
Erstmal ganz allgemeine Tips (ich habe mir dein Script noch nicht angesehen)

Ich würde die Textdatei folgendermaßen aufbauen:
1 Benutzer pro Zeile, Semikolon getrennt.

Name;Vorname;Geburtstag;etc

Mit fgets () kannst du die Daten dann Zeilenweise Einlesen. Mit explode () kannst du die Benutzer in ein Array speichern.

Aber: hast du kein MySQL? Ist viel schneller und praktischer als Textdateien.

Außerdem sollte das Mode bei fopen () "a" sein.

PHP Handbuch - XXX. Funktionen des Dateisystems
 
Danke, ich werd mal schaun, was ich hin bekomme, sonst frag ich.

Nein, ich hab leider kein MySql, hab auch noch nie mit MySql gearbeitet.
Aber ich versuch das beste draus zu machen :)

Gruss Crowner
 
:( :( :(
also, wenn ich ganz ehrlich bin
ich hab n weilchen dran rum geknobelt, und all die befehle durchgelesen
aber ich versteh nur bahnhof...naja nicht ganz, aber...fast
kannst du mir sagen, wie ich am einfachsten, text, aus einem mehrzeiligen textfeld abspeichere, so dass die zeilenumbrüche noch da sind (so wie man sie ins textfeld geschrieben hat), dass ich das alles in eine datei abspeichern kann und nachher wieder auslesen (und wenn möglich, von verschiedenen personen (Bsp. für zede Persohn max.9 Zeilen))
ich find einfach nirgens, wie dass ich auf eine bestimmte zeile schreiben oder eine bestimmte Zeile wieder auslesen kann
und ich weiss nicht, wie man machen kann, dass man für Zeilenumbrüche nicht immer <*br> eingeben muss.

Wenn du mir nicht helfen willst, kann ich das irgendwie verstehen, du denkst sicher "mann ist das ein idiot" oder etwas in der art. Aber ich währe echt froh, wenn du mir helfen würdest.

Gruss Crowner
 
Hi!

Nur ein kleiner Tipp aus eigener Erfahrung: habe in meiner Anfangszeit auch Daten in Textfiles gesichert und mich so um MySql gedrückt.
Irgendwann wagte ich den "großen Schritt" und ... es ist wirklich einfach, ja im endeffekt einfacher als die Variante mit den Textfiles...

Nur ein Tipp :)
 
Hmmm also ich habe schon ein ganzes Forum aus Textdateien programmiert und das sogar bis zur Perfektion getrieben...einfach weil ich mich ums SQL drücken wollte.
Tipp: nutze Trennzeichen, die so NIE in deinen Benutzerdaten vorkommen, verwende Sonderzeichen oder was weiß ich.
2. Tipp, nutze 2 verschiedene Trennzeichen, so nach dem motto
user1]#[name1]#[email1[#]user2]#[name2]#[email2[#] usw...
Und zwar explodest() <--hihii du zuerst die Trennziechen zwischen den Usern und für jeden User nochmal nach ]#[ exploden.

Arraymäßig sieht das dann so in etwa aus
PHP:
//Datei öffnen, auslesen, wie auch immer
$array = explode("[#]",$datei);
$gr1 = count($array);
for($i=1;$i<$gr1;$i++)
{
$daten = explode("]#[",$array);
echo "ID: $daten[0] <br>";
echo "Name: $daten[1] <br>";
echo "Email: $daten[2] <br>";
echo "<hr>";
}

Dieser Code sollte dir alle Userdeteils auflisten, zwischen jedem User wird einfach mal ein Balken gezogen.

Ich garantiere NICHT für die Richtigkeit dieses Codebeispiels, es ist alles frei Hand geschrieben.
 
@eLorFin: Na, dann weißt Du ja, worum es geht! Und jetzt sage nicht, mit einer MySql Datenbank wäre es nicht tausendmal einfacher... :)
 
@Crowner:
All deine Probleme würden sich sehr schnell lösen, wenn du
a) in die FAQ dieses Forum guckst (nl2br() ist evtl. ganz nütlich)
b) Mal Google nach einem Tutorial für ein Gästebuch auf Dateibasis mit Editfunktion bemühst. Die gibts zu Hauf und da sind alle wesentlichen Aspekte die nötig sind behandelt.
 
Zurück