Du kannst ein margin-left für den Content (also #mainbox) definieren, der dann nicht überschritten wird.
Beiträge von Tobse
-
-
Das es nötig ist, habe ich nicht behauptet. Du kannst auch für jede Methode eine Zuweisung von Rückgabewert zu Fehler / korrekter Ausführung definieren (so wie es in PHP leider mit z.B. strpos noch so is). Dass das aber nicht gerade Best-Practice ist, werde ich dir nicht sagen müssen.
Ich, im Gegensatz zu dir, habe in Projekten mit mehreren Programmierern die Erfahrung gemacht, dass des einen unnötigen Auwand darstellt, sich durch die einzelnen Messages für Exception für jede Methode durchzuarbeiten anstatt einen Satz von 20 Excpetions auswendig zu kennen, der überall Anwendung findet. Soll sich der TE aussuchen, was besser ist.
-
Was ist mit Mehrsprachigkeit? Was ist mit spezieller Fehlerbehandlung? Wenn z.B. der user schon in der Datenbank steht, die E-Mail aber nicht raus ging (höchstwahrscheinlich, weil die Adresse flasch ist) musst du ihn wieder löschen, damit er sich mit einer korrekten E-Mail wieder registrieren kann.
-
Das Problem ist folgendes:
PHP
Alles anzeigenfunction registerUser($name, array $data) { // username zu kurz throw Exception(); // username zu lang throw Exception(); // username enthält zu kurzes Zeichen throw Exception(); // username gibts bereits throw Exception(); // datenbank mag nicht throw Exception(); // bestätigungs-mail konnte nich gesendet werden throw Exception(); }
Egal welcher fehler aufritt, es fliegt immer nur Exception. D.h. du musst noch einen switch-case block einführen um die Verschiedenen Szenarien zu behandeln (andere Fehlermeldung ausgeben).PHP
Alles anzeigenfunction registerUser($name, array $data) { // username zu kurz throw UsernameInvalidException("too_short"); // username zu lang throw UsernameInvalidException("too_long"); // username enthält zu kurzes Zeichen throw UsernameInvalidException("unsupported_char"); // username gibts bereits throw UsernameExistsException(); // datenbank mag nicht throw MySqlException(); // bestätigungs-mail konnte nich gesendet werden throw IOException("email_fail"); }
Jetzt kannst du z.B. im fall einer UsernameInvalidException immer die gleiche Fehlermeldung ausgeben (z.B. "Username ungültig") und/oder die Message in Verbindung mit einer Sprachdatei nutzen und dynamisch die passende Meldung erstellen.
Bei allen anderen Exceptions der Funktion (UsernameExistsException, MySqlException, IOException) weisst du stehts schon zum Zeitpunkt des Programmierens, was genau falsch gelaufen ist und nicht erst zur runtime. Dazu kommt, dass der Code übersichtlicher (und für aussenstehende einfacher zu lesen) wird, sowie das Programm merkbar schneller, wenn es sich um Boilerplate-Code handelt. -
Kann man. Allerdings musst du da eher eine UsernameInvalidException werfen, nur Exception ist ziemlich ungenau und kann ich richtig abgefangen werden.
EDIT:
Als Beispiel hier ein Auszug aus einer Login-Methode die ich regelmäßig benutze:PHP
Alles anzeigenclass User { /** blabla **/ /** * ... doku ... * @throws MySqlQueryException, PermissionBlockedException, NotFoundException, PermissionDeniedException * @return User */ public static function loginAs($username, $password) { // Login-Blockzeit prüfen (zu viele falsche PWs...) // if (true) { // der login is noch geblockt throw new PermissionBlockedException(); } // datensatz des users auslesen // if (!$users_exists) { // den Users gibts nicht throw new NotFoundException(); } // passwort prüfen if (!$pw_ok) { // falsches passwort // counter für falsche logins setzen bzw. erhöhen // bei erreichen des limits den login für die IP sperren throw new PermissionDeniedException(); } self::$currentUser = new User($row); $_SESSION['user'] = self::$currentUser; return self::$currentUser; } }
-
Naja nehmen wir dein Ziel mal auseinander:
Die Liste soll aus den letzten X runden bestehen. Das heisst was für die Spalte rundenID in der WHERE-Klausel?
Du willst alle Frags zusammenzählen. Das machst du am besten in dem du die Frags als "neue spalte" einführst und einen Subquery benutzt (eine andere Lösung fällt mir nicht ein).
Die Liste soll nach Frags sortiert sein. Das heisst was für die ORDER-BY-Klausel? -
Na also wenn ne Datenbank zum durchsehen und ausgeben (SELCET ... WHERE ... ORDER BY) von sagen wir mal 10.000 Datensätzen, länger als 3 Sekunden braucht haste schlicht nen lahmen server.
-
könntest du nicht auch per PHP (mit ner Fertigen FTP-API, gibts ja bestimmt) als PHP-Script vorgaukeln, der FTP-Server zu sein und dann die Bilder nach Alarm zu sortieren? Oder dass alle 10min ein Cronjob alle dateien die kurz hinereinander gemacht wurden einsortiert?
Dann kannst du parallel dazu ne Datenbank führen, in die alle Daten eintragen (Aufnahmezeitpuknt etc...) und die Bilder damit geordnet anzeigen. -
Nö.Und wie :O Schonmal dran gedacht, dass die Browserentwickler NIE auf dem Stand der Standards sind sondern diese meist nur als Beta-Funktionen anbeiten?
-
Ich habe jetzt keine Ahnung von dem Datei-Format aber so spontan würde ich sagen: RegularExpressions?
-
nur weiß ich einfach nicht wie ich ein bestimmtes Feld ansprechen kann -> das ich z.B. $feld[0][3] den Wert 0 geben kann oder was anderes?!
Ist jetzt nich dein Ernst????? Du wirst doch wohl wissen, wie man auf Variablen zugreifft? Bzw was ein Array ist, wenn du es schon verwendest.....
-
nenne mir bitte einen einzigen grund, wieso wir bzw ich (kann ja nur für mich sprechen) dir noch helfen sollen!
Die gleiche frage stelle ich mir auch.... du bekommst einen letzten Tipp, den kannst du umsetzen oder nicht, ich werd nach diesem Post auch aussteigen:
spielfeld.template.php erzeugt das Spielfeld aufgrund deiner Session-Daten. Jetz denk mal scharf nach, was sich ändern müsste, damit spielfeld.temaplte.php ne Andere ausgabe erzeugt also zuvor...
-
Die spielfeld.template.php includest du in die verarbeitung.php. Die kann etwa so aussehen (Einfach den Code mit dem du jetzt schon die Tabelle erstellst):
-
Dein Lehrer hat offensichtlich sehr wenig Ahnung, sonst hätte er dir bereits gesagt, wie das richtig geht. Ich geb dir jetzt einen Tipp:
Anstatt die Tabelle in die Session zu speichern, lege dir eine Datei "spielfeld.template.php" an, die AUSSCHLIEßLICH die Daten deines Spielfedes (also dein 2-Dimensionales-Array) in den HTML-Code umwandelt, der das wiederspiegelt und ihn auch direkt ausgiebt. In der Session speicehrst du dann nur deine Spieldaten, keinen HTMl-Code.
-
Du kannst hier auch zip-Dateien hochladen, dann kann sie jeder in diesem Thread herunterladen
wenn du die tabelle in die Session speicherst und immer diesen Wert ausgiebst, ohne ihn vorher mit deinen neuen, veränderten Daten zu aktualisieren, ist klar, dass immer das gleiche rauskommt.
-
Also erstmal wäre es schön, wenn du uns hilfst, und deinen Code sauber strukturierst, dass man das auch lesen kann.
Ich weiss jetzt nichts, WAS genau dein Problem ist, meine Glaskugel ist kaputt und in deinem Post stehts nicht, klär uns bitte auf
-
Ich hab doch geschrieben welche werte du zuweisen musst... ich werde dir keinen fertigen code liefern, aber google wird dir helfen, du bist nicht der erste, der versucht, das umzusetzen.
-
-
-
Das hat weniger mit CSS3 als mit Webdesign zu tun. Folgendes macht (auf mich) einen guten Eindruck, musst du aber eher mühevoll in ein anderes Design einbetten:
Code
Alles anzeigena.infobox { background-color: #FFDEA2; text-decoration: none; display: inline-block; border-bottom: 1px dotted #000; } a.infobox span { /* genauere positionierungs-definitionen */ padding: 3px; background-color: #FFE6B7; border: 1px solid #000; display: none; } a.infobox:hover span { display: block; }