kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Javascript Array Ausgabe ... NaN

    geschrieben von tauli

    Hallo

    ich bekomme bei Ausgabe eines Javascript Array (mit HTML Inhalten)
    immer nur NaN ... Not a Number .... aber warum ?!??

    der Html-Code in den Array-Elementen ist richtig escaped,
    aber irgendwie klappt der Zugriff auf die Array-Elemente nicht ...

    Hier ein Beispiel .....

    ..... das Array:
    var infodata = new Array();
    
    infodata[0] = '<a name="anker1">Info Nr:1</a>'
    infodata[0] = +'<div class="info">'
    infodata[0] = +'<h2>Titel1 der Info1</h2>'
    infodata[0] = +'<p>Text1 Zeile 1 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[0] = +'<p>Text1 Zeile 2 ... text <u>Blabla</u> text html blablabla ...  </p>'  
    infodata[0] = +'<p>Text1 Zeile 3 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[0] = +'</div>'
    infodata[0] = +'<p>&nbsp;</p>';
    
    infodata[1] = '<a name="anker2">Info Nr:2</a>'
    infodata[1] = +'<div class="info">'
    infodata[1] = +'<h2>Titel2 der Info2</h2>'
    infodata[1] = +'<p>Text2 Zeile 1 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[1] = +'<p>Text2 Zeile 2 ... text <u>Blabla</u> text html blablabla ...  </p>'   
    infodata[1] = +'<p>Text2 Zeile 3 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[1] = +'</div>'
    infodata[1] = +'<p>&nbsp;</p>';
    
    infodata[2] = '<a name="anker3">Info Nr:3</a>'
    infodata[2] = +'<div class="info">'
    infodata[2] = +'<h2>Titel3 der Info3</h2>'
    infodata[2] = +'<p>Text3 Zeile 1 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[2] = +'<p>Text3 Zeile 2 ... text <u>Blabla</u> text html blablabla ...  </p>'   
    infodata[2] = +'<p>Text3 Zeile 3 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[2] = +'</div>'
    infodata[2] = +'<p>&nbsp;</p>';
    
    infodata[3] = '<a name="anker4">Info Nr:4</a>'
    infodata[3] = +'<div class="info">'
    infodata[3] = +'<h2>Titel4 der Info4</h2>'
    infodata[3] = +'<p>Text4 Zeile 1 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[3] = +'<p>Text4 Zeile 2 ... text <u>Blabla</u> text html blablabla ...  </p>'   
    infodata[3] = +'<p>Text4 Zeile 3 ... text <i>Blabla</i> text html blablabla ...  </p>'   
    infodata[3] = +'</div>'
    infodata[3] = +'<p>&nbsp;</p>';



    ..... die Ausgabe in einer for Schleife:

    var len = infodata.length; 
    
    document.write('<br>Anzahl Gesamt: '+len+'<br><br>');
    
    for (var x=0; x<len; x++) {
      document.write('<br>ID: '+x+'<br>');
      document.write(infodata[x]);
      document.write('<br>');
    }



    beides steht zusammen in einer test.js Datei
    und der Aufruf erfolgt ganz normal über <script type="text/javascript" src="test.js"></script>


    ..... das Ergebnis:

    Anzahl Gesamt: 4
    
    
    ID: 0
    NaN
    
    ID: 1
    NaN
    
    ID: 2
    NaN
    
    ID: 3
    NaN



    was ist daran falsch ?!?! .... die Array Keys sind doch Nummern (Zahlen) ...?!?!

    die Schleife läuft ja, es kommt ja die Ausgabe der IDs (Keys) im Browser an,
    aber der Inhalt der Array-Elemente nicht ... nur NaN .... WARUM ? ... wie gehts richtig ?

    ? .. plz Help ! ... Danke
  • in: Besucherstatistik mit PHP ohne Datenbanken

    geschrieben von tauli

    Hallo

    Problem bei Zugangs-Statistik ohne Datenbank (Datei-Basiert)
    ist, dass das Dateisystem NICHT Multi-Thread fähig ist (oder wie das heisst ?!)

    also bei Zeit-gleichem Zugriff von zwei (oder mehr) Usern versagt das Dateisystem
    weil eine Datei nicht "zur gleichen Zeit" mit zwei verschiedenen Datensätzen beschrieben werden kann

    ich hatte auch mal einen Counter der Datei-Basiert war, und der hat nicht funktioniert,
    fast täglich sind alle Einträge (Zeilen) in der log-Datei verloren gegangen, war einfach alles weg

    bei Datenbank (mysql) klappt das besser, dort können auch "zeitgleiche" EInträge geschrieben werden

    den genauen technischen Hintergrund kenne ich auch nicht,
    aber ich rate in jedem Fall mit Datenbank (mysql) zu arbeiten
    ... ist ja auch nicht (viel) mehr aufwand ... gibt ja genug tutorials für sowas



  • in: php-include-Befehl sicher machen?

    geschrieben von tauli

    ja, hast recht, htmlentities() ist hier eher überflüssig
    bei Datei include würde sich - wennüberhaupt - evtl eher das Gegenteil anbieten
    also html_entity_decode() ... um aaus b&uuml;cer das Wort bücher zu machen ... aber eigentlich auch Quatsch.
    eher noch url_decode() ... wenn von _GET


    es sollte ja nur ein Beispiel sein, keine Lösung. steht ja drüber, das es nicht 100% sicher ist

    und ich wollte halt grundsätlich mal auf das escapen
    und Steuer-/Sonder-Zeichen entfernen bei User-Eingabe hinweisen

    im Grunde genügt es ja so wie oben mit der switch - case Variante
    aber dann muss man halt bei neuen Dateien (Seiten) diese switch - case auch "pflegen" bzw anpassen
    mit der anderen Variante kann man halt beliebig neue Seiten anlegen ohne diese Anpassung.


    wer doch filtern will, kann das Suchen und Ersetzen der Steuer-/sonderzeichen
    ja ganz einfach um ein "/" ... und evtl noch andere "Zeichen" erweitern ...

    Beispiel
    if (!empty($_GET['page'])) { 
    $run_page = trim(chop($_GET['page'])); 
    $run_page = strip_tags($run_page); 
    $run_page = url_decode($run_page); 
    
    $suche   = array( "\r", "\n", "\s", "\t", "\$", "\"", "%", "/", "?", "&", "'", "\0" ); 
    $ersetze = array( "",   "",   "",   "",   "",   "",   "",  "",  "",  "",  "",  "" ); 
    
    $run_page = str_replace($suche, $ersetze, $run_page); 
    
    $run_page = stripslashes($run_page); 
    }
    
    $myincludefile = "seiten/".$run_page.".php"; 
    
    if (file_exists($myincludefile)) { 
    include($myincludefile); 
    }


    oder eben mit preg_replace() nur erlaubte Zeichen im String lassen.

    nochwas ein Hinweis zu sicherm include ...

    wenn eine Datei nur dann includet werden soll, wenn der User sich eingeloggt hat,
    dann sollte auch innerhalb der zu includierten Datei eine Abfrage sein,
    die prüft, ob der Login "aktiv" bzw. "gültig" ist ... z.B. mit SESSION oder COOKIE
    .. aber das ist auch wieder anderes Thema ...
    :)


    EDIT:

    ok, sehe ein das mein Vorschlag eher suboptimal ist,
    alle Zeichen raus filtern die "gefährlich" sein könnten ist viel zu viel Aufwand
    auch weil man ja zudem an HEX Zeichen und so denken müsste

    also ist das mit Switch - Case doch das beste, mit wenigstem Aufwand
    und viele neue Seiten wird man ja nicht öfter haben, wegen Anpassung
    zur Not macht man halt eine kleine Datenbank oder csv
    mit den Werten, bei welcher Eingabe welche Datei includet wird

    ^O^
  • in: Browser Cache deaktivieren php / htaccess

    geschrieben von tauli

    Hallo

    ich habe (in anderem Forum) zwei Möglichkeiten gefunden,
    um den Browser Cache zu deaktivieren (ausser Meta-TAGs)


    PHP
    <?php
    Header("Pragma: no-cache");
    Header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
    Header("Content-Type: text/html");
    ?>



    .htaccess
    <Files *>
    Header set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"
    Header set Expires: 0
    Header set Pragma: no-cache
    </Files>



    Fragen:

    Warum ist es bei PHP: "Cache-Control: no-store, no-cache, max-age=0, must-revalidate"
    aber in der .htacces: set Cache-Control: "private, pre-check=0, post-check=0, max-age=0"

    ist doch beides header Befehl, warum nicht "gleich" ?!?

    kann man nicht auch in php verwenden: private, pre-check=0, post-check=0

    kann man nicht in der .htacces auch verwenden: no-store, no-cache, must-revalidate

    was ist der Unterschied zwichen private und no-store, no-cache, must-revalidate ?


    wenn ich nur die .htaccess Variante nehmen will, wie ist es dann am besten ?!
    kann ich dort alles eintragen ? also auch no-store, no-cache, must-revalidate


    .htaccess
    <Files *>
    Header set Cache-Control: "private, no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0"
    Header set Expires: 0
    Header set Pragma: no-cache
    </Files>


    oder macht das keinen Sinn ? (oder gibt das gar Fehler ? )
    ?
  • in: Alle Mysqldaten aus xampp exportieren

    geschrieben von tauli

    hackyourlife schrieb:
    Es geht hierbei um die MySQL-Benutzer!


    achso ... ups ... dann hab ich es falsch verstanden.

    soweit ich weiss sind Die Benutzer in der Datenbank 'mysql' in der Tabelle 'users' gespeichert.
    (Zugang nur als root User)

    Wenn du alle Datenbanken exportierst (-> mysqldump), sind die Benutzerdaten dabei.

    oder

    in einer dos Console die mysqld.exe mit den Richtigen parametern ansteuern,

    mysqld -uroot -pPasswort -h localhost mysql > dump.sql


    dann legt diese einen Dump.sql der Benutzer und deren rechte an
    welche man dann ins neue xampp Importieren kann.
  • in: php-include-Befehl sicher machen?

    geschrieben von tauli

    die Sache ist die:

    man soll nicht $_GET['page'] direkt verwenden, weil so jede User-Eingabe direkt im Script ankommt.

    besser:
    die Eingabe aus $_GET['page'] escapen und Steuerzeichen (und Sonderzeichen, etc.) entfernen
    und dann mit der "gesäuberten" Variable weiter arbeiten

    hier male ein Beispiel (sicher nicht komplett 100% sicher)

    if (!empty($_GET['page'])) { 
    $run_page = trim(chop($_GET['page'])); 
    $run_page = strip_tags($run_page); 
    
    $suche = array( "\r", "\n", "\s", "\t", "\$", "\"", "%" ); 
    $ersetze = array( "",  "",  "",  "",  "",  "",  "" ); 
    
    $run_page = str_replace($suche,  $ersetze, $run_page); 
    
    $run_page = htmlentities($run_page); 
    $run_page = stripslashes($run_page); 
    }
    
    $myincludefile = "seiten/".$run_page.".php"; 
    
    if (file_exists($myincludefile)) { 
    include($myincludefile); 
    }


    man kann auch mit einem regex nur bestimmte Zeichen zulassen

    Bsp: nur erlaubt: Buchstaben, Zahlen, Unterstrich und Minus

    $run_page = preg_replace('/[^0-9A-Za-z_-]/', '', $_GET['page']);

    so wird alles, was nicht im Pattern definiert ist, einfach entfernt (ersetzt durch '' Leerstring)




  • in: Alle Mysqldaten aus xampp exportieren

    geschrieben von tauli

    Hallo

    wenn es viele Daten sind, dann mach ein Backup mit MySQLDumper

    Download hier: http://www.mysqldumper.de

    damit bekommst Du eine Backup Datei (alle MySQL Daten)
    welches du auch wieder (woander) Wiederherstellen kannst.

    Wenn Die Userdaten auch in MySQL gespeichert werden,
    dann sollten diese auch im Backup enthalten sein.

    Wenn Du Deine Userdaten Datei-basiert gespeichert hast
    dann musst Du eben diese Dateien (aus dem httpdocs Ordner) sichern ...

    Was meinst Du mit config.php (mysql einstellungen) ...wohl die Zugangsdaten (Host, User, Pass, DB-Name)
    .... auch einfach die Datei sichern, und für Nutzung anderswo einfach diese Werte anpassen.


  • in: phpBB Foren vor Spam Bots schützen?

    geschrieben von tauli

    Die Datei usercp_register.php
    ist im Ordner includes/ .... nicht im Hauptverzeichnis
    #

    sehr zu empfehlen ist SFS - Stop Forum Spam

    siehe hier: http://www.stopforumspam.com/

    Einbau Anleitung hier: http://www.phpbbhacks.com/download/8824

    mit der API kann man dann auch solche Spammer dort melden, die trotzdem durchkommen,
    also die Liste der bekannten Spammer Mails / Usernamen / IPs erweitern



    und anstatt der Frage

    Gebe in nebenstehendes Feld die Ziffer __sieben__ ein ....

    ist es besser "offene" Fragen zu stellen, bei denen die Antwort nicht gleich da steht

    z.B. wie heisst das große graue Tier mit dem Rüssel: (Antwort: Elefant)
    z.B: Welches Gelenk ist zwischen Oberarm und Unterarm: (Antwort: Ellbogengelenk oder Ellbenogen )
    etc.

    also Fragen, deren Antwort nicht im Text der Frage enthalten sind.

  • in: DIV innerhalb DIV zentrieren ?

    geschrieben von tauli

    Danke @fatfreddy

    werde es mal mit margin 0 auto ausprobieren

    EDIT: juhu ...das klappt so, Danke ... verstehe zwar die Logik nicht, aber hauptsache funzt.

    Danke @hackyourlife

    ja, Tippfehler ... muss natürlich raus das eine " .. also so

    <div id="innen" style="text-align:left; width:530px; background:#DEDEDE;">

    kommt daher, weil ich es vorher in der ur-alt Variante hatte,

    <div id="innen" align="left" width="530">

    hab nur einen ur-alt HTML Editor ;)
  • in: Umlaute mit str_replace(); umwandeln

    geschrieben von tauli

    Hallo

    wenn die Daten (String) aus der Datenbank als UFT-8 ankommen

    dann musst Du auch die Umlaute mit UTF-8 ersetzen.

    <?php
    function sonderzeichen($string)
    {
    $search = array("Ä", "Ö", "Ü", "ä", "ö", "ü", "ß", "´");
    $replace = array("Ae", "Oe", "Ue", "ae", "oe", "ue", "ss", "");
    
    $search2 = array();  // ---- neues Such-Array im UTF-8 Format ----
    foreach($search as $item) { 
    $search2[] = utf8_encode($item); 
    } 
    
    return str_replace($search2, $replace, $string);
    }
    ?>


    die "alten" Daten (nicht UTF-8 strings) aus der Datenbank umwandeln in UFT-8
    mit einer Schleife und UPDATE SQL Befehl ...

    dazu musst Du entweder die Stringst "kennen" (Datum / ID)
    oder du gehts alle durch und prüfst auf UTF-8,
    wenn nicht, dann utf8_encode und mit UPDATE speichern

    Aufpassen, das Du einen String nicht zweimal codierst (doppelt encodest)




  • in: DIV innerhalb DIV zentrieren ?

    geschrieben von tauli

    Hi,

    ich möchte innerhalb eines DIV ein anderes DIV zentriert darstellen,
    aber es klappt nicht ...

    <div id="aussen" style="text-align:center; width:100%">
       <div id="innen" style="text-align:left; width:530px; background:#DEDEDE;">
          <p>Hier Text linksbündig aber DIV innen zentriert zu DIV aussen ... </p>
       </div>
    </div>


    was ist daran falsch ?!

    EDIT: wenn ich DIV aussen mit der "alten" (nicht CSS) align="center" definiere,
    dann klappt es, aber ist das dann auch valider Code ?

    <div id="aussen" align="center" width="100%">
       <div id="innen" style="text-align:left; width:"530px; background:#DEDEDE;">
          <p>Hier Text linksbündig aber DIV innen zentriert zu DIV aussen ... </p>
       </div>
    </div>


    weil auf Dauer will ich ja auch den Style für die DIV id in einer .css Datei ablegen
    aber mit <div id="aussen" align="center" width="100%"> geht das ja sooo nicht,oder ?

    muss doch mit "reinem" CSS auch gehen ?!
  • in: Prüfen ob Datensatz vorhanden ist

    geschrieben von tauli

    Hallo

    ja mit COUNT() in der Abfrage bzw. mit mysql_num_rows()

    $ergebnis = mysql_query("SELECT * FROM `user` WHERE name = '".$name."' ");
    $anzahl = mysql_num_rows($ergebnis );
    
    if ( $anzahl < 1 ) { echo "Datensatzt ist nicht vorhanden"; }
    else { echo "Datensatzt ist vorhanden"; }


    oder

    $ergebnis = mysql_query("SELECT COUNT(*) AS treffer FROM `user` WHERE name = '".$name."' ");
    $anzahl = mysql_fetch_assoc($ergebnis); 
    
    if ( $anzahl['treffer']  < 1 ) { echo "Datensatzt ist nicht vorhanden"; }
    else { echo "Datensatzt ist vorhanden"; }



    ich glaube mysql_num_rows() ist schneller ...

Login zum Webhosting ohne Werbung!