evtl ne formatierung im css auf h3?
Kann sonst auch nix sehen.
Beiträge von cottton
-
-
ja, sehr einfach meiner Meinung nach.
Weiß garnicht mehr, ob man mit der free version die iso erstellen konnte.
Aber auch dafür hatte ich schon freeware. -
Ya! Ich glaub das wird funktionieren ;D
Danke! -
Naja, es sind mehr als 2 Ebenen.
Noch dazu weiß ich nicht, wie viele Ebenen es beim nächsten Request sein werden. Kann mal mehr und mal weniger sein.
Ich suche also eine Lösung jede auffindbare value in einem sich ständig änderden Array zu de-codieren.Da leichteste wäre ja, einfach von 10 Ebenen auszugehen. Wenn dann nur 5 rüber kommen, erledigen sich die anderen 5 durch ein "else".
Aber das scheint mir schlecht, da es "auf Verdacht" geschrieben wäre.
Ich komme irgentwie nicht dahinter, wie man eine (endlos)schleife schreiben könnte. -
Hab da ein Problem.
Über eine API bekomme ich Daten die vor-formatiert sind (htmlspecialchars.
Diese Formatierung kann ich rückgänging machen, indem ich einfach bei der Verwendung des Teils des Arrays,
was ich verwende (die values) htmlspecialchars_decode verwende.
Aber dann müsste ich zu vieles in den Scripten verändern.Der Gedanke: eine function die das komplette Array durchläuft, und so alle values de-codiert.
Beim Schreiben kam ich allerdings schnell an meine Grenzen ;DPHP
Alles anzeigenfunction decode_htmlspecialchars($var) { return htmlspecialchars_decode($var, ENT_QUOTES); } if(isset($data)and !empty($data)) { if(is_array($data)) { foreach($data as $key => $val) { if(is_array($key)) { foreach($key as $key => $val) { if(is_array($key)) { ... } else { ??? $data[$key][$val] = decode_htmlspecialchars($val); } } } else { $data[$key][$val] = decode_htmlspecialchars($val); } } } else { $data = decode_htmlspecialchars($data); } }
Jemand schon Erfahrung damit?
-
cloudflare im falle ddos, soweit ich das gelesen hab.
Auf Metabans.com liefen etliche ddos und die waren schon massiv.
Die haben dann eine Lösung gefunden - ein server provider, der "nicht gleich abschaltet"
und wohl ne Lösung über cloudflare.Falls du Fragen hast - i3lack (owner Metabans.com) hat wohl sehr lange nach einer Preis/Leistung-Lösung gesucht (und gefunden)
http://forums.metabans.com/index.php?action=profile;u=1
(english only) -
"if ($a * $b * $c != 0) #überprüfen, ob alle variablen den jeweiligen wert hat"
klar -.-
oh man, ich glaub ich muss mal abstand von php nehmen ;D
Da sucht man nach ner lösung in php und vergisst, dass x*0 immer 0 ist -.-Ist natürlich genau das, was ich brauche ;D
Danke! =) -
;D ja das kannte ich schon.
Ich glaub ich habs wieder nicht deutlich genug beschrieben, was ich eigentlich wollte.Ich möchte sozusagen das != 0 nur einmal verwenden.
Habe ~10 oder mehr var´s die ich alle prüfen möchte, ob sie nicht 0 sind.
Mir ist zB eingefallen, dass ich alle zusammen zählen könnte. Wenn dann das ergebnis 0 ist, sind alle 0 - klar.Was ich aber suche ist ein "||" vergleich.
Also wenn auch nur eine der var´s 0 ist, dann { ... code ...} -
-
Sorry wegen Doppelpost aber wenn ich da ^oben immer mehr editiere, sieht keiner mehr durch.
Ich weiß jetzt warum mir das passiert. Hab mal ein Testscript geschrieben, um es zu verdeutlichen:
PHP
Alles anzeigen$array['unformatiert'] = '<<<<<<<<<<<<<<<'; $array['htmlspecialchars'] = htmlspecialchars('<<<<<<<<<<<<<<<'); $data = json_encode($array); // seitens API json_encoded $data = json_decode($data, true); // $data meiner Seits epfangen und decoded $ergebnis = json_encode($data); // erneutes codieren, um es selbst zu speichern $save = $ergebnis. "\r\n"; $filename = 'json-test.txt'; $handle = fopen ($filename, "a"); fwrite ($handle, $save); fclose ($handle);
Ergebnis:Zitat
{"unformatiert":"<<<<<<<<<<<<<<<","htmlspecialchars":"<<<<<<<<<<<<<<<"}
Das heißt, dass die Daten, welche ich von der API bekomme, mit htmlspecialchars vor-formatiert sein müssen.
Nun weiß ich wirklich, was das Problem ist. Wenn jemand eine Lösung hat - bitte her damit =)EDIT: Lösung
Danke einem der Leute hinter der API kann ich jetz hier die Lösung für das Problem posten.WENN Daten von der API (oder sonst wo her) htmlspecialchars-formatiert kommen
einfach
$data=htmlspecialchars_decode($data, ENT_QUOTES);
nutzen.PHP... $data = curl_exec($ch); $data=htmlspecialchars_decode($data, ENT_QUOTES); $data = json_decode($data,true); // (wenn in json formatiert ...) ...
Logisch, aber blöd, wenn man sich erstmal selbst "beschuldigt" in den eigenen Scripten htmlspecialchars benutzt zu haben.
... und normal kommen ja daten auch net vor-formatiert(?). -
schau dir meine Class an und dann sage mir bitte wie du alles sinnvoll in einer Funktion unterbringst ohne das es unübersichtlich wird.
Grobgesagt: in einer Class kann man mehrere Methoden übersichtlich sammeln.
Naja, in einer Funktion kann ich (vorallem ich ;D ) mir das nicht vorstellen. -
Ja das echo gibt es richtig aus, so wie es im scipt auch bearbeitet wird.
Deswegen wundere ich mich ja auch.Das gleiche Verfahren nutze ich fpr Spielernamen wie zB <<ISTER>>.
Habe haufenweise in der gleichen db mit '<' und '>' und was da noch so an Sonderzeichen möglich ist.Kurz: Was bei der einen Tabelle funktioniert, funktioniert in einer anderen Tabelle bei gleicher Art und Weise des Speicherns nicht.
Die Unterschiede die ich zwischen beiden Tabellen feststellen kann wären:
- Tabelle (in der es funktioniert) ist die Zelle auf "varchar" gesetzt und nicht mit json_encode formatiert.
- Tabelle (in der das Problem auftaucht) ist die Zelle auf "longtext" gesetzt und der String vor speichern mit json_encode formatiert.Werd mal um ganz sicher zu gehen die SQL query ausgeben lassen.
EDIT:
Also hab die SQL query und es liegt tatsächlich am Scipt -.-Zitat
UPDATE mb_follower SET servers ='[{\"server_name\":\"iXBT <<<<<<<<<<<<<<<< PRIMAL RAGE >>>>>>>>>>>>>>>>\",\"game_mode\":\"BF_3\",\"number_players\":80}]', last_check ='1348760985', times_empty = 0, updated_rand_nr = '8212' WHERE account_id = 591
Irgent ne Idee wieso alle <> umformatiert werden?EDIT:²
ich raff das grad nicht.
Es ist nicht die db. Es ist irgentwas zwischen API und json_decode oO?Ich nutze eine API und die Daten zieh ich ganz normal duch json_decode($data, true)
Wenn ich nun auf meinem Rechner teste:PHP
Alles anzeigen/* incomming: ... if($statuscode==200){ $data = curl_exec($ch); $data = json_decode($data,true); ... */ echo '<pre>'; print_r($data['responses'][0]['data']['groups'][0]['group_name']); // original API data // print_r($data ... Ausgabe: iXBT <<<<<<<<<<<<<<<< PRIMAL RAGE >>>>>>>>>>>>>>>> // alles i.O. soweit // als nächstes wird im Script 'group_name' in ein Array gepackt: $servers[0]['server_name'] = $data['responses'][0]['data']['groups'][0]['group_name']; // am Ende des Scripts ab in die db: $use_me = mysql_real_escape_string(json_encode($servers)); echo "<br />".$use_me; // echo Ausgabe: [{\"server_name\":\"iXBT <<<<<<<<<<<<<<<< PRIMAL RAGE >>>>>>>>>>>>>>>>\"}] // alles i.O. echo '</pre>';
Der gleiche Ablauf bring auf dem Webserver schon nach dem json_decode($data, true) die "Falschkodierung".
Zum Testen auf dem Webserver mitschreiben lassen:PHP
Alles anzeigen/* incomming: ... if($statuscode==200){ $data = curl_exec($ch); $data = json_decode($data,true); ... */ if($statuscode==200) { if(isset($data['responses'])) { $txtxt = json_encode($data); $txtxt = $txtxt . "\r\n"; $Filenamexxx = 'json_encode.txt'; $handle = fopen ($Filenamexxx, "a"); fwrite ($handle, $txtxt); fclose ($handle); unset($txtxt); $txtxt = serialize($data); $txtxt = $txtxt . "\r\n"; $Filenamexxx = 'serialize.txt'; $handle = fopen ($Filenamexxx, "a"); fwrite ($handle, $txtxt); fclose ($handle); unset($txtxt);
serialize ergibt:
Zitat"group_name";s:146:"iXBT <<<<<<<& ...
genauso json_encode:
Zitat"group_name":"iXBT <<<<<<<<<<< ...
Und das direkt nach Empfangen der Daten oO?
Die Daten der API sind ja richtig, wie ich auf meinem Rechner testen konnte.Komm hier echt nicht mehr klar
EDIT³:
json_encode scheint das Problem zu verursachen.
Hab da was gefunden, was allerdings nicht wirklich eine Lösung ist.
http://stackoverflow.com/quest…ot-creating-original-jsonMan könnte also html_entity_decode() nutzen. Ist ja aber nicht Sinn der Sache, einen "Fehler" (?) im code zu berichtigen.
Ich will den Fehler ja vermeiden.Aber wie?
EDIT4:
Dass die < als < auf meinem Rechner richtig angezeigt werden liegt wohl daran, dass der Browser diese (HTML ... eigl klar) umwandelt.
Also bekomme ich das, was wirklich "da drin steckt" nur, wenn ich es mitspeichere.Beim testen mit der query, die ich eigl möchte, werden die Daten auch korrekt in der db abgespeichert:
Zitat
UPDATE mb_follower SET servers ='[{\"server_name\":\"iXBT <<<<<<<<<<<<<<<< PRIMAL RAGE >>>>>>>>>>>>>>>>\",\"game_mode\":\"BF_3\",\"number_players\":42},{\"server_name\":\"iXBT = MixMode = > Gun Master \\/ Domination < GGC PBBans\",\"game_mode\":\"BF_3\",\"number_players\":21}]', last_check ='1348845085', times_empty = 0, updated_rand_nr = '7909' WHERE account_id = 591
Ergebnis in db:Zitat
[{\"server_name\":\"iXBT <<<<<<<<<<<<<<<< PRIMAL RAGE >>>>>>>>>>>>>>>>\",\"game_mode\":\"BF_3\",\"number_players\":42},{\"server_name\":\"iXBT = MixMode = > Gun Master \\/ Domination < GGC PBBans\",\"game_mode\":\"BF_3\",\"number_players\":21}]Es liegt also 100% an json_encode.
Jetz brauch ich nur noch ne Idee was ich da machen kann ;D[/code]
-
EDIT: Lösung letzter Post
Ich weiss, dass bei "doppel"-htmlspecialchars zB aus '<' ein "ungewolltes" '>' wird.
Aber warum speichert meine bd das '<' ohne dass ich htmlspecialchars o.ä. verwende?In dieser Art handle ich es momentan:
PHP
Alles anzeigen$test['aa'] = '<<<<<<<<<<<<<<<< TEST >>>>>>>>>>>>>>>>'; $test['bb'] = 'aaa'; $test['cc'] = 1; $array[0]['a'] = $test['aa']; $array[0]['b'] = $test['bb']; $array[0]['c'] = $test['cc']; // connect to db ... $use_me = mysql_real_escape_string(json_encode($array)); // write into db ... // test echo $use_me;
So scheint alles i.O.
In der db kommt es aber so an:Zitat
[{\"a\":\"<<<<<<<<<<<<<<<< TEST >>>>>>>>>>>>>>>>\",\"b\":\"aaa\",\"c\":1}]Wo könnt ich noch suchen, wenn ich keine Vormatierung verwendet hab, ausser mysql_real_escape_string und json ?
-
WHERE ".$query_sql_where."
WHERE archiv = '0'
In dem code fehlt das ='0'
... daran könnt´s liegen .. denk ich
-
Hab mir OOP angesehen und denke ich verstehe, um was es sich dreht.
Was ich nicht verstehe ist, warum Klassen verwenden, wenn man doch auch normale Funktionen nutzen könnte.
Hab ich da was übersehen? -
oh, ich glaub mit dem anhängen war was anderes ... anyway.
>>> funktioniert: ....".date('H:i:s')." \r\n";
r war doch für windows und n for linux, wenn ich mich richtig erinnere
-
das war eines der ersten sachen die ich in den php videos gesehen hab:
-
nice danke,
werd ich mal versuchen.
=) -
Klar werd ich die sammeln (muessen).
Frage is ja eher, ob es einen Trick gibt es nicht tun zu müssen.
Versteh auch nicht warum es nur ein onload akzeptiert. -
Ich hab mich gewundert, warum immer nur ein onload ausgeführt wird.
Über google hab ich dann erfahren, dass wohl nur eines möglich ist.Frage: gibts einen Trick? Oder muss ich wirklich erst alle "sammeln" und am Ende des Scripts alle in (zB) einer JS funktion aufrufen?
Bsp, wie ich es momentan nutze:
HTML
Alles anzeigenhtml code ... html code ... <script type="text/javascript"> // hier sind schon mal 2 in einem (wahrscheinlich richtig=) window.onload = function () { initloadingbar(); if (document.all || document.getElementById){ start_ticking(); } } </script> html code ... html code ... <body onload="..."> // diese wird wohl nicht mehr "beachtet" html code ...