Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Es kommen Zahlen und Buchstaben aus dem nichts!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Es kommen Zahlen und Buchstaben aus dem nichts!

    Ich weiss echt nicht wie ich das Problem beschreiben soll bzw. wo der Fehler her kommt. Ab und zu funktioniert es reibungslos, in der nächsten Minute kommt wieder ein Fehler zustande ....

    Aktuelle Datenbankeinträge:

    Feldname: url ........................ | ziel
    index .................................... | index.php?hauptkategorie=1
    abnehmen-mit-diaeten/index ..... | index.php?hauptkategorie=2
    abnehmen-mit-sport/index ........ | index.php?hauptkategorie=3
    abnehmen-mit-medizin-op/index . | index.php?hauptkategorie=4
    unser-anfaenger-guide/index ..... | index.php?hauptkategorie=1&menuepunkt=1

    Code:

    PHP-Code:

    function generate_htaccess()
    {

    // URL's aus der Datenbank holen

    $sql2 "SELECT url, ziel FROM `htaccess`";
    $db_erg2 mysql_query$sql2 ); if ( ! $db_erg2 ) {die('Funktion: generate_htaccess Error! ... ' mysql_error());}
    $htaccess = array(array());
    $b 0; while($htaccesstmp mysql_fetch_array($db_erg2))
    {
       
    $htaccess[$b]['url']      = $htaccesstmp['url'];
       
    $htaccess[$b]['ziel']     = $htaccesstmp['ziel'];
       
    $b++;
    }
    mysql_free_result$db_erg2 );

    // Inhalt für die .htaccess erzeugen

    $counthtaccess count($htaccess);
    for(
    $a 0$a $counthtaccess$a++)
    {
    if(
    $a == '0'){$text "RewriteEngine On \nRewriteRule ^".$htaccess[$a]['url']."\.html$ ".$htaccess[$a]['ziel']." \n";}
    else{
    $text1 "RewriteRule ^".$htaccess[$a]['url']."\.html$ ".$htaccess[$a]['ziel']." \n";  $text $text $text1;}
    }

    // Inhalt in die .htaccess schreiben

    $dateiname '../.htaccess';
    $handler fOpen($dateiname "r+");
    fWrite($handler $text);
    fClose($handler);


    Fehler Beispiel:

    Code:
    RewriteEngine On 
    RewriteRule ^index\.html$ index.php?hauptkategorie=1 
    RewriteRule ^abnehmen-mit-diaeten/index\.html$ index.php?hauptkategorie=2 
    RewriteRule ^abnehmen-mit-sport/index\.html$ index.php?hauptkategorie=3 
    RewriteRule ^abnehmen-mit-medizin-op/index\.html$ index.php?hauptkategorie=4 
    RewriteRule ^unser-anfaenger-guide/index\.html$ index.php?hauptkategorie=1&menuepunkt=1 
    e
    oder

    Code:
    RewriteEngine On 
    RewriteRule ^index\.html$ index.php?hauptkategorie=1 
    RewriteRule ^abnehmen-mit-diaeten/index\.html$ index.php?hauptkategorie=2 
    RewriteRule ^abnehmen-mit-sport/index\.html$ index.php?hauptkategorie=3 
    RewriteRule ^abnehmen-mit-medizin-op/index\.html$ index.php?hauptkategorie=4 
    RewriteRule ^unser-anfaenger-guide/index\.html$ index.php?hauptkategorie=1&menuepunkt=1 
    1
    Wo kommt verflucht noch mal dieses "e" bzw. diese "1" am Ende her? Wie kann es sein, dass es nur ab und zu mal passiert? An sich würde es mich ja nicht weiter stören wenn dadurch nicht der ganze Server abschmieren würde und alle Seiten nur noch anzeigen "Internal Server Error".

  • #2
    Wenn du bereits inhalt in der htaccess hast, und die Datei mit +r öffnest, dann überschreibst du die Datei von oben nach unten. Ist dein Inhalt aber zu kurz, dann wird nur der obrere Teil überschrieben und unten bleibt das "alte" stehen.

    Angenommen du hast in deiner Datei das Wort "Autobahn" und du schreibst nun (mit r+) das Wort "blubb" rein, dann steht dort "blubbahn". Ich vermute deshalb, bei dir bleibt einfach irgendetwas in der Datei stehen, was schon vorher da war.

    Was anderes fällt mir auf die Schnelle nicht ein. Also nutze fopen im Modus w
    [IMG]http://media.ubuntuusers.de/portal/files/ubuntu.png[/IMG][IMG]http://sqlmanager.net/i/ico/mysql.gif[/IMG][SIGPIC][/SIGPIC]

    Kommentar


    • #3
      mh... das erklärt so einiges, danke!

      Auch wenn ich mir das "e" trotzdem noch nicht erklären kann

      Kommentar


      • #4
        mal abgesehen davon ...

        was soll bitte das hier

        for($a=0;.....)
        if ($a=='0') ???????



        du zwingst PHP jedesmal zur Typkonvertierung und wozu ?..

        wenn $a schon integers hat, dann prüf auch auf die Ziffer 0


        und zum "e" .. du schreibst ganz oben "aktuelle Datenbankeinträge" ... Könnte es sein, dass die schon mal anders aussahen? du fragst ja in 2 Foren zu deinem htaccess problem und hast diese datenbank generierte htaccess geschichte ja nicht von Anfang an gehabt...

        Wenn nach der änderung auf "w" immer noch unerklärliche Geisterzeichen auftauchen, würde ich vor dem fwrite mal die zusammengesetzte $text ausgeben lassen - ein echo reicht ja schon, nur um sicher zu gehen, dass das Geisterzeichen nicht doch von dir wieder geschrieben wird - dann musst du die Datenbankeinträge prüfen
        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

        Kommentar


        • #5
          mh... das erklärt so einiges, danke!

          Auch wenn ich mir das "e" trotzdem noch nicht erklären kann
          Erklärt es nun einiges oder nicht? Du überschreibst einen Teil der Datei, der Rest bleibt stehen. Wo ist jetzt nocht die Frage?
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            die Frage für ihn ist - wenn das "e" das einzige Zeichen aus der vorherigen Version der Datei ist, das noch übrig bleibt .. wo es denn herkommt - denn das letzte Zeichen seiner erzeugten Datei ist "1" aus der letzten Zeile menuepunkt=1 ...
            "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

            Kommentar


            • #7
              Ach so.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar

              Lädt...
              X