Suche auf lima-city
-
in: W3C validator Error wegen Content-Encoding
geschrieben von linkrank
Hallo
leider immernoch das Problem.
wenn ich mache
Header set Content-Encoding: identity
dann sagt W3C Validator
A fatal error occurred when attempting to decode response body from http://girokonto.self-tcl.de/index.php. Either we do not support the content encoding specified ("none, identity"), or an error occurred while decoding it.
The error was: Don't know how to decode Content-Encoding 'none'
auch wenn ich mache:
wenn ich mache
Header unset Content-Encoding Header set Content-Encoding: identity
... das gleiche, dieses 'none' bleibt einfach :(
wenn ich das mit dem FilesMatch mache,
dann ändert sich auch nix .... ?!?!
-
in: Variable-Name (als String) ausgeben
geschrieben von linkrank
hackyourlife schrieb:
Also$blah = 'hallo'; $varname = 'blah'; echo $$varname; // gibt »hallo« aus
a) dazu müsste ich aber vorher wissen, dass 'blah' der Variable-Name ist
b) ich will nicht den Inhalt der $blah sondern wenn $blah übergeben wird, dann 'blah' als String
... einfach zu jeder x-beliebigen Variable, die an meine Funktion übergeben wird
deren "Bezeichnung" herausfinden / ausgeben,
siehe Anwendungs-Beispiel (debug_print Funktion oben)
BSP Aufruf
soll über dem <pre> stehen: Variable: haumichblaudebug_print($haumichblau);
oder
BSP Aufruf
soll über dem <pre> stehen: Variable: datenarraydebug_print($datenarray);
alternativ könnte ich die Funktion um ein Argument "varname" erweitern,
und den Bezeichner / Name der Variable auch noch (als String) übergeben
function debug_print($var, $varname='', $htm=false, $ret=false) { $var_str = print_r($var, true); if ($htm !== false) { $var_str = htmlentities($var_str); } $outstr = ''; $outstr = '<p>Variable: <strong>' .$varname . '</strong></p>'."\n"; $outstr .= '<pre style="margin:18px 6px; padding:4px; text-align:left; background:#DEDEDE; color:#000099;">'."\n"; $outstr .= $var_str."\n"; $outstr .= '</pre>'."\n"; if ($ret !== false) { $result = $outstr; } else { print $outstr; $result = true; } return $result; }
und dann bei Aufruf eben jedesmal den Name der Variable als 2tes Argument mit übergeben
BSP Aufrufdebug_print($haumichblau,'haumichblau');
oder
BSP Aufrufdebug_print($datenarray,'datenarray');
aber dann muss ich jeden Aufruf der Funktion entsprechend umschreiben
weil ja ein "neues" Argument dazu gekommen ist ... und sich folgende Argumente um 1 nach rechts verschieben
Warum sollte Keine von den beiden print_varname Funktionen verwendet werden ???
... damit funktioniert es doch, dass ich den Bezeichner / Name der Variable als String bekomme
-
in: Variable-Name (als String) ausgeben
geschrieben von linkrank
ok, Danke
diese zwei Funktionen funktionieren,
function print_varname1($var) { foreach($GLOBALS as $var_name => $value) { if ($value === $var) { return $var_name; } } return false; }
und
function print_varname2($var) { $var_name = array_search($var, $GLOBALS); return $var_name; }
bleibt die Frage, welche die "bessere" ist, also weniger Ressourcen verbraucht.
-
in: Crawler und Bots (IP-Bereiche) sperren
geschrieben von linkrank
nicht in der robots.txt machen,
die wird (vorallem von bösen Bots) oft ignoriert
in der .htaccess
Order deny,allow Deny from 5.10.83.0/24 Deny from 144.76.22.0/24 Deny from 141.8.147.20
oder in PHP, bevor irgend etwas ausgegeben wird
die Variable $_SERVER['REMOTE_ADDR'] auf unerwünschte IP-Teile prüfen
$block_ips = array( '5.10.83', '144.76.22', '141.8.147.20', ); $userip = $_SERVER['REMOTE_ADDR']; foreach($block_ips as $bip) { if ( strpos($userip, $bip) !== false ) { print "<p>blocked</p>; exit; }
anstatt strpos() kann man evtl. auch ein preg_match oder anderes Verwenden,
um zu Prüfen, ob die User-IP einen der zu blockenden IP-Bereich entält.
strpos() ist etwas buggy ... weil auch 188.5.10.83 "geblockt" wäre
obwohl man ja "nur" 5.10.83.0 bis 5.10.83.255 blocken will ...
also müsste man auch testen, ob die User-IP mit dem geblockten Bereich beginnt,
nicht nur, ob der Bereich "enthalten" ist ... also wohl besser preg_match()
aber den passenden pattern dafür hab ich jetzt grad auch nicht auf der Pfanne
:)=
-
in: Variable-Name (als String) ausgeben
geschrieben von linkrank
Hallo
wie bekomme ich den aktuellen Variable-Name als String ?
BSP:
$meinedaten = 'Blabla bla bla irgendwas';
ich will den Name der Variable: 'meinedaten' als String in einer neuen Variable haben
$varname = 'meinedaten';
damit ich als Ausgabe sowas machen kann wie:
print "<p> Der Inhalt von ".$varname." ist ".$meinedaten."</p>\n";
also nicht den Inhalt der Variable, sondern die Bezeichnung / den Name der Variable
.... ohne dass der Variable-Name vorher bekannt ist, ... innerhalb einer Funktion
nochmal als Anwendungs-Beispiel ...
function debug_print($var, $htm=false, $ret=false) { $var_str = print_r($var, true); if ($htm !== false) { $var_str = htmlentities($var_str); } $outstr = ''; // ---- wie bekomme ich den Name der Variable als Text ??? ## $varname = ????? ## $outstr = '<p>Name der Variable: <strong>' .$varname . '</strong></p>'."\n"; $outstr .= '<pre style="margin:18px 6px; padding:4px; text-align:left; background:#DEDEDE; color:#000099;">'."\n"; $outstr .= $var_str."\n"; $outstr .= '</pre>'."\n"; if ($ret !== false) { $result = $outstr; } else { print $outstr; $result = true; } return $result; }
der aus-kommentierte Teil zeigt mein Problem .... wie erhalte ich den Bezeichner / Name der Variable
also bei Aufruf ....debug_print($meinedaten);
soll in der Ausgabe auch der Name der Variable (hier: 'meinedaten') erscheinen.
-
in: W3C validator Error wegen Content-Encoding
geschrieben von linkrank
Hallo
Adresse der Domain: http://www.self-tcl.de
W3C HTML Validator: http://validator.w3.org/check?uri=http://www.self-tcl.de
auch wenn ich charset auf UTF-8 umstelle ... der gleiche Fehler
bei vielen Domains, die auf dem selben Webspace leigen ist das gleiche Problem,
aber nicht bei allen, bei einigen Domains geht es auch problemlos (successfully checked)
und vor ein paar Tagen konnte ich noch alle im W3C HTML Validator "abfragen"
auch wenn ich die .htaccess Dateien komplett entferne, bleibt das Ergebnis so
... gleicher Webspace (Server) aber manche senden "komischen" Header
mit [Content-Encoding] => none
bei der Domain wo es funktioniert,
kommt mit get_headers() gar kein Feld: [Content-Encoding] dafür[Vary] => Accept-Encoding
aber auf Unterseite, dann doch wieder der Fehler ... dieses Content-Encoding: none im Header ?!?
vgl: ... reisetower.de ... und ... reisetower.de/land1.php
auf den Seiten, wo es "nicht" funktioniert,
kommt auch ein HEADER Feld:
[Set-Cookie] => stats=446501053769c06c565094b26d26e8ef; expires=Fri, 21-Jun-2013 17:01:26 GMT
aber ich hae dort gar kein Cookie gesetzt ?!?! .... häää?
Wenn ich in der .htaccess versuche:
Header unset Content-Encoding: none
dann kommt
Status = HTTP/1.1 500 Internal Server Error
-
in: Update jQuery Latest Version
geschrieben von linkrank
Hallo
ich habe einen PHP-Code, der soll prüfen ob es eine neue jQuery Version gibt
und wenn ja, die neue Datei abholen und auf Webspaace speichern ... mit copy() Befehl
Damit die Prüfung nicht bei jedem Aufruf geschieht, sondern nur in bestimmten Zeit-Abständen
habe ich eine "cache_time" angegeben, mit der dieser Zeit-Abstand (in Sekunden) gesetzt wird.
(hier
nur alle 3 Tage$cache_time = (3600*24*3);
Datei: jqueryupdate.php (Update jQuery Latest Version Local File) http://pastebin.com/4YQDNm1t
<?php // ------------------------------------------------------------- header('Content-Type: text/html; charset=utf-8'); // ------------------------------------------------------------- $time_stamp = time(); $cache_time = (3600*24*3); $source_url = 'http://code.jquery.com/jquery-latest.min.js'; $local_file = 'jquery-latest.min.js'; // ------------------------------------------------------------- function update_jquery($source_url, $local_file, $cache_time, $time_stamp) { $vstatus = false; $last_update = @filemtime($local_file); if (!$last_update || ($cache_time < ($time_stamp - $last_update))) { if (!file_exists($local_file)) { copy($source_url,$local_file); $vstatus = 'new'; } else { $pattern = "@\!\s(.*?)\s\|@"; $loc = file_get_contents($local_file); preg_match($pattern,$loc,$mloc); $ext = file_get_contents($source_url); preg_match($pattern,$ext,$mext); if ($mloc[1] == $mext[1]) { touch($local_file,$time_stamp); $vstatus = 'no_change'; } else { copy($source_url,$local_file); $vstatus = 'update'; } } } else { $vstatus = 'cached'; } return $vstatus; } // ------------------------------------------------------------- $jver_status = update_jquery($source_url, $local_file, $cache_time, $time_stamp); // ------------------------------------------------------------- print "<p>Update Status: ".$jver_status."</p>\n"; // ------------------------------------------------------------- ?>
jetzt funktioniert aber bei manchen Webspaces das copy() nicht, obwohl allow_url_fopen = on
Welche Alternative habe ich, um die externe Datei bei Bedarf auf den Webspace zu kopieren ?
EDIT:
und gibt es eine Möglichkeit für Webspace mit PHP aber allow_url_fopen = off ???
-
in: W3C validator Error wegen Content-Encoding
geschrieben von linkrank
Hallo
ich habe eine Domain (anderer Webspace)
die beim W3C HTML validator nicht meh gelesen werden kann.
Sorry! This document cannot be checked. .... The error was: Don't know how to decode Content-Encoding 'none'
Vor paar Tagen ging es noch, ich habe an der Seite nichts geändert, also
wohl am Server (wo ich keinen Einfluss habe) hat sich was geändert ?!
Wenn ich den Header der URL aufrufe, ist da enthalten:
[Content-Encoding] => none
Der Content-Type auf dieser Seite ist:
[Content-Type] => text/html; charset=iso-8859-1
wenn ich in der .htaccess hinzufüge:
Header set Content-Encoding "iso-8859-1"
dann kommt als Fehlermeldung bei W3C Validator:
.... The error was: Don't know how to decode Content-Encoding 'iso-8859-1'
was muss ich (kann ich) tun,
damit das 'Content-Encoding' wieder funktioniert ?!
-
in: HTML Tabelle: Trennstrich zwischen spalten entfernen
geschrieben von linkrank
Hallo
also wen ich Tabelle direkt mit border="0" mache, ganz ohne CSS,
dann kommt bei mir auch kein Rand (im FF)
<table width="500" border="0" cellspacing="2" cellpadding="4" align="center"> <tr align="left" valign="top"> <td width="50%">Zeile 1 - Spalte 1</td> <td width="50%">Zeile 1 - Spalte 2</td> </tr> <tr align="left" valign="top"> <td width="50%">Zeile 2 - Spalte 1</td> <td width="50%">Zeile 2 - Spalte 2</td> </tr> </table>
vielleicht ist in Deinem CSS das tr schon irgendwo definiert,
wenn ja, mach es (wie schon gesagt) einfach so mit CSS
tr { border: none; }
oder direkt in der Tabelle als style
<tr align="left" valign="top" style="border: none;">