css-formatierte Ausgabe mit php



  • Neues Problem.

    Nach dieser Passage wird mir nix mehr ausgegeben!

    <div class="menu_link_container">
    <?php
    	counter();
    ?>
    </div>
    

    Was mache ich falsch?



  • Was man machen könnte, ist eine dynamische CSS Datei, die von PHP erstellt wird, ich hab es aber noch nie gebraucht, muss ich sagen.



  • curry-king schrieb:

    Neues Problem.

    Nach dieser Passage wird mir nix mehr ausgegeben!

    Was meinst du damit?
    Wird nach dem

    <div class="menu_link_container">[..]</div>
    

    nichts mehr ausgegeben oder liegt es an deinem PHP Script?



  • Hi

    nach dem Aufruf der counter() Funktion wird kein HTML mehr ausgegeben.
    Es könnte demnach an der Funktion liegen, oder?
    Muss man die Funktion irgendwie ordnungsgemäss verlassen?

    ich poste mal die counter() Funktion, die in diesem div-layer liegt:

    <?php
    
    function counter() {
    
    //Dateien öffnen
    $fp_locked_ip=fopen("locked_ips","r+"); //gelogte ips
    $fp_counter=fopen("counter","r+");	//zählerstand
    $fp_day=fopen("day","r+");		//1 tag wird die ip gesperrt
    
    $day=fread($fp_day,2);
    $a=getdate();
    
    //ist ein tag drin?
    if ($day=="") {	
    	fwrite($fp_day,$a['mday']);
    }
    else { //wenn tag drin
    	if ( $day == $a['mday']-1) { //ips in datei löschen
    		ftruncate ($fp_locked_ip, 0);
    		fseek($fp_locked_ip, 0);
    		ftruncate ($fp_day, 0);
    		fseek($fp_day, 0);
    		fwrite($fp_day,$a['mday']); //neues datum in day-datei schreiben
    	}
    }
    fclose($fp_day);	
    
    //sind schon ips gelogt? Wenn ja, alle einlesen!
    if (filesize('locked_ips')==0) {
    	$all="";
    }
    else {
    	$all=fread($fp_locked_ip,filesize('locked_ips'));
    }
    
    //zählerstand einlesen
    $counter=fgets($fp_counter,10);
    
    //counter auf 0 setzten
    if ($counter=="")	
    	$counter=0;
    
    if ($all == "") { //wenn keine ips gelogt, dann ip schreiben und zählerstand erhöhen
    
    	fwrite($fp_locked_ip,$_SERVER['REMOTE_ADDR'].",");
    	$counter++;
    }
    else { //else jede gelogte ip mit der aktuellen vergleichen, wenn drin, alten zählerstand ausgeben und beenden
    	$ips=explode(",",$all);
    	for ($i=0, $j=count($ips); $i < $j; $i++) {
    
    		if ($ips[$i] == $_SERVER['REMOTE_ADDR']) {
    
    			echo $counter;
    			fclose($fp_locked_ip);
    			fclose($fp_counter);
    			exit();
    		}
    	}
    
    	//datei-zeiger ans ende setzen und ip adresse schreiben
    	fseek($fp_locked_ip,0,SEEK_END);
    	fwrite($fp_locked_ip,$_SERVER['REMOTE_ADDR'].",");
    
    	//counter erhöhen, da neue ip
    	$counter++;
    }
    
    //counter ausgeben
    echo $counter;
    
    //neuen counterstand schreiben und beenden
    rewind($fp_counter); 	//lesen rückgängig machen
    fwrite($fp_counter,$counter);
    
    fclose($fp_locked_ip);
    fclose($fp_counter);
    }
    ?>
    

    tHx


  • Mod

    supertux schrieb:

    Was man machen könnte, ist eine dynamische CSS Datei, die von PHP erstellt wird, ich hab es aber noch nie gebraucht, muss ich sagen.

    macht ja auch keinen sinn. oder kann mir echt jemand ein sinnvolles beispiel dafür bringen - ich kann mir nichteinmal eins vorstellen



  • Shade Of Mine schrieb:

    supertux schrieb:

    Was man machen könnte, ist eine dynamische CSS Datei, die von PHP erstellt wird, ich hab es aber noch nie gebraucht, muss ich sagen.

    macht ja auch keinen sinn. oder kann mir echt jemand ein sinnvolles beispiel dafür bringen - ich kann mir nichteinmal eins vorstellen

    ich schon.
    Angenommen: ich schreib eine Seite, die templates hat und bietet mehrer Designs an. Die Benutzer können sie wählen und bspweise die default Farben/Fonts/Font Größe/etc des Layouts nehmen oder ihre eigene, die in die Datenbank gespeichert werden. Dann könnte man die CSS Ausgabe abhängig von Benutzer machen und HTML und CSS bleiben auch getrennt. In einem Forum wie hier wäre es z.b. für mich göttlich, dass ich etwas anders als Verdana wählen könnte.


  • Mod

    supertux schrieb:

    Angenommen: ich schreib eine Seite, die templates hat und bietet mehrer Designs an. Die Benutzer können sie wählen und bspweise die default Farben/Fonts/Font Größe/etc des Layouts nehmen oder ihre eigene, die in die Datenbank gespeichert werden. Dann könnte man die CSS Ausgabe abhängig von Benutzer machen und HTML und CSS bleiben auch getrennt.

    Interessant. Muss man mal darüber nachdenken...
    würde aber vermutlich niemand nützen, man muss sich ja nur anschauen wie oft skin fähigkeit von webseiten ausgenutzt wird 😉 nahezu nie...

    In einem Forum wie hier wäre es z.b. für mich göttlich, dass ich etwas anders als Verdana wählen könnte.

    definier dir doch ein user stylesheet, oder kann das dein browser nicht?

    btw: du kannst auch ein style selber definieren und dann Gerard fragen ob er es zur auswahl stellt.



  • Shade Of Mine schrieb:

    würde aber vermutlich niemand nützen, man muss sich ja nur anschauen wie oft skin fähigkeit von webseiten ausgenutzt wird 😉 nahezu nie...

    das ist allerdings wahr, wenige haben ein anderes Layout. Ich suche immer an den Portalen (wo ich neu bin) als erstes ein Layout, das zu mir passt und dann surfe ich weiter.
    Hier hat mit das blaue von anfgang an gefallen und mittlerweile habe ich gemerkt, dass es das grüne nicht mehr gibt. Naja. "niemand" finde ich auch übertriebend, aber sehr wenige würden es tatsächlich benutzen.

    Shade Of Mine schrieb:

    definier dir doch ein user stylesheet, oder kann das dein browser nicht?

    doch, das kann mein Browser, doch leider habe ich nur Probleme mit den phpBB Boards immer Probleme mit zu kleinen Fonts, und deshalb nur für diese Seite alles selber ändern müsste. Es ist auch ein bisschen Faulheit, weil die CSS von diesem Forum schon ein bisschen lang sind.

    btw: du kannst auch ein style selber definieren und dann Gerard fragen ob er es zur auswahl stellt.

    das ist eine interessante Alternative, werde daran denken. Wenn iche s tue, dann muss ich nur die CSS Dateien "neu schreiben" oder was?



  • Aehh, sorry aber zurueck zu meiner frage. Ich check einfach nicht,
    warum nach dem Funktionsaufruf kein HTML-Code mehr ausgegeben wird *verzweifel*.
    Bin noch php-newb, aber an der function dürfte doch nix verkehrt sein?
    Mal abgesehen von der Logik!

    ThX



  • also ich fange mal an
    deine css-datei:
    style.css

    #counter {
    color:blue;
    border-bottom:1px solid black;
    }
    # deine restlichen formatierungen
    

    so nun deine php-datei
    counter.php

    //hier schreibst du deine funktion rein
    function counter()
    { ...
    

    jetzt deine html-datei aber die musst du auch *.php nennen weil da php-code vorkommt (man kann das aber auch einstellen das man *htm benutzen kann)
    index.php

    <?php include "counter.php" ?>
    <html>
    <head>
    <link rel="stylesheet" href="style.css" type="text/css">
    </head>
    <body>
    Deinen ganzen html-code
    jetzt der counter
    <div id="counter">
    <?php counter() ?>
    </div>
    </body>
    </html>
    

    ich hoffe das es jetzt funktioniert



  • OMG, ich hab den Fehler gefunden!
    Mein exit() für den Fall, das die IP schon geloggt wurde, lässt den gesamten Seitenaufbau beenden.

    Bei was wird ein exit() in PHP überhaupt gebraucht?



  • curry-king schrieb:

    Bei was wird ein exit() in PHP überhaupt gebraucht?

    wenn du der Vorgang "Skript parsen" abbrechen willst. Wenn das Skript einfach terminieren muss und nicht weiter abgearbeitet werden soll.



  • supertux schrieb:

    Hier hat mit das blaue von anfgang an gefallen und mittlerweile habe ich gemerkt, dass es das grüne nicht mehr gibt. Naja.

    wieso das grüne gibts noch (ubb style)

    supertux schrieb:

    doch, das kann mein Browser, doch leider habe ich nur Probleme mit den phpBB Boards immer Probleme mit zu kleinen Fonts, und deshalb nur für diese Seite alles selber ändern müsste. Es ist auch ein bisschen Faulheit, weil die CSS von diesem Forum schon ein bisschen lang sind.

    für große schrift gibts doch den (große schirft)-style

    supertux schrieb:

    btw: du kannst auch ein style selber definieren und dann Gerard fragen ob er es zur auswahl stellt.

    das ist eine interessante Alternative, werde daran denken. Wenn iche s tue, dann muss ich nur die CSS Dateien "neu schreiben" oder was?

    phpbb benutzt templates, css datei würde reichen aber mehr kann man mit den tpl dateien machen, aber ich würde ungern noch ein stylesheet einbinden denn die leute nutzen es fast garnicht und ich möchte mich nicht noch um einen weitern stylesheet kümmern, schon jetzt ist es nerfig 4 stylesheet zu warten

    für soche sachen wäre ein dynamisch stylesheet ganz nett (phpbb kann das sorgar wenn man im stylesheet die richtigen template variablen benutzt) ich hätte nur noch 1 stylesheet und der rest würde sich dynamisch erzeugen


Anmelden zum Antworten