kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: google taxonomy Liste zu Array mit Parent_Id

    geschrieben von tela

    Hallo

    Danke, sieht ja schon gut aus,

    da ist ein Fehler im Code:

    c = 0;  // --- max. Tiefe der Kategorie-Ebenen


    Variable als Buchstabe ohne $ definiert ?!?

    Wenn ich diese Zeile raus mache,dann geht's

    aber die google taxonomy Kategorie-Liste hat 7 Ebenen,
    mit Deinem Code bekomme ich aber nur $max_deep = 6;

    man kann die 7.Ebene dann zwar doch aufklappen,
    wenn man Sie im Baum findet, aber oben drüber steht Max Deep: 6

    aber sonst echt schön, das mit dem auf-/zu-klappen der <ul>

    Danke !!!
  • in: Guter Texteditor

    geschrieben von tela

    Hallo

    ich mag Notepad++ sehr gerne

    schnell, gute Syntax Highlighting und man kann einfach Codierung umwandeln (ANSII / UTF-8)

    Link: http://notepad-plus-plus.org/

    ich finde Notepad++ als "source code editor" auch deshalb so gut,
    weil man in Tabs arbeiten kann (der merkt sich sogar die zuletzt geöffneten)
    und so hat man zur Bearbeitung mehrerer Dateien nicht x Fenster offen

    also ... kann ich sehr empfehlen
  • in: Wie Text in (Klammern) entfernen?

    geschrieben von tela

    Vielen Dank

    beide Varianten sind sehr schön,
    vorallem weil auch daran gedacht wurde, nach (bzw. vor) dem Teilstring in Klammern
    auch nocch das - dann - überflussige Leerzeichen zu entfernen :)

    damit ich den preg_replace() nicht auf jeden String anwenden muss,
    werde ich wohl noch prüfen, ob die zwei Zeichen '(' und ')' drin sind

    $px = strpos($string,'('); 
    $py = strpos($string,')'); 
    
    if ($px && $py) { 
    // -- hier der preg_replace
    }


    das ganze jetzt noch als function, dann ist es super

    Variante 1: (von fabo)
    // ---------------------------------------------- 
    
    function klammertext_raus1 ($string) { 
    	
    	$px = strpos($string,'(');
    	$py = strpos($string,')');
    	
    	if ($px && $py) { 
    		$regex1 = '/\s*\([^)]*\)/';
    		$result = trim(preg_replace($regex1, '', $string));
    		return $result; 
    	}
    	else { 
    		return $string; 
    	}
    
    }
    
    // ----------------------------------------------



    Variante 2: (von: hackyourlife)
    // ---------------------------------------------- 
    
    function klammertext_raus2 ($string) { 
    	
    	$px = strpos($string,'(');
    	$py = strpos($string,')');
    	
    	if ($px && $py) { 
    		$regex2 = '/\\(.*?\\)\\s*/s';
    		$result = preg_replace($regex2, '', $string);
    		return $result; 
    	}
    	else { 
    		return $string; 
    	}
    
    }
    
    // ----------------------------------------------


    habe beide Varianten ausprobiert, funktioniert im "Normalfall" wunderbar


    was isch nicht verstehe, warum hackyourlife die Klammern doppelt escaped,
    $regex2 = '/\\(.*?\\)\\s*/s';

    aber bei dem regex von fabo sind die Klammern nur einfach escaped ?!
    $regex1 = '/\s*\([^)]*\)/';


    beides funktioniert, aber warum .. was ist der Unterschied?


    PS:
    ... aber wenn z.B. 2 Smilies :( und ;) im String sind,
    dann verschwindet auch der Text dazwischen ...

    $str = 'mein Hut ist ein Cowboy Hut :( der hat keine vier Ecken :) er ist rund';
    $res = 'mein Hut ist ein Cowboy Hut :er ist rund'


    ist nicht so schlimm, das kommt ja wohl eher selten vor ...
    evtl. muss ich halt Smilies vorher irgendwie umwandeln
    oder ich finde im regex eine Ausnahme-Regel daür

  • in: Wie Text in (Klammern) entfernen?

    geschrieben von tela

    Hallo

    wenn ich einen String habe wie:

    $string = 'mein Hut (Cowboy Hut) der hat keine vier Ecken (sondern) er ist rund';


    wie bekomme ich daraus alles was im Klammern steht raus, so dass übrig bleibt:

    $string = 'mein Hut der hat keine vier Ecken er ist rund';


    kann man in str_replace() auch direkt mit (regex) Pattern arbeiten ?
    oder (idee) alle Teil-Strings in Klammern (inkl. der Klammern) in Array holen (preg_match)
    und dann dieses Array durch str_replace() jagen .. oder gehts direkt mit preg_replace()
  • in: google taxonomy Liste zu Array mit Parent_Id

    geschrieben von tela

    Hallo

    wie bekomme ich aus dieser txt-Datei

    http://www.google.com/basepages/producttype/taxonomy.de-DE.txt

    ein Array mit je Element mit ID, Name und ParentID

    also so


    array ( 
    
       [0] => array( 
                 ['ID'] => 0
                 ['Name'] => Root
                 ['ParentID'] => x
               )
    		   
       [1] => array( 
                 ['ID'] => 1
                 ['Name'] => Baby & Kleinkind
                 ['ParentID'] => 0
               )
    		   
       [2] => array( 
                 ['ID'] => 2
                 ['Name'] => Baby baden
                 ['ParentID'] => 1
               )
    		   
       [3] => array( 
                 ['ID'] => 3
                 ['Name'] => Babybadewannen
                 ['ParentID'] => 2
               )
    		   
       [4] => array( 
                 ['ID'] => 4
                 ['Name'] => Babygesundheit
                 ['ParentID'] => 1
               )
    	   
       [5] => array( 
                 ['ID'] => 5
                 ['Name'] => Nasensauger
                 ['ParentID'] => 4
               )
    		   
       [6] => array( 
                 ['ID'] => 6
                 ['Name'] => Schnuller & Beißringe
                 ['ParentID'] => 4
               )
    
    ... usw
    
    )


    oder auch als Array mit der Struktur als Hirarchie

    gibts für sowas fertige funktionen oder klassen ?

  • in: Popups erstellen

    geschrieben von tela

    hallo

    also mit meinem kleinen Beispiel oben kann man das Fenster nicht verschiben
    man kann nur die Position vorher festlegen, Abstand von oben und links (in Pixel)

    Wenn der Layer bei Link innerhalb des Layers nicht verschwinden soll,
    dann ersetze einfach die Zeile

    <div id="layer1" onClick="hide('layer1')">

    durch:
    <div id="layer1">


    also den onClick Event im DIV raus machen,
    habe es nur rein, um zu zeigen, dass man auch dort einen onClick-Event einbauen könnte

    einen zweiten Layer kannst Du einfach durch einen Link aufmachen

    <p>Open Layer 2: <a href="javascript:show('layer2')">OPEN Layer 2</a></p>


    den kannst Du auch innerhalb von layer1 platzieren

    <div id="layer1">
      <p class="closelink"><a href="javascript:void(0)" onClick="hide('layer1')"><strong>CLOSE</strong></a></p>
      <h2>Layer Titel</h2>
      <p>Inhalt ... Bilder ... als HTML ... hier ...</p>
      <p>Open Layer 2: <a href="javascript:show('layer2')">OPEN Layer 2</a></p>
    </div>

    genauso wie bei layer1, du musst halt den div als id="layer2" und dazu einen CSS-Style anlegen

    neuer Teil im CSS:
    #layer2 {
      visibility:hidden;
      position:absolute;
      top:370px; left:320px;
      width:500px; height:200px;
      background:#FFFFAA;
      padding:0px;
      border:solid 1px #FF33FF;
      text-align:center;
    }


    und neues HTML

    <div id="layer2">
     <p class="closelink"><a href="javascript:hide('layer2')"><strong>CLOSE</strong></a></p>
     <h2>Layer Nummer 2</h2>
     <p>... ein anderer Inhalt ... auch als HTML ... jaja ...</p>
    </div>


    das klappt ganz gut :) .. habs ausprobiert

  • in: Popups erstellen

    geschrieben von tela

    einfaches Beispiel:

    <html>
    <head>
    <title>Layer Popup: open/close</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <script language="javascript" type="text/javascript">
    
    function show(id) {
    	document.getElementById(id).style.visibility = "visible";
    }
    
    function hide(id) {
    	document.getElementById(id).style.visibility = "hidden";
    }
    
    </script>
    
    
    <style type="text/css">
    <!--
    #layer1 { 
      visibility:hidden; 
      position:absolute; 
      top:160px; left:150px; 
      width:500px; height:200px; 
      background:#FFFFAA; 
      padding:0px; 
      border:solid 1px #FF33FF; 
      text-align:center;
    }
    
    .closelink { 
      position:absolute; 
      top:0px; right:0px; 
      margin:0px; 
      padding:8px; 
      background:#FF33FF;
    }
    
    .closelink a { 
      color:#FFFFFF; 
      text-decoration:none;
    }
    
    -->
    </style>
    
    
    </head>
    
    <body bgcolor="#FFFFFF" text="#000000">
    
    <br>
    <br>
    
    <p>Open Layer: <a href="javascript:void(0)" onClick="show('layer1')">OPEN</a></p>
    
    
    <div id="layer1" onClick="hide('layer1')">
     
     <p class="closelink"><a href="javascript:void(0)" onClick="hide('layer1')"><strong>CLOSE</strong></a></p>
     
     <h2>Layer Titel</h2>
      <p>Inhalt ... Bilder ... als HTML ... hier ...</p>
      <p>Blabla bla blablabla ...</p>
      <p>Alternativer Link: <a href="javascript:hide('layer1')"><strong>CLOSE</strong></a></p>
    
    </div>
    
    <br>
    <br> 
    <br>
    
    
    </body>
    </html>



    sollte funktionieren :) .... schön machen kann man es ja dann immernoch :)
    ... Position anpassen, Farben ändern, Inhalt im DIV id="layer1" mit Bild, etc..

    das sollte die Funktion (selbst-)erklären
    ... einfach mit onClick Events die Sichtbarkeit der Ebene an / aus


    EDIT:
    anstatt onClick geht glaub ich auch so: (im href)

    <a href="javascript:show('layer1')"><strong>OPEN</strong></a>
    bzw.
    <a href="javascript:hide('layer1')"><strong>CLOSE</strong></a>

    das ist wohl Geschmacks-Sache ... :)
  • in: Div's zentrieren

    geschrieben von tela

    Hallo

    setze einfach um das div noch ein div (wrapper) mit text-align:center;
    und mach in der CSS dazu margin: 0 auto; in Deinem content_rund


    HTML:
    <body>
       <div id="wrapper">
    	<div id="content_rund">
    		<h2>Chat Zugang</h2>
    		...
    	</div>
       </div>
    </body>


    CSS:

    #wrapper {
    	text-align: center;
    }
    
    #content_rund {
    	margin: 0 auto; 
    	height: 500px;
    	width: 500px;
    	background-color: #800000;
    	color: #FFFFFF;
    
    	moz-border-radius: 25px;
    	border-radius: 25px;
    }



    das
    margin: 0 auto;
    ist wichtig, vorallem das "auto" darin,
    damit der Außen-Abstand automatisch angepasst wird und somit Dein content_rund in der Mitte steht

    also nochmal ein Beispiel mit direkter CSS-Style Definition:

    <div style="text-align:center;">
    	<div style="margin: 0 auto; padding:8px; width:550px; height:230px; background:#003366; color:#FFFFFF;">
    		
    		<h3>Titel</h3>
    		<p style="text-align:left;">Text bla bla </p>
    		<p>weiterers <strong>HTML</strong> in der Box </p>
    		
    	</div>
    </div>



    wie fatfreddy schon schrieb: das margin: 0 auto; ist wichtig
    wenn mann eine Box (DIV) innerhalb einer anderen Ebene (body oder div) zentrieren will ...

    Du kannst also auch den "wrapper" DIV weglassen und im body das text-align:center; machen
    das klappt auch, solange du für Dein "content_rund " das
    margin: 0 auto;
    im CSS hast
    :)
  • in: MySQL über 2 Tabellen mit mehrfach Treffer

    geschrieben von tela

    Danke, werde es gleich ausprobieren


    philippkern schrieb:
    Warum hast du den einen LEFT JOIN gemacht?
    Weißt du den was das heißt?


    nein, nicht wirklich, ich habe halt nach "MySQL zwei Tabellen auslesen" gegoogelt
    und sowas als Beispiel gefunden ...

    was ist der Unterschied zwischen "JOIN" und "LEFT JOIN" ??

    und GROUP_CONCAT() ist mir auch neu, scheint je recht nützlich zu sein,
    um nicht zu sagen: fast unverzichtbar,
    wenn man Ergebnisse mit mehrfach-Treffer aus 2 Tabellen holen will

    ich glaub ein gutes Erklär-Beispiel dazu auch hier gefunden zu haben

    Danke, wieder was "Neues" (für mich) dazu gelernt, ... :)
    in den meisten MySQL Tutorials geht es leider ja meist nicht so "Tief"
    die Grundlagen sind schnell kapiert, aber da steckt deutlich mehr dahinter, wenn man etwas "Komplexere" Abfragen will
    und meine ist ja noch immer eher "einfach" ... uiiii da kann ich sicher noch viel dazulernen
  • in: MySQL über 2 Tabellen mit mehrfach Treffer

    geschrieben von tela

    Hallo

    ich habe 2 Tabellen, über die ich eine kombinierte Anfrage machen will

    Problem dabei ist, das zur ID aus der Tabelle1 mehrere Einträge in Tabelle2 sein können

    Tabelle1
    --------------------------------- 
    id	name	spalte3
    --------------------------------- 
    1	AAAA	...
    2	BBBB	...
    3	YYYY	...
    
    
    Tabelle2
    --------------------------------- 
     refid	info	mehr
    --------------------------------- 
     1	12	a
     2	99	b
     1	34	c
     3	85	d
     1	27	e
     2	56	f


    Also für die id aus Tabelle1 gibt es mehrere Treffer in Tabelle2

    wie kann ich eine Abfrage machen, in der das Ergebnis nicht mehrfach da ist
    sondern die Treffer aus Tabell2 als Sub-Array

    BSP:

    $gouid = 2; 
    
    $sql = "
    SELECT `tabelle1`.*, `tabelle2`.*
    FROM `tabelle1`
    LEFT JOIN `tabelle2` ON `tabelle2`.`refid` = `tabelle1`.`id`
    WHERE `tabelle1`.`id` = '{$gouid}'
    ";


    damit bekomme ich aber in jedem Treffer nochmal alle Daten aus tabelle1
    also

    array( 
      [0] => array(
                 [id] => 2
                 [name] => BBBB
                 [spalte3] => ...
                 [refid] => 2
                 [info] => 99
                 [mehr] => b
                )
      [1] => array(
                 [id] => 2
                 [name] => BBBB
                 [spalte3] => ...
                 [refid] => 2
                 [info] => 56
                 [mehr] => f
                )


    ich hätte es aber gerne so

    array( 
      [0] => array(
                 [id] => 2
                 [name] => BBBB
                 [spalte3] => ...
                 [refid] => 2
                 [info] => array(
                                 [0] => 99
                                 [1] => 56
                             )
                 [mehr] => array(
                                 [0] => b
                                 [1] => f
                             )
                )


    Unterschied sieht jetzt im BSP nicht groß aus,
    aber mit echten Daten ist die zweite (gewünschte) Version deutlich kürzer

    also .. wiet alle Daten zur Haupt-Id in einem Ergebnis (Array)
    wenn mehrfache Treffer aus Tabelle2 dann als Sub-Array im Ergebnis

    geht das überhaupt direkt in der Abfrage, wenn mehrere Treffer, diese als Array

    oder wie sonst Abfrage über 2 Tabellen mit mehreren (möglichen) Treffern aus der 2ten Tabelle ?


    ok, es geht mit mehreren SQL-Abfragen in einer while-Schleife

    (zur Info, es kann auch mal nach mehreren Haupt-IDs gefragt sein)

    $result = mysql_query( "SELECT * FROM `tabelle1` WHERE `id` = '{$gouid}' ); 
    $data= array(); 
    
    $n=0; 
    while($row = mysql_fetch_assoc($result)) { 
    
      $data[$n] = $row; 
    
      $result2 = mysql_query("SELECT * FROM tabelle2 WHERE refid='{$row['id']}' "); 
    
      while($row2 = mysql_fetch_assoc($result2)) { 
         $data[$n]['info'][] = $row2['info']; 
         $data[$n]['mehr'][] = $row2['mehr']; 
      }
    
      $n++; 
    }


    aber mit sowas sendet man ja schnell mal einige (viele) MySQL-Abfragen an den Server,
    deshalb bin ich auf der Suche, wie ich das evtl. Ressourcen-schonender machen kann.

  • in: Besucherrückverfolgung

    geschrieben von tela

    Hallo

    Du kannst so wie ich es mit $myhost = $_SERVER['SERVER_NAME'];
    gemnacht habe auch mit einem Array für "Badwords" machen,
    also eine Liste von Hosts zusätzlich zu der eigenen die gesperrt sind

    $keinref = array($myhost, "google.de","google.com");

    dann halt da noch ne Schleife die alle Domains in dem Array durchgeht
    und wenn in $newref enthalten dann nicht schreiben und nicht ausgeben.

  • in: Projekt: Design-Vorlagen bei Lima-City

    geschrieben von tela

    hallo

    ja, die Idee dahinter ist natürlich alle Designs werden Kostenlos und lizenzfrei angeboten,
    lediglich mit der Bitte den Zusatz: Design von <Name> auf der Seite zu belassen,

    und keine Gulden, einfach so und ganz ohne Hürden,
    im Gegenteil am besten mit Doku, Infos und Diskussion je Design/Layout.
    auch mit Links zu entprechenden Editoren, Manuals, usw.

    - Besucher können ohne Anmeldung Downloaden, Bewertung oder Kommentar abgeben
    - User können neue Templates einreichen und Artikel dazu schreiben (Anleitung, Doku, etc)
    - Moderatoren können eingereichte Templates testen und freigeben, + Artikel schreiben
    - Entwickler erstellen Features für das Projekt: Programmierung und Designelemente
    - Admins sorgen für Verwaltung, Hosting, Planung, Management, Script, Updates, etc.

    das ganze könnte man bei zuviel Download-Volumen dann auch so machen, dass man nur als angemeldeter User downloaden kann, aber für den Anfang sollte es eher ohne Hürden sein und möglichst einfach gehalten werden.

    weitere Ideen zur Umsetzung ?
  • in: Besucherrückverfolgung

    geschrieben von tela

    also im code wird ja nix anderes ausser die REFERER-URL gespeichert

    hier nochmal ne Version2:

    <?php 
    $rmax = 10; 
    $rdatei = "referer.txt"; 
    $newref = $_SERVER['HTTP_REFERER']; 
    $myhost = $_SERVER['SERVER_NAME']; 
    
    // ------ Daten einlesen ------ 
    $rdaten = file($rdatei);
    $rx = count($rdaten); 
    if ($rx>$rmax) { $bis = $rmax; } else { $bis = $rx; } 
    
    
    // ------ neue Daten schreiben ------ 
    if ( isset($newref) and $newref != "0" and $newref != "" ) { 
    
    
    preg_match('@^(?:http://)?([^/]+)@i', $newref, $treffer);
    $rehost = $treffer[1];
    
    echo "<br>\r\n";
    echo "<br>My-Host: ".$myhost."\r\n";
    echo "<br>RefHost: ".$rehost."\r\n";
    echo "<br>\r\n";
    
    if ($rehost != $myhost) { 
    
    ### externer Referer-Link 
      $handle=fopen($rdatei,"w"); 
      if ($newref != "") { fputs($handle,$newref."\r\n"); } 
    for ($x=0; $x<$bis; $x++) { 
       $rdaten[$x] = chop($rdaten[$x]); 
       if ($rdaten[$x] != "") { fputs($handle,$rdaten[$x]."\r\n"); }
       }
    fclose($handle); 
    
    }
    else { 
    ### interner Referer-Link 
    }
    
    }
    
    
    // ------ Daten nur ausgeben ohne schreiben------ 
    
    if ($rehost != $myhost) { 
    if (isset($newref)) { echo "<br />".$newref.""; } 
    }
    else { 
    ### interner Referer-Link 
    }
    
    for ($x=0; $x<$bis; $x++) { 
    echo "<br />".$rdaten[$x].""; 
    } 
    
    
    
    
    
    ?>


    jetzt werden REFERERs vom eigenen Webspace nicht mehr mit gespeichert, nur noch wenn Klick auf Link von anderer Seite
    :)
    habs jetzt doch auch mal getestet, ist doch genau was Du willst ... ?! :)

  • in: Besucherrückverfolgung

    geschrieben von tela

    Hi
    ja, habe grad selber am Code oben die gröbsten Schnitzer ausgebessert,
    mit edit ...
    jetzt sollte es besser gehen, nochmal testen bitte ;)

    und ja, stimmt, so speichert er alle Anfragen die ein Referer-Wert leifern
    also auch doppelte, Spider, Robots, etc. und auch interne Links

    ich wollte ja nicht gleich alles verraten ;) ... keine Komplettlösung mal so runter-tippen ...

    man kann als "Bedingung" zum speichern bestimmt noch viele Kriterien festlegen um Einschränkungen zu machen ob zur Liste hinzufügen oder nicht, vorallem interne Links ausschließen. oder auch erweitern mit Zeit des Referer auch speichern, usw ...

    ok, die Liste jedesmal komplett neu mit "w" zu schreiben ($bis ist maximal 10) ist vielleicht suboptimal, aber die Menge 10 als Maximum in der Liste müsste doch funktionieren
  • in: Besucherrückverfolgung

    geschrieben von tela

    Hallo

    einfach den Wert von

    $_SERVER['HTTP_REFERER'];

    in einen .txt Datei schreiben und zur Ausgabe diese auslesen
    (bei viel Traffic aus Performance-Gründen in MySQL speichern)


    <?php 
    $rmax = 10; 
    $rdatei = "referer.txt"; 
    $newref = $_SERVER['HTTP_REFERER']; 
    
    // ------ Daten einlesen ------ 
    $rdaten = file($rdatei);
    $rx = count($rdaten); 
    if ($rx>$rmax) { $bis = $rmax; } else { $bis = $rx; } 
    
    
    // ------ neue Daten schreiben ------ 
    if (isset($newref)) { 
      $handle=fopen($rdatei,"w"); 
      fputs($handle,$newref."\r\n"); 
    for ($x=0; $x<$bis; $x++) { 
       $rdaten[$x] = chop($rdaten[$x]); 
       fputs($handle,$rdaten[$x]."\r\n"); 
       } 
    fclose($handle); 
    }
    
    
    // ------ Daten nur ausgeben ohne schreiben------ 
    if (isset($newref)) { echo "<br /> Referer: <i>".$newref."</i>"; } 
    for ($x=0; $x<$bis; $x++) { 
    echo "<br /> Referer: <i>".$rdaten[$x]."</i>"; 
    } 
    
    ?>



    so in der Art ...habs nicht getestet ;)

    edit: PS: zum Speichern ohne Ausgabe einfach
    bei den Zeilen mit Ausgabe ein paar Rauten davor einfügen:
    ### echo "<br /> Referer:...
    oder anders auskommentieren / die Zeilen mit echo entfernen ...

  • in: kann man aus PHP auch .exe machen ?

    geschrieben von tela

    jo
    habe schon gesucht, aber den von Dir genannten Beitrag nicht dabei gefunden

    vielen Dank für die Links zerojan und sonok

  • in: Projekt: Design-Vorlagen bei Lima-City

    geschrieben von tela

    Hallo !!!

    habe da gerade eine Idee für ein neues Projekt auf und für Lima-City
    welches wir Alle gemeinsam aufbauen und vorallem mit Inhalten füllen


    Design-Vorlagen (fertige CSS-Layouts) von und für Lima-City User

    -------------------------------------

    Eine (Download-) Plattform erstellen, auf der sich User fertige CSS-Layouts auswählen und herunterladen können.
    Nach dem Vorbild von bekannten CSS-Layout-Sammlungen: eine Gallerie mit Thumbshot und Demo und eine Sortierung nach z.B. Spalten-Anzahl, Farben, Bewertung, Datum, Klicks/Downloads, ... etc.

    Man kann sich als User anmelden und selbst erstellte Designs hinzufügen / hochladen, die dann vor Freigabe geprüft werden sollten.
    ---> Dazu bräuchte es ein Team freiwilliger Admins / Moderatoren für das Projekt.


    Jeder User bekommt eine Profil-Seite (Nik-Page) auf der eine Liste seiner Designs, eigene Links, etc, drauf können.
    Im Design selber soll als Hinweis zum Ersteller der User genannt werden, Der Name mit Link auf seine Nik-Page.
    so z.B: ~~~ Design by: <Name mit Link> ~~~

    -------------------------------------


    und ... was haltet Ihr von der Idee?

    ... wer würde mitmachen
    a) als User neue Designs bereitstellen
    b) als Admin / Mod (Pflege, Freigaben)
    c) als Entwickler (Programmierung)

  • in: kann man aus PHP auch .exe machen ?

    geschrieben von tela

    Hallo

    gibt es ein Tool, das aus PHP eine (in Windows) lauffähige .exe machen kann?

  • in: Besucher Statistik (Heute - Gestern - Insgesamt)

    geschrieben von tela

    hmm, ja logisch,
    die Entwickler wollen ja auch was davon haben
    wenn Sie schon ein Script kostenlos bereitstellen
    meist mit Copyright-Hinweis der einen Link enthält

    ich finde für ein gutes Script kann man auch gerne den Hinweis/Link akzeptieren,
    die Alternative ist selber programmieren .... was bei einem Counter nicht kompliziert ist

    ich denke es gibt auch Anleitungen / Tutorials mit dem Thema: Counter in PHP coden

    ich habe sogar einen Code, der macht aber dieser Monat / letzer Monat anstatt gestern / heute
    und ist nicht wirklich gut ... frisst glaub ich viel Ressourcen bzw. nur was für "kleine" Seiten

    ... Probleme:
    - mehrere Datei-Zugriffe (lesen und schreiben) je Aufruf.
    - es wird nicht nur Neuer User gespeichert, sondern immer auch alle in Reloadsperre
    - evtl. Crash bei Aufruf von 2 usern in der gleichen Sekunde (gelichzeitiger Datei-Zugriff)

    also etwas buggy ... eigentlich nicht zu empfehlen !!!!
    wenn, dann sollte man das Speichern der Werte in MySQL machen


    --------------------------------------------------------------------
    Datei: /counter/inc-counter.php

    <?php
    // ----------- IP Counter ---- Setup ------------ 
    
    if (!isset($ipsperre)) { $ipsperre = (60*60*6); // ------- Besucher-Sperre in Sekunden ----- } 
    if (!isset($onsperre)) { $onsperre = (60); // ------- User-Online in Sekunden ----- } 
    
    $zeit = time();
    
    $zeitende = ($zeit + $ipsperre);
    $onltende = ($zeit + $onsperre);
    
    // -------- Counter Dateinamen ----------
    
    $ajahr = date(Y); 
    $amonat = date(m); 
    $atag = date(d); 
    $azeit = date("H:i:s"); 
    
    
    $datei_uops = $_SERVER['DOCUMENT_ROOT']."/counter/liste_user.txt"; 
    $datei_uips = $_SERVER['DOCUMENT_ROOT']."/counter/liste_uips.txt"; 
    
    $datei_online = $_SERVER['DOCUMENT_ROOT']."/counter/u_online.txt"; 
    
    $datei_gesamt = $_SERVER['DOCUMENT_ROOT']."/counter/z_gesamt.txt"; 
    $datei_amonat = $_SERVER['DOCUMENT_ROOT']."/counter/z_".$ajahr."_".$amonat.".txt"; 
    $datei_lmonat = $_SERVER['DOCUMENT_ROOT']."/counter/z_".$ajahr."_".$lmonat.".txt"; 
    
    $datei_vgesamt = $_SERVER['DOCUMENT_ROOT']."/counter/v_gesamt.txt"; 
    $datei_vamonat = $_SERVER['DOCUMENT_ROOT']."/counter/v_".$ajahr."_".$amonat.".txt"; 
    $datei_vlmonat = $_SERVER['DOCUMENT_ROOT']."/counter/v_".$ajahr."_".$lmonat.".txt"; 
    
    
    
    // ------------------------------------------------
    
    if (!file_exists($datei_uops)) { 
    $fp1 = fopen ( $datei_uops, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_uops,0755); 
    }
    
    if (!file_exists($datei_uips)) { 
    $fp1 = fopen ( $datei_uips, "w+" );
    fwrite ( $fp1, "ipadresse|zeitende|\r\n" );
    fclose ( $fp1 );
    chmod($datei_uips,0755); 
    }
    
    if (!file_exists($datei_gesamt)) { 
    $fp1 = fopen ( $datei_gesamt, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_gesamt,0755); 
    }
    
    if (!file_exists($datei_online)) { 
    $fp1 = fopen ( $datei_online, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_online,0755); 
    }
    
    if (!file_exists($datei_amonat)) { 
    $fp1 = fopen ( $datei_amonat, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_amonat,0755); 
    }
    
    if (!file_exists($datei_lmonat)) { 
    $fp1 = fopen ( $datei_lmonat, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_lmonat,0755); 
    }
    
    if (!file_exists($datei_vgesamt)) { 
    $fp1 = fopen ( $datei_vgesamt, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_vgesamt,0755); 
    }
    
    if (!file_exists($datei_vamonat)) { 
    $fp1 = fopen ( $datei_vamonat, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_vamonat,0755); 
    }
    
    if (!file_exists($datei_vlmonat)) { 
    $fp1 = fopen ( $datei_vlmonat, "w+" );
    fwrite ( $fp1, "0" );
    fclose ( $fp1 );
    chmod($datei_vlmonat,0755); 
    }
    
    
    
    
    
    
    
    // ------------------------- Besucher -----------------------
    
    $anz_gesamt = implode("",file($datei_gesamt));
    $anz_amonat = implode("",file($datei_amonat));
    $anz_lmonat = implode("",file($datei_lmonat));
    
    $read_ips = file($datei_uips);
    $ianz = count($read_ips);
    $neu = "ja";
    
    
    $fp1 = fopen ( $datei_uips, "w" );
    
    for ($ix=0; $ix<$ianz; $ix++) {
    $data_ips[$ix] = explode("|",$read_ips[$ix]);
    
    if ($data_ips[$ix][0] == $userip) { $neu = "nein"; }
    
    if ($data_ips[$ix][1] > $zeit) {
    ### fwrite ( $fp1, "".$data_ips[$ix][0]."|".$data_ips[$ix][1]."|" );
    fwrite ( $fp1, $read_ips[$ix] ); // ------ IP noch in Sperrzeit ------
    }
    else { 
    // ------ IP aus der Liste raus lassen ------
    } 
    
    }
    fclose ( $fp1 );
    chmod($datei_uips,0755);
    
    
    
    if ($neu != "nein") {
    
    $fp1 = fopen ( $datei_uips, "a" );
    fwrite ( $fp1, "".$userip."|".$zeitende."|\r\n" );
    fclose ( $fp1 );
    
    $anz_gesamt = ($anz_gesamt + 1); 
    $anz_amonat = ($anz_amonat + 1);
    
    $fp1 = fopen ( $datei_gesamt, "w" );
    fwrite ( $fp1, $anz_gesamt );
    fclose ( $fp1 );
    chmod($datei_gesamt,0755);
    
    $fp1 = fopen ( $datei_amonat, "w" );
    fwrite ( $fp1, $anz_amonat );
    fclose ( $fp1 );
    chmod($datei_amonat,0755);
    
    
    }
    
    // ------------------------------------------------
    
    
    
    // ------------------------ User Online ------------------------
    
    $anz_online = 0; 
    
    ## $anz_online = implode("",file($datei_online));
    
    
    $read_ops = file($datei_uops);
    $oanz = count($read_ops);
    $oneu = "ja";
    
    $fp1 = fopen ( $datei_uops, "w" );
    
    for ($ix=0; $ix<$oanz; $ix++) {
    $data_ops[$ix] = explode("|",$read_ops[$ix]);
    
    if ($data_ops[$ix][0] == $userip) { $oneu = "nein"; }
    
    if ($data_ops[$ix][1] > $zeit) {
    ### fwrite ( $fp1, "".$data_ops[$ix][0]."|".$data_ops[$ix][1]."" ); 
    fwrite ( $fp1, $read_ops[$ix] ); // ------ IP noch in Sperrzeit ------
    $anz_online = ($anz_online + 1); 
    }
    else {
    }
    
    }
    fclose ( $fp1 );
    chmod($datei_uops,0755);
    
    
    
    if ($oneu != "nein") {
    
    $fp1 = fopen ( $datei_uops, "a" );
    fwrite ( $fp1, "".$userip."|".$onltende."\r\n" );
    fclose ( $fp1 );
    chmod($datei_uops,0755);
    
    $anz_online = ($anz_online + 1); 
    
    $fp1 = fopen ( $datei_online, "w" );
    fwrite ( $fp1, $anz_online );
    fclose ( $fp1 );
    chmod($datei_online,0755);
    
    
    }
    
    // ------------------------------------------------
    
    
    
    $anz_vgesamt = implode("",file($datei_vgesamt));
    $anz_vamonat = implode("",file($datei_vamonat));
    $anz_vlmonat = implode("",file($datei_vlmonat));
    
    $anz_vgesamt = ($anz_vgesamt + 1); 
    $anz_vamonat = ($anz_vamonat + 1);
    
    $fp1 = fopen ( $datei_vgesamt, "w" );
    fwrite ( $fp1, $anz_vgesamt );
    fclose ( $fp1 );
    chmod($datei_gesamt,0755);
    
    $fp1 = fopen ( $datei_vamonat, "w" );
    fwrite ( $fp1, $anz_vamonat );
    fclose ( $fp1 );
    chmod($datei_amonat,0755);
    
    
    // ------------------------------------------------
    
    
    
    if ($anz_online < 1) { $anz_online = 1; } 
    
    
    if ($anz_online > 1 ) { 
    $bz = "sind"; 
    $by = "gelichzeitig Online"; 
    } else {  
    $bz = "ist"; 
    $by = "auf dieser Homepage"; 
    } 
    
    
    // ------------------------------------------------
    
    
    ### $online_time = filectime($datei_vgesamt);
    ### $online_time = ($online_time+7200); 
    
    ### $online_datum = date("d.m.Y",$online_time);
    ### $online_zeit = date("H:i",$online_time);
    
    $online_datum = date("d.m.Y",$zeit);
    $online_zeit = date("H:i",$zeit);
    
    
    // -------------------------- Ausgabe 2 --------------
    
    
    $counter_ausgabe2 = "
    <br /> Gesamt: ".$anz_gesamt." Besucher | ".$anz_vgesamt." PageViews 
    <br /> Dieser Monat: ".$anz_amonat." Besucher | ".$anz_vamonat." PageViews 
    <br /> Lezter Monat: ".$anz_lmonat." Besucher | ".$anz_vlmonat." PageViews 
    <br /> Aktuell ".$bz." ".$anz_online." Besucher ".$by." 
    <br /> Heute ist: ".$online_datum." um ".$online_zeit." Uhr 
    ";
    
    
    // -------------------------- Ausgabe --------------
    
    
    $counter_ausgabe = '
    <table width="340" border="0" cellspacing="0" cellpadding="4" align="center">
      <tr valign="top" class="text2"> 
        <td width="120" align="right"> &nbsp; </td>
        <td width="100" align="right"> Besucher </td>
        <td width="120" align="right"> PageViews </td>
      </tr>
      <tr valign="top" class="text2"> 
        <td width="120" align="right"> Gesamt: </td>
        <td width="100" align="right"> '.$anz_gesamt.' </td>
        <td width="120" align="right"> '.$anz_vgesamt.' </td>
      </tr>
      <tr valign="top" class="text2"> 
        <td width="120" align="right"> Dieser Monat: </td>
    	<td width="100" align="right"> '.$anz_amonat.' </td>
        <td width="120" align="right"> '.$anz_vamonat.' </td>
      </tr>
      <tr valign="top" class="text2"> 
        <td width="120" align="right"> Lezter Monat: </td>
    	<td width="100" align="right"> '.$anz_lmonat.' </td>
        <td width="120" align="right"> '.$anz_vlmonat.' </td>
      </tr>
    </table> 
    
    <table width="300" border="0" cellspacing="0" cellpadding="4" align="center">
     <tr valign="top" class="text2"> 
      <td width="300" align="center"> 
      Aktuell '.$bz.' jetzt '.$anz_online.' Besucher Online 
      </td>
     </tr>
     <tr valign="top" class="text2"> 
      <td width="300" align="center"> 
      Heute ist: '.$online_datum.' um '.$online_zeit.' Uhr
      </td>
     </tr>
    </table> 
    ';
    
    
    
    ?>




    Einbau:

    <?php
    include("$_SERVER['DOCUMENT_ROOT']."/counter/inc-counter.php");
    echo $counter_ausgabe2;
    ?>

    keine Garantie !!!!

    ich empfehle es nicht, ist nur so als BSP

    sollte doch besser mit MySQL sein, ist viel stabiler bei gleichzeitiger Anfrage als gleichzeitige Datei-Zugriffe

  • in: Besucher Statistik (Heute - Gestern - Insgesamt)

    geschrieben von tela

    wenn Du bischen nach gratis php-scripte suchst, dann findest Du bestimmt einige Counter-Scripte, die deine gewünschten Werte ermitteln und ausgeben.
    Diejenigen, die etwas mehr "Details" liefern brauchen meist MySQL.

Login zum Webhosting ohne Werbung!