tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
1000
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    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:

    PHP-Code:
    <?
    $Daten 
    = array("wert1","Wert2" . . .. . 
    ?>
    Dann werte ich den Inhalt (Array) aus, und schreibe in die Datei die neuen Werte.
    dazu benutze ich ganz normal fopen(), fwrite und fclose().
    Sieht dann ungefähr so aus:
    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$neuerTextstrlen($neuerText))) 
        {
            
    $fStatus "NEIN";
           }
        else
        {
            
    $fStatus "JA";
        }
        
    fclose($fp); 
    Mein Problem ist, das mal etwas reingeschrieben wird, und mal nicht.
    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. »

  2. #2
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    Vielleicht noch ne Info dazu?

    ich benutze eine SSL-Verbindung zu den Seiten,
    und habe am Anfag der Seite (vor HTML) folgende Header stehen:
    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); 
    Könnte es vielleicht etwas damit zu tun haben?

    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. »

  3. #3
    Registriert seit
    Mar 2005
    Beiträge
    367
    Ich habe das selbe Problem. Hast du etwas darüber herausgefunden?

    mfg Prophet05
     

  4. #4
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    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. »

  5. #5
    Registriert seit
    Mar 2005
    Beiträge
    367
    Schade ich habe das ganze bei mir daheim und es funktioniert nicht.

    mfg Prophet
     

  6. #6
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    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. »

  7. #7
    Registriert seit
    Mar 2005
    Beiträge
    367
    Also hier sind die speicher funktion:
    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);
          }
          }
    und hier die speichernde datei:
    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";
                           }
                             } 
     

  8. #8
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    Und bei dir schreibt er dann mal etwas rein, und mal nicht. Richtig?

    Wie wird die Variable $user übergeben?
    Code :
    1
    
    user_save($user);
    Wo kommt die her?

    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. »

  9. #9
    Registriert seit
    Mar 2005
    Beiträge
    367
    $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.
     

  10. #10
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    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. »

  11. #11
    Registriert seit
    Mar 2005
    Beiträge
    367
    ok ich versuche das mal
     

  12. #12
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    Und? Hat es geklappt?

    Gruß
    christhebaer
     
    « Es kommt nicht darauf an wie alt man wird, sondern wie man alt wird. »

  13. #13
    Registriert seit
    Mar 2005
    Beiträge
    367
    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
     

  14. #14
    Avatar von christhebaer
    christhebaer christhebaer ist offline Mitglied Silber
    Registriert seit
    Feb 2004
    Beiträge
    74
    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. »

  15. #15
    Registriert seit
    Mar 2005
    Beiträge
    367
    Ja aber Globals sind keine so hübsche variante finde ich. Auf jeden fall vielen dank für deine hilfe!

    mfg Prophet05
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 15.09.07, 14:56
  2. Blätterfunktion - mal gehts, mal nicht
    Von schiese im Forum PHP
    Antworten: 3
    Letzter Beitrag: 07.11.05, 00:31
  3. Problem mal gehts mal nicht
    Von piti66 im Forum PHP
    Antworten: 5
    Letzter Beitrag: 06.07.05, 21:53
  4. scroll - mal gehts, mal nicht
    Von harrry im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 10.05.05, 11:27
  5. Warum gehts nicht?
    Von pillefusss im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 15.09.04, 09:51