ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
1000
1000
EMPFEHLEN
-
24.03.04 19:05 #1
Hallo!
ich habe folgendes Problem:
Ich habe eine Datei in der folgendes passiert:
mit require() lese ich eine Datei ein (php-datei)
die sieht so aus (Beispiel:
Dann werte ich den Inhalt (Array) aus, und schreibe in die Datei die neuen Werte.PHP-Code:<?
$Daten = array("wert1","Wert2" . . .. .
?>
dazu benutze ich ganz normal fopen(), fwrite und fclose().
Sieht dann ungefähr so aus:
Mein Problem ist, das mal etwas reingeschrieben wird, und mal nicht.PHP-Code://Datei öffen, Ihnalt löschen, neuen Inhalt reinschreiben
$fp = fopen("daten.php", "w") or die("Die Verbindung zur Datei konnte nicht hergestellt werden.");
if (!fwrite($fp, $neuerText, strlen($neuerText)))
{
$fStatus = "NEIN";
}
else
{
$fStatus = "JA";
}
fclose($fp);
Ich weiß einfach nicht, woran das liegen kann.
Gibt es vielleicht Probleme, wenn ich die Datei zuerst mit rquire() auslese und dann im selben Script auf die Datei mit fwrite() zugreife?
Gibt es vielleicht eine andere Möglichkeit?
Für Anregungen oder Lösungen wäre ich sehr dankbar.
Mit nettem Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
24.03.04 21:55 #2
Vielleicht noch ne Info dazu?
ich benutze eine SSL-Verbindung zu den Seiten,
und habe am Anfag der Seite (vor HTML) folgende Header stehen:
Könnte es vielleicht etwas damit zu tun haben?PHP-Code:header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header("Cache-Control: post-check=0, pre-check=0", FALSE);
haben ebend über Google ein paar Texte dazu gelesen,
das alte Browser (Bsp.: MS 5.5) Probleme mit SSL-Verschlüßßelungen haben?
Kennt sich jemand damit aus?
Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
Ich habe das selbe Problem. Hast du etwas darüber herausgefunden?
mfg Prophet05
-
29.03.05 19:23 #4
Hallo!
Die Geschichte ist zwar schon länger her . . .
Aber eine wirkliche Lösung hab ich auch nicht gefunden.
Es hat auf einmal funktioniert. Ohne, das ich irgendwas
am Script verändert habe. Also schätze ich mal,
das es daran lag, das der Server-Bereich noch nicht
wirklich vom Provider eingerichtet war? Keine Ahnung.
Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
Schade ich habe das ganze bei mir daheim und es funktioniert nicht.
mfg Prophet
-
30.03.05 07:01 #6
Sonst zeig doch mal dein Script, vielleicht liegt es ja an was anderem?
Überschreibst du den Inhalt auch jedesmal neu? Vielleicht ist ja dein
Wert, den du übergibts leer? Oder irgend sowas?
Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
Also hier sind die speicher funktion:
und hier die speichernde datei:PHP-Code:function user_save($user_name)
{
$user_dat = fopen('../../user/'.$user_name, 'w');
fwrite($user_dat,"<?php\n");
fwrite($user_dat,"\$spieler['name'] = '".$spieler['name']."';\n");
fwrite($user_dat,"\$spieler['passwort'] = '".$spieler['passwort']."';\n");
fwrite($user_dat,"\$spieler['email'] = '".$spieler['email']."';\n");
fwrite($user_dat,"\$spieler['icq'] = '".$spieler['icq']."';\n");
fwrite($user_dat,"\$spieler['style'] = '".$spieler['style']."';\n");
fwrite($user_dat,"\$spieler['punkte'] = '".$spieler['punkte']."';\n");
fwrite($user_dat,"\$spieler['bild'] = '".$spieler['bild']."';\n");
fwrite($user_dat,"\$spieler['beschreibung'] = '".$spieler['beschreibung']."';\n");
fwrite($user_dat,"\$spieler['mails'][20] = Array(");
for ($i = 0;$i < 20;$i++)
{
fwrite($user_dat,"'".$spieler['mails'][$i]."'");
if($i < 19)
fwrite($user_dat,",");
}
fwrite($user_dat,");\n");
fwrite($user_dat,"?>");
fclose($user_dat);
}
}
PHP-Code:require('../../php/save.php');
if ($_POST['send']) // Wenn gesendet wurde...
{
if ($_POST['passwort_alt'] == $spieler['passwort'] && $_POST['passwort_neu1'] == $_POST['passwort_neu2'])
{
$spieler['passwort'] = $_POST['passwort_neu1'];
user_save($user);
echo "\n<span class=\"richtig\">Passwort erfolgreich geändert.</span>\n";
echo "</div>\n<div class=\"content\">\n";
echo "Neues Passwort: ".$spieler['passwort']."\n";
}
else
{
echo "\n<span class=\"falsch\">Passwort konnte nicht geändert werden, prüfen sie ihre Eingaben.</span>\n";
}
}
-
07.04.05 16:58 #8
Und bei dir schreibt er dann mal etwas rein, und mal nicht. Richtig?
Wie wird die Variable $user übergeben?
Wo kommt die her?Code :1
user_save($user);
kann es möglich sein, das es zwei Dokumente gibt, mit
unterschiedlicher Schreibweise (z.B.: Michael und michael)
Oder regeslt du über ein Script, das die Dateinamen alle
z.B. klein geschrieben werden?
vielleich solltest du mal deinen ganzen Text, den du in deine
Datei speichern willst erstmal als ein String zusammenbasteln,
und dann mit nur einem fwrite Befehl in die Datei schreiben?
Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
$user kommt aus der session sie wird dort nach dem login gespeichert und gibt an welche daten datei engebunden werden muss.
das problem ist das jedes mal wenn ich speichere zwar die datei die richtigen variablen enthält aber nicht die werte mit rein geschrieben werden.
-
07.04.05 17:38 #10
Acho so! Das ist dein problem.
Na, das sollte leicht zu lösen sein.
Denn dein Array $spieler kennt deine Funktion user_save() gar nicht.
Ergo läßt er die Stellen leer. Übergib Deiner Funktion einfach dein
Array $spieler (Bsp: user_save($user, $spieler)), und dann wird
er auch Werte einsetzen.
Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
ok ich versuche das mal
-
08.04.05 15:33 #12
Und? Hat es geklappt?
Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
Ja! Jetzt funktioniert es einwandfrei. Ich verstehe jedoch nicht weshalb die Funktion die Variable nicht ohne übergabe erkennt sie ist doch mitten im Quelltext deklariert.
mfg Prophet05
-
08.04.05 18:07 #14
Naja, das ist halt so ne Sache bei "functions".
Sie sind halt sozusagen eigene Kleine "Programme".
Es gibt auch ne Möglichkeit Variablen auf "global"
zu setzen. Dann stehen sie innerhalb eines Scripts
überall zur Verfügung.
kannste ja mal bei php.net nachlesen.
Gruß
christhebaer« Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »
-
Ja aber Globals sind keine so hübsche variante finde ich. Auf jeden fall vielen dank für deine hilfe!

mfg Prophet05
Ähnliche Themen
-
Dateiupload mit IE 6. gehts mit Firefox nicht?
Von lars2311 im Forum PHPAntworten: 1Letzter Beitrag: 15.09.07, 14:56 -
Blätterfunktion - mal gehts, mal nicht
Von schiese im Forum PHPAntworten: 3Letzter Beitrag: 07.11.05, 00:31 -
Problem mal gehts mal nicht
Von piti66 im Forum PHPAntworten: 5Letzter Beitrag: 06.07.05, 21:53 -
scroll - mal gehts, mal nicht
Von harrry im Forum Flash PlattformAntworten: 2Letzter Beitrag: 10.05.05, 11:27 -
Warum gehts nicht?
Von pillefusss im Forum Flash PlattformAntworten: 5Letzter Beitrag: 15.09.04, 09:51





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren