Snippets - Diskussionsthread

tleilax

be forever curious
ID: 27936
L
20 April 2006
1.845
183
Moinsen,

dies ist der Thread, um über Snippets im Snippets-Thread oder eben über genau diesen zu diskutieren.

Wirkliche Verbesserungen an Snippets, die hier gepostet wurden, sollen bitte von dem Autoren des Snippets in den jeweiligen Post übernommen werden.

Anregungen, Codefragmente aus anderen Posts dieses Forums zu übernehmen, können hier auch gerne gepostet werden.
 

Benutzer-2472

abgemeldet
1 Mai 2006
32.694
1.620
Snippets? Ist das ein Begriff der nur auf PHP basiert oder dürfen auch Klassen in java oder Delphi (pascal) zur Verfügung gestellt werden?
 

tleilax

be forever curious
ID: 27936
L
20 April 2006
1.845
183
Snippets ist nicht nur auf PHP bezogen, sondern bedeutet im Allgemeinen soviel wie Schnippsel oder Fetzen. Insofern würde nichts gegen Java oder Delphi sprechen.

Die Frage wäre nun bloss, inwieweit diese beiden Sprachen hier im Forum vertreten sind. Es ist ja leider sehr selten, dass etwas ausserhalb dem Umfeld von PHP, MySQL, CSS oder HTML gefragt wird und insofern mag ich nicht alleine entscheiden, dass das in Ordnung geht. Es könnte halt in einem vollkommen überladenen Thread enden, von dem ein Teil überhaupt nicht auf dieses Forum zugeschnitten ist.

Vermutlich müsste man den Thread aber eh irgendwann splitten (spätestens, wenn der erste Post über 20kb gross ist *g*) und könnte dann thematisch einzelne Threads erstellen.
 

theHacker

sieht vor lauter Ads, den Content nicht mehr
Teammitglied
ID: 69505
L
20 April 2006
22.643
1.280
Ist das ein Begriff der nur auf PHP basiert oder dürfen auch Klassen in java oder Delphi (pascal) zur Verfügung gestellt werden?
Den Thread im FAQ-Forum können wir beliebig vollposten :biggrin:

Wenns zu unübersichtlich wird, kann man das Inhaltsverzeichnis ja nach Sprachen ordnen. Und selbst wenn das irgendwann zu viel wird, guckt man ins Downline-Forum. Das Inhaltsverzeichnis da is echt ne Wucht und es funktioniert :)
http://www.klamm.de/forum/showthread.php?t=3785
 

Johnson

Code-Frevler
ID: 118054
L
20 April 2006
859
53
Ist meiner Meinung nach echt eine sehr sinnvolle Idee - alles was für andere Verwertbar ist da rein :)

Wenn mir nochmal in die Augen hüpft, dann kommt es sofort ;)
 

raven

Well-known member
20 April 2006
5.039
539
Eine schöne Idee - habe mich gleich mal ein wenig beteiligt ;)
Ist sicher für viele angehende aber z.T. auch fortgeschrittene Programmierer nützlich.
 

Benutzer-2472

abgemeldet
1 Mai 2006
32.694
1.620
Das ist in der Software Industrie auch derzeit voll in Mode, Komponenten so abzulegen, dass ein anderer sie verwenden kann. Aber bitte voll ausdokumentiert, sonst ist das ganze für den popo.
 

ice-breaker

return void
ID: 93995
L
27 April 2006
6.258
585
neija, man benötigt den FTP-Transfer etc ja nicht unbedingt.
Dies soll ja nur eine Alternative für die vielen Lose-Seiten darstellen (denke ich mal) wer wirklich sowas dringend brauch bastelt sich das auch selbst
 

DonMisery

Well-known member
ID: 24824
L
6 Mai 2006
170
3
Vielleicht sollte man PHP / MySQL von Java und Delphi trennen. Also einfach noch einen extra Thread für die beiden anderen Programmiersprachen aufmachen.
 

raven

Well-known member
20 April 2006
5.039
539
@Don: Halt ich gar nichts von. Dann bräuchte man für C, C++, Python, PERL, Ruby, Assembler, Basic (und alle Subkulturen), JavaScript, LUA, ActionScript, Tomcat usw. usf. auch noch einen, und das hätte wohl den Sinn verfehlt - dann muss man nämlich mehr als ein Stückchen scrollen, wenn man mal einen 'normalen' FAQ-Thread sucht.
 

DocTrax

Erfahrener GNUtzer
ID: 147546
L
26 April 2006
2.919
106
Hier ein Counter auf MySQL-Basis::
PHP:
$_VAR['countertabelle'] = 'count'; # Name der Countertabelle
$_VAR['counteroffset'] = 14587; # Zahl die zum Counter hinzugezählt wird ;)
$_VAR['counterdelay'] = 30*60; # Zeit nach der ein Besucher erneut als Besucher gezählt wird (in Sekunden)
if(!mysql_fetch_row(mysql_query('SELECT id from '.$_VAR['countertabelle'].' WHERE ip="'.$_SERVER['REMOTE_ADDR'].'" AND timestamp > '.(time()-$_VAR['counterdelay'])))) 
mysql_query('INSERT INTO '.$_VAR['countertabelle'].' SET ip="'.$_SERVER['REMOTE_ADDR'].'",timestamp='.time());
# Es wird eingetragen wenn noch nichts drinne steht
if($countrow = mysql_fetch_row(mysql_query('SELECT max(id) FROM '.$_VAR['countertabelle']))) # Die höchste id ist die Anzahl der Besucher
{
	print	'<table align="center" border="1" cellpadding="2" cellspacing="2"><tr><td>'.
			($countrow[0]+$_VAR['counteroffset']).
			'</td></tr></table>';
	mysql_query('DELETE FROM '.$_VAR['countertabelle'].' WHERE id<'.$countrow[0].' AND timestamp<='.(time()-$_VAR['counterdelay'])); # Unnütze Einträge (älter als in $_VAR['counterdelay'] definiert) werden gelöscht
}
 
Zuletzt bearbeitet:

tleilax

be forever curious
ID: 27936
L
20 April 2006
1.845
183
@MrToiz:

Der file()-Ersatz soll - wie ice-breaker schon sagt - nur ein mehr oder wenig "quick and dirty"-Replace für die eigentliche Funktion sein. Wer mehr braucht, kann sich auch mehr coden. Das hier ist erstmal nur die Anregung.

@DocTrax:

Ich würd's begrüssen, wenn die Formatierung Deines Snippets ein bisschen überschaubarer wäre und eine Beschreibung der zugrundeliegenden Tabelle wäre in meinen Augen auch nicht verkehrt. Ausserdem wird in Zeile 5 auf ein $countrow zugegriffen, was vorher nirgends definiert wird, sofern ich nix übersehe. Und als letzter Kritikpunkt wäre anzumerken, dass die Vermischung von PHP und MySQL im Falle von time() unnötig ist, da ein UNIX_TIMESTAMP() in MySQL IMHO viel geschickter ist, da somit wirklich der Timestamp des Eintragens und nicht des Abschickens vermerkt wird.

Nicht falsch verstehen, will nicht nur merken. Ich find's gut, dass Du Dich beteiligst. :)
 

DocTrax

Erfahrener GNUtzer
ID: 147546
L
26 April 2006
2.919
106
Ich würd's begrüssen, wenn die Formatierung Deines Snippets ein bisschen überschaubarer wäre und eine Beschreibung der zugrundeliegenden Tabelle wäre in meinen Augen auch nicht verkehrt.
Der Code ist schon überschaubar, wenn man noch ein paar CRLF einbaut.

Ausserdem wird in Zeile 5 auf ein $countrow zugegriffen, was vorher nirgends definiert wird, sofern ich nix übersehe.
Habs auch gerade gesehen.

Und als letzter Kritikpunkt wäre anzumerken, dass die Vermischung von PHP und MySQL im Falle von time() unnötig ist, da ein UNIX_TIMESTAMP() in MySQL IMHO viel geschickter ist, da somit wirklich der Timestamp des Eintragens und nicht des Abschickens vermerkt wird.
Ich habs mir so angewöhnt. Bei dem Counter macht es auch nicht wirklich was aus, weil zwischen Abschicken und Eintragen i.d.R. kaum eine Verzögerung ist.
 

DocTrax

Erfahrener GNUtzer
ID: 147546
L
26 April 2006
2.919
106
PHP:
/* Testet eine Seite $page auf ihre Gueltigkeit  */ 
/* Ist $page nicht gueltig, wird $default zurückgeliefert */ 
function test_page($page,$default) { 
   // Gueltige Seiten 
   $pages = array('start','aboutme'); 

   // Wenn $page gueltig, dann $page zurueckgeben 
   if(in_array($page,$pages)) return $page; 
   // Ansonsten $default zurueckgeben 
   return $default; 
}

@Johnson: Ich mache das etwas anders ...
PHP:
$pages = array (
'start' => './index.inc.php',
'about' => './about.inc.php'
); # eine Zuordnung von Aliasen zu ihren Dateien
#und dann 
if(isset($pages[$_GET['query']])) include($pages[$_GET['query']]);
else include('default.inc.php');
ein Aufruf sieht dann etwa so aus:
http://xyz.com/?query=start

Kannst vllt noch als weitere Möglichkeit dazuschreiben.