Naja, wenn ich nichts in die function rein schicke kann ich es ja nicht nutzen.
Manchmal ist es ja nicht einfach den überblick zu behalten und man vergisst etwas in die function rein zu schicken.
Daher dachte ich an GLOBALS.
Beiträge von cottton
-
-
-
Als Befehl wird der Input des Benutzers nicht genutzt, solange Du das nicht verursachst durch zB "eval" (ist eine Funktion - siehe php.net)
Aber sobald Du den Input, also den Text, des Nutzers im ausgibst, kann es Probleme geben.
Auch wenn Du den ungefilterten Text des Users per eMail als HTML verschickst kann es Probleme geben.Thema Output: http://www.php-kurs.com/gaestebuch-absichern.htm
Zum Thema eMail: http://www.php-kurs.com/email-per-php.htmunkown-6363
Falls Du mal ein Array (checkboxes[] ...) erwartest
:PHP
Alles anzeigen// input simulieren: $_GET['user_input'] = array( 'name' => '<cottton>', 'eMail' => 'eMail@website.do', 'text' => 'Hallo <br /> <i>test</i>', ); $input['input'] = array( " 1<br /> <i>test</i> test <b>test</b>", " 2<br /> <i>test</i> test <b>test</b> ", array(' 3<br /> <i>test</i> test <b>test</b>',' 4<br /> <i>test</i> test <b>test</b>'), ); function array_walk_recursive_call_user_func($arr,$functions) { if(!function_exists('byref')){ function byref(&$val,&$key,$functions){ foreach($functions as $function_name){ $val = call_user_func($function_name,$val); } } } if(!is_array($functions)){ $functions = array($functions); } array_walk_recursive($arr,"byref",$functions); return $arr; } echo '<pre><b>vorher:</b><br />'; print_r($_GET); print_r($input); $_GET = array_walk_recursive_call_user_func($_GET,'trim'); $input = array_walk_recursive_call_user_func($input,array('trim','htmlspecialchars')); echo '<hr /><b>nackher:</b><br />'; print_r($_GET); print_r($input); echo '</pre>'; -
Genial! Danke =)
-
Wenn ich das hier zB hab:
CSS
Alles anzeigen#container{ margin:4px; padding:4px; background:transparent; } #container table{ font-size:33px; color:#333; } #container tr{ font-size:22px; color:#000; } #container td{ font-size:13px; color:#fff; }
Kann man das nicht kompakter verschalchteln?
Ich meine ich hab da jedermal #container #container #container ...
das muss es doch was geben oder?
-
Ist die Klasse schon fertig? Versuche gerade ein "Roh-Format" für ne website zu bauen =)
Btw - hab meine Klasse mal ge-updated im ersten Post.
Nennt sich jetzt FileAccess da es nicht nur mehr zum log files schreiben ist.
Momentan kann man damit jetzt sehr easy:
- file erstellen ->write('')
- lesen ->read()
- schreiben ->write('text text ...') (\r\n oder eigenen seperator) (json_de/encode on/off)
- leeren ->clear()hatte auch vorher protected mit private verwechselt

-
Ah ok

btw - hast du eine Klasse zum checken, ob jemand mobile uterwegs ist? Oder schiebst Du dort nur das result rein? -
Klassennamen groß? Naja, habs mehr oder weniger von php.net übernommen - da wurde auch alles klein geschrieben.
Also dann: class LOGFILE ?__destruct - ok, got it.
Wie ist das eigentlich mit "return"?
Ich mag es irgentwie nicht andauernd nen try/catch-block zu schreiben um die exception abzufangen.
Daher die option zum "return"-nen.
Ist ein return aus einer klasse falsch? -
Hab nun doch mal angefangen alles in Klassen zu schreiben.
Macht auch Spass, aber irgentwie weiss ich mit dem '__destruct' noch nix anzufangen.
Was packt man in den rein?Falls mal jemand drüber sehen will: html-seminar.de/woltlab/attachment/437/(updated 09 06 13)
Der Epic Moment war, als ich die Klasse benennen wollte -> "error_log" -.-
Schön, dass ich schon wieder was schreibe, das es schon lange gab
Aber ich denk mal ich hab mehr möglichkeiten mit meine Klasse. -
Das geht !!!!!!

Danke! =) -
Also geht :hover verloren?
Das is ja Mist. Ich wollte so wenig wie möglich JS nutzen. So müsste ich ja jetzt hover komplett über JS machen (onmouseover ...).Oder fällt Dir ne Möglichkeit ein, den Hintergrund in CSS zu schreiben?
-
Ich hab da paar tab buttons bei denen ich mit :hover den Background ändere.
Klappt auch, klar.
Aber sobald ich mit JS den Background einmal geändert hab, ist der :hover Effekt weg
CSS:
CSS
Alles anzeigen.tab_button{ padding:4px; margin-top:10px; display:inline-block; background:#131313; border-radius:4px; box-shadow:3px 3px 5px 0px #000000 inset, 1px 1px 3px 0px #4D4D4D; } .tab_button:hover{ background:#53A1DE; }
JS:JavaScriptfunction changeBGColorByClass(classname,color){ var el = document.getElementsByClassName(classname); for(var i = 0; i < el.length; i++){ el[i].style.background = color; } }JS nutze ich eigentlich nur um den Background wieder zurück zu setzen, da die Seite nicht neu lädt.
Hab ich da nen Fehler oder kann ich den BG evtl auch ohne JS wieder zurück setzen? -
Das scheint immer mehr "Mode" zu werden =)
Ist ja auch gut für den user da er die Seite nicht andauernd neu laden muss.
Aber das Bsp Youtube zeigt (mir jedenfalls), dass die es "overdone" haben.Rund 5 sec auf der "meine Abos" -Seite bis alles nachgeladen ist -.-
btw - m.youtube.com - wer es schnell mag =)Achja - man kann doch Tabs oder den Seiteninhalt auch mit CSS anzeigen lassen.
ZB die Nav Buttons -> bei :active einfach die id des jeweiligen Containers auf display:block; schalten.
=) -
OH!
hast recht. Aber in IE und Opera nicht oO?
Probier mal den IE bitte.Warum geht das denn da jetzt nur bei den beiden nicht -.-
(ich und css ... aber diesmal will ich da durch - kein aufgeben
) -
Moin,
Ist es möglich durch den Text auf das dahinterliegende DIV zu klicken?Was ich hab:
- Kacheln als eine Art Button plus "Mini-Erklärung"
- Kacheln-Rahmen und -Text ändert sich bei mouse-overProblem: Bei ":active" bekomme ich den Effekt nicht, wenn user auf den text klickt.
hier mal übersichtlich das css: http://jsfiddle.net/DhZfe/
Wenn man die Kacheln am unteren Rand anklickt, dann bekomme ich den :active -Effekt. Aber nicht, wenn ich auf den Text klicke.
Kann man da irgentwie tricksen, damit man "durch den Text" klicken kann? -
Fun kann ich gerade gebrauchen. Bin gerade echt am "zerbrechen" was sockets angeht.
Hab auch gerade feststellen müssen, dass Scriptly öftermal Programminterne Fehler bringt. Da bekomm ich Angst, dass mal schnell paar nicht gespeicherte Zeilen durch nen Crash weg sind
-
scriptly

wollte schon lange den sublime ausprobieren. Installiert war er schon, aber war zu faul für neues
scriptly hatte mich bisher voll überzeugt.
-
Hatte gerade das Thema bei uns: Website beschleunigen - .js datei braucht 100 ms
(letzter Post. Alles andere is in dem Moment unwichtig)Was verbessen und was macht Sinn: ich hab dazu google PageSpeed Tools genutzt: https://developers.google.com/speed/pagespeed/?hl=de
Wir sind momentan bei 99 Punkten (Wenn Seiteninhalt ohne 3rd Party APIs ect)
Am Anfang muss man sich bissl reinlesen.
ZB wie reduzieirt man die Server-response-time; wie setze ich browser caching (Expires ...), und und undMein Tip: soweit dein Zugriff auf den Server es erlaubt: mod_pagespeed -> https://developers.google.com/speed/pagespeed/mod?hl=de
40+ Filter wie zB combine_css, rewrite_css, rewrite_javascript, rewrite_images ect ect (https://developers.google.com/speed/docs/mod…g_filters?hl=de)
Relativ einfach zu installieren.
Wir haben bei uns den "Core Filter" (= Grundeinstellung) abgeschalten und alle Filter, die bei uns Sinn machen, aktiviert.
=)EDIT: hier mal ein bsp aus der Log - was es ausmacht (im günstigen Fall):
Zitat
[Mon Apr 22 20:26:27 2013] [Info] [12734] http://xxx/Forum/:26: Successfully rewrote CSS file http://xxxstyle/extra/print.css saving 1534 bytes.
saving 1534 bytes
-
So.
mod_pagespeed - haben wir bei uns installiert und eingerichtet.
Muss sagen - wer Seiten mit viel Quellcode hat -> es bringts =)
Relativ einfach und macht sich bemerkbar.
Wir haben zB um die 6000 Zeilen HTML code im Browser und dabei wurde das Scrollen "schmierig", bei einigen sogar laggy/eckig.
Klar könnte ich auf Tabs und Umbrüche schon bei Schreiben verzichten. aber dann is nix mir "mal schnell was nachsehen" =)
Mit den verschiedenen Filtern die man bei mod_pagespeed hat, kann man nach und nach alles reinnehmen, was man braucht wie zB "collapse_whitespace", "rewrite_css", "lazyload_images" ...
Link: https://developers.google.com/speed/pagespeed/mod?hl=deIm Test: ...hat einen Gesamt-PageSpeed Score von 99 (von 100 Punkten) erhalten.

Also nix mit selbst nen Filter basteln =) Da käm ich sowie so nicht ran

-
keine problem =)
PHP
Alles anzeigen// function "readFileIntoArray()": // $dein_error_array = ein array, welches rein geht (evtl schon fehler von vorhergehenden code schon enthalten. So nutze ich, muss ja aber nicht sein.) // $local_file = das file wie zB "adressen.txt" oder "data.dat" ect. // $jsondecode = wenn 1 (also true), dann wird jede einzelne Zeile aus dem file json_decode´d (siehe json_encode / json_decode at php.net) function readFileIntoArray($dein_error_array, $local_file, $jsondecode) { global $dein_error_array; // $dein_error_array global setzen, um den wert auch ausserhalb dieser function nutzen zu können if(file_exists($local_file)){ // file_exists() -> wenn "$local_file" existiert, dann ... if(is_readable($local_file)){ // is_readable() -> wenn "$local_file" lesbar ist, dann ... $lines = file($local_file); // "$local_file" ins array "$lines" lesen foreach($lines as $line){ // für jede Zeile in "$lines" als "$line" ... if($jsondecode == 1){ // wenn "$jsondecode" 1 ist, dann ... $content[] = json_decode($line, true); // decodieren der Zeile via "json_decode()" und an array "$content" übergeben }else{ // ... sonst ... $content[] = trim($line); // "$line", also Zeile, trimmen und an array "$content" übergeben } } }else{ // "$local_file" ist nich lesbar. Erstelle Fehlermeldung $dein_error_array[] = 'File "'.$local_file.'" is not readable! @File: '.__FILE__.' @Line: '.__LINE__; } }else{ // "$local_file" existiert nicht. Erstelle Fehlermeldung $dein_error_array[] = 'File "'.$local_file.'" does not exist! @File: '.__FILE__.' @Line: '.__LINE__; } if(isset($content)and !empty($content)){ // wenn "$content" gesetzt ist, und nicht leer ist (also "$local_file" existiert, konnte gelesen werden und war nicht leer) return($content); // return (gebe zurück) array "$content" }else{ // ... sonst ... return false; // return false } } // Beispiel zum Aufrufen: $dein_error_array[] = 'hier war schon mal ein fehler aufgetreten ...'; $dein_error_array[] = 'und hier auch ... vor der function =)'; $local_file = 'acc_av_status.txt'; $jsondecode=false; // function "readFileIntoArray()" wird aufgerufen und die Variablen übergeben: $array = readFileIntoArray($dein_error_array, $local_file, $jsondecode); // in $array steckt jetzt der gesamte Inhalt des Files // Test-Ausgabe: // wenn "$array" gesetzt ist und nicht "false" ist (also die function hat Inhalt der datei lesen können ...) if(isset($array)and $array !== false){ echo '<pre>'; // http://www.w3schools.com/tags/tag_pre.asp =) print_r($array); // http://php.net/manual/de/function.print-r.php =) echo '</pre>'; }else{ // ... sonst ... echo 'nix zum Anzeigen'; } // gleiche mit den errors ... if(isset($dein_error_array)and !empty($dein_error_array)){ echo '<pre>'; print_r($dein_error_array); echo '</pre>'; }else{ // ... sonst ... echo 'keine Fehler'; }