kostenloser Webspace werbefrei: lima-city


Suche auf lima-city

  • in: Strong Receiver

    geschrieben von thwbm

    sebulon schrieb:
    die Büchs zu reparieren bringt bei dem anschaffungspreis nix, die reparatur ist teurer als die neuanschaffung

    Ich habe den Receiver erst vor ca. 3 Monaten gekauft, das heißt, die Reparatur würde ich nicht selber zahlen. Mein Problem ist, dass der Verkäufer im Laden sagt, das Problem sei, dass mein Bildschirm (1440*900 Pixel) eine zu hohe Auflösung hätte.
    Einfach wegschmeißen und neu kaufen (mit HDMI) würde natürlich gehen, das ist aber nicht mein Ziel, Sollte der Fehler im Bildschirm liegen, würde ich mich damit abfinden, dass ich den Receiver ab und zu mal neustarten muss.
  • in: Strong Receiver

    geschrieben von thwbm

    Ich habe schon mal am Kabel gewackelt, ohne Auswirkung. Wie gut oder schlecht das Kabel abgeschirmt ist ist schwer zu sagen. Ein Zweitgerät habe ich leider nicht.
    Ich habe die Temperatur des Receivers mit einem Infrarotthermometer gemessen. Die Temperatur lag überall unter 33°C. Natürlich ist das nicht die höchste Temperatur, aber im inneren zu Mesen ist schwierig. Ich möchte keine Platine ohne Gehäuse mit 230V offen rumliegen haben.
  • in: Strong Receiver

    geschrieben von thwbm

    Hallo,
    danke für die Antworten.
    sebulon schrieb:
    [...]wenn es erst nach einiger Zeit auftritt, ist es wie bei Elektronik üblich, Hitze, die Fehler verursacht[...]

    Ich werde, wenn der Fehler erneut auftritt mahl überprüfen, wie warm das Gerät ist. Das würde allerdings noch nicht erklären, warum ein Aus- und anschließendes Einschalten des Receivers das Problem lößt. Manchmal tritt das Problem auch nur während ein Paar Werbespots auf und verschwindet dann wieder von alleine. Dennoch werde ich dem nachgehen und ich bedanke mich für diesen Hinweis.
    Zu dem SCART-Kabel: Wie wahrschienlich ist es, dass es am Kabel liegt? Wieviel muss man für ein vernünftiges Kabel ausgeben?
  • in: Strong Receiver

    geschrieben von thwbm

    test-lg schrieb:
    Wenn möglich die Software Aktualiseiren.

    Die Software des Receivers wurde laut Verkäufer bei der Überprüfung in der Werkstatt aktuallisiert. Ich habe versucht, ein Update über Satellit laufen zu lassen. Ich weiß allerdings nicht, ob sich das auf die Software oder die Sender bezogen hat. Bei diesem Suchlauf wurde nichts gefunden. Bei dem Fernseher/Monitor kann ich mir nur die aktuelle Version der Software anzeicgen lassen. Es ist
    FL4 LT19M1CW_V2.00
    OTS DVB_DS_PGU 16:9
    Eine Funktion zum aktuallisieren habe ich dabei allerdings nicht gefunden.
    Hat noch irgendjemand eine Idee, was ich tun kann?
  • in: Strong Receiver

    geschrieben von thwbm

    Hallo,
    danke für die Antwort. Nein, der Fehler tritt nur auf, wenn der Receiver läuft. Wenn der Fehler im Bildschirm liegt, kann ich dann irgendetwas dagegen machen (außer neu kaufen)? Ich werde versuchen, ein anderes Gerät mit Scard-Anschluss zu finden, um den Eingang des Bildschirms zu überprüfen.
  • in: Strong Receiver

    geschrieben von thwbm

    Hallo,
    Ich habe mir einen Strong Primasat II Receiver gekauft und an meinen Fernseher bzw. PC-Monitor angeschlossen (Es ist entweder ein Fernseher mit VGA-Eingang oder ein PC-Monitor mit Antenneneingang). Die meiste Zeit über funktioniert der Receiver einwandfrei, manchmal sieht das Bild aber auch so aus:
    Bild 1-Bild 2-Bild 3
    Deswegen habe ich den Receiver schon zweimal zur Reparatur eingeschickt, beide male kam er unverändert zurück. Beide male mit dem Hinweis, der Receiver würde einwandfrei funktionieren. Beim letzten mal hat die Werkstatt gemeldet, die Auflösung meines PC-Monitors sei zu hoch. Laut Verkäufer im Laden bedeutet das, dass der Receiver für meinen Fernseher/Monitor nicht geeignet sei, da er ab einem bestimmten Moment nicht mehr richtig synchronisieren könne.
    Mein Bildschirm ist ein Haier LT19M1CW (19" und 1440*900px.)
    Muss ich mir wirklich einen anderen Receiver kaufen? Was bedeutet die Anmerkung des Verkäufers über das Synchronisieren?
    Danke für alle Antworten!
  • in: USB 3.0 max. Kabellänge

    geschrieben von thwbm

    Hallo,
    ich habe jetzt die Produkte, die ich oben genannt habe, bestellt und werde es einfach mal ausprobieren.
    Meine Festplatten haben alle eigene Stromversorgungen.
    invalidenturm schrieb:
    mehr zum Thema hier https://www.heise.de/ct/hotline/USB-3-0-Passive-und-aktive-Kabel-2056758.html

    Der Artikel empfiehlt eine aktive Verlängerung. Ich werde es mit der Passiven ausprobieren, sobald alles angekommen ist und wenn es nicht funktioniert, probiere ich die Aktive.
  • in: USB 3.0 max. Kabellänge

    geschrieben von thwbm

    Hallo,
    was wäre wenn ich eine aktive USB Verlängerung (z.B. diese hier) verwenden würde? In der Artikelbeschreibung steht
    Hinweis: Dieser Artikel ist nicht kaskadierbar, d.h nicht durch weitere aktive Verlängerungen erweiterbar

    Zählt ein Hub als aktive Verlängerung?

    Danke für die vielen schnellen Antworten.
  • in: USB 3.0 max. Kabellänge

    geschrieben von thwbm

    Hallo und danke für die schnellen Antworten,

    turmfalken-nikolai schrieb:
    Ich habe selbst schon mehrere Drucker am Rechner gehabt. Hat gut funktioniert. Wenn Du den Druckbefehl auslöst mußt Du halt den entsprechenden Drucker dort auswählen den Du nutzen willst. Andernfalls wird immer der Drucker angesprochen der als Standartdrucker definiert ist!

    Was heißt, ich muss den Drucker "dort auswählen"? Heißt "dort" im Programm von dem aus ich drucken will oder am Schalter vom Hub?
    Liefen diese Druckerüber ein USB 3.0 Kabel oder über 2.0?
  • in: USB 3.0 max. Kabellänge

    geschrieben von thwbm

    Hallo test-lg,
    danke für die Antwort.
    test-lg schrieb:
    Kurz und Knapp bis 3m länge sollte es keine Probleme geben.

    Der Hub hat auch noch ein Kabel, dass ich in die Verlängerung einstecken würde. Also wäre das Kabel vom PC zum Hub schon länger als 3m. Wenn man dann noch mal ein 2m Kabel in den Hub einsteckt wären das dann schon über 5m. Wie verhält sich das mit dem Hub? Zählen die 3m ab dem Hub erneut?
    Ab 3m nur gute Hersteller mit guter Abschirmung nutzen.

    Kannst die irgendetwas empfehlen?
    Es kann aber sein je nach Drucker das du immer nur einen Aktivschalten kannst damit das Drucken geht

    Was heißt das? Kann ich nur mit einem Drucker gleichzeitig drucken und soald er fertig ist mit dem anderen? Oder muss ich dann die Schalter am Hub verwenden?

    Hat vielleicht irgendjemand schon etwas ähnliches gemacht und kann eine Produktkombination nennen, die funktioniert?
  • in: USB 3.0 max. Kabellänge

    geschrieben von thwbm

    Hallo,
    ich benötige zwischen meinem PC und meinen Druckern und Festplatten ein längeres USB Kabel. Da eine der Festplatten mit USB 3.0 läuft würde ich gerne eine USB 3.0 Verlängerung verwenden. Ich habe gelesen, dass USB 3.0 Kabel nicht sonderlich lang sein dürfen. Ich würde jetzt gerne Wissen, ob folgende Anordnung funktioneren würde:

    PC->USB 3.0 Verlängerung (3m)->USB 3.0 Hub->USB 3.0 Kabel (ca. 2m)->Festplatte USB 3.0
                                              ->USB 2.0 Kabel->Festplatte USB 2.0
                                              ->USB 2.0 Kabel->Drucker USB 2.0
                                              ->USB 2.0 Kabel->Drucker USB 2.0


    Funktioniert das so?

    Ich habe mir diese Produkte rausgesucht:
    Verlängerung
    Hub

    Danke für alle Antworten!
  • in: Linux Ordner-/Dateiname verarbeiten

    geschrieben von thwbm

    muellerlukas schrieb:
    htmlentities maskiert Anführungszeichen bereits als ", da wird dir addslashes zusätzlich nix bringen.

    addslashes habe ich jetzt rausgenommen und es scheint tatsächlich keinen großen Unterschied zu machen. Ich hatte es eingebaut, da der Ordnername
    '
    (einfaches Anführungszeichen) an sonsten diese Fehlermeldung verursacht:
    SyntaxError: unterminated string literal

    Mit addslashes wurde das "'" zu einem "\'", wodurch sich JS nicht mehr beschwert hat. Leider hat dann aber irgendeine Abfrage nichtmehr gegriffen, da
    "'" != "\'"
    .
    Wie genau holst du denn jetzt den Wert mit Javascript und schreibst das div, wenn dus nicht als "einfache Ausgabe" schreibst?

    Ich hole mit jQuerys Ajaxfunktion die Inhalte der Ordner als Array (json) von einer PHP Datei. Javascript erstellt den
    <div>
    dann mit diesen Angaben über jQuerys
    .append
    -Funktion.
  • in: Linux Ordner-/Dateiname verarbeiten

    geschrieben von thwbm

    muellerlukas schrieb:
    Warte, irgendwas läuft hier gewaltig falsch. Magic Quotes ist grundsätzlich Mist. [...] Lass den Sch..eibenkleister einfach. Verdräng' ihn, verbrenn' ihn, ertränke ihn.

    Ich habe mich nicht weiter reingelesen, da es ja entfernt wurde.
    addslashes und htmlentities ist ebenfalls zusammen dämlich.

    Inwiefern dämlich? Gibt es irgendeinen Grund, beides nicht in Kombination zu verwenden?
    <div onclick="ordnerStrukturAnzeigen('<?php echo htmlentities($wert); ?>')">

    In der Form nutze ich das nicht. Der
    <div>
    wird dynamisch von Javascript zusanmmengebaut.
    Und vergiss nicht die genauen Prüfungen, wenn du absolute Pfade erlaubst.

    Ich nutze absolute Pfade. Das Programm ist nicht dafür gedacht, vom Internat aus genutzt zu werden. Es soll nur vom LAN aus genutzt werden. Sollte ich trotzdem etwas prüfen?
    Edit: Wenn du per Ajax die Pfade rumschickst, dann lade doch mal eine kleine Demo hoch mit dem JS und dem HTML.

    Eine Demo ist schwierig, da ja der PHP-Befehl
    exec()
    ausfeführt werden muss. Wenn ich fertig bin lade ich wahrscheinlich den gesammten Quelltext einmal hoch.
  • in: Linux Ordner-/Dateiname verarbeiten

    geschrieben von thwbm

    Hallo,
    ich nutzte PHP version 5.4.41-0+deb7u1. Magic Quotes klingen zwar interessant, wurden aber leider entfernt.

    Mit dem Stichwort "HTML-Entities" bin ich weiter gekommen. Ich habe
    addslashes
    und
    htmlentities
    kombiniert:
    $wert = addslashes(htmlentities($wert));


    Auf der Javascript-Seite habe ich das Problem in etwa so wie hier gelößt. Für die Anführungszeichen musste ich die Rückgabewert noch etwas anpassen:
    //Encodieren
    $("<div />").text(wert).html().replace(/\"/g, "&quot;");

    //Decodieren
    $("<div />").html(wert).text().replace(/&quot;/g, "\"");


    MFG THWBM
  • in: Linux Ordner-/Dateiname verarbeiten

    geschrieben von thwbm

    Hallo,
    ich erstelle momentan ein kleines Programm mit PHP/Javascript, mit dem ich auf dem RaspberryPi Musik abspielen will. Als Betriebssystem verwende ich Raspbian. Ich arbeite grade noch an einem Dateimanager, der ähnlich wie der Dateimanager bei Linux bzw. Explorer bei Windows aussieht. Grundsätzlich funktionert das auch schon, mein Problem sind aber Ordnernamen wie
    !"§$%&()=?+*#'-_.:,;<>|²³{[]}\\
    oder
    \n
    die bei Linux problemlos erstellt werden können. Der Ordnername ist dabei ein Funktionsparameter einer JS-Funktion:
    <div onclick="ordnerStrukturAnzeigen('"/home/pi/ordner"')">

    Dieser Paramter wird mit jQuery via ajax an ein PHP Skript übertragen, dass dann die Befehle auf dem Server, also dem RaspberryPi ausführt.
    Wenn der Pfad zu einem Ordner ein Leerzeichen oder eine Klammer beinhaltet wird jeweils ein "\" (backslash) davorgepackt:
    ordnerPfad = ordnerPfad.replace(/ /g, "\\ ");
    ordnerPfad = ordnerPfad.replace(/\(/g, "\\(");
    ordnerPfad = ordnerPfad.replace(/\)/g, "\\)");

    Leider verzweile ich noch an Anführungszeichen. Was muss ich tun, damit
    /home/pi/"
    (Anführungszeichen ist ein Ordnername) als Parameter inerhalb des onclick-events funktioniert?

    Gibt es überhaupt verbotene Zeichen für Dateien/Ordner unter Linux, außer "/"? Wenn ja, welche sind es? Sind potentiel auch z.B. chinesische Schriftzeichen erlaubt?

    MFG THWBM
  • in: Studentin will Fehler auf Webseite suchen - ein Fake?

    geschrieben von thwbm

    Hallo,
    kalinawalsjakoff schrieb:
    Aber der Betrüger muß doch irgendwie die Mailadresse kopiert haben und das (at) durch ein @ ersetzt haben. Einem Spambot traue ich das noch nicht ganz zu.


    Guck dir mal dieses Video (Teil 1) bzw. diese Video (Teil 2) an. Da wird genau auf dein Problem eingegangen.

    MFG THWBM
  • in: Raspberry Pi An-/Austaster

    geschrieben von thwbm

    Danke für die ausführliche Antwort. Du bist mir wirklich eine sehr große Hilfe.
    michaelkoepke schrieb:
    Nun lenke deinen Blick auf die Schalter, beide sind mit dem Minuspol verbunden und schalten somit gegen 0V,

    Heißt das, dass wenn ich die Stromversorgung umpolen würde und dementsprechend auch die LEDs, der Schaltkreis auf Loslassen der Taster reagieren würde? Ich weiß nicht, ob ich jetzt total daneben Liege, aber theoretisch sollte die Polung der Schaltung doch nur für die Dioden interessant sein. Wenn man dafür Glühlampen einsetzen würde, müsste es doch absolut egal sein. Wo ist mein Verständnisfehler?
    michaelkoepke schrieb:
    Schau dier das Datenblatt von der Conradseite an auf der ersten Seite unten links mit der Überschrifft "INPUT AND OUTPUT EQUIVALENT CIRCUIT" findest du ein Beispiel wie ein Microcontroller oder IC ausgänge über Transistoren, Thyristoren schaltet, vieleicht hilft das mein oben genannten Schriebs zu verstehen.

    Leider verstehe ich die Zeichnung nicht. Die Zeichnung zeigt insgesammt 6 beschriftete Kontakte. Sollten das nicht 14 sein? Oder stellt die Zeichnung nur einen Teil des ICs dar? Die Zeichnung Rechts daneben ("PIN CONNECTIONS") zeigt oben eine Schematische Zeichnung des ICs. Muss ich mir diese vier gleich aufgebauten "Teile" (ich habe grade kein besseres Wort dafür) wie Transistoren vorstellen? Ist der IC so eine Art Transistorsammlung, sodass alle vier einzeln und unabhängig voneinander arbeiten? Wenn ja, wofür sind dann VCC und GND?
    michaelkoepke schrieb:
    Lass dich bitte nicht von den Augen und von Bildern täuschen und lies etwas weiter unten :wink:[...] Aber Achtung, das Teil was du gefunden hast, ist ein SMD Bauteil und passt auf keine normale Lochrasterplatine ... Das Teil heißt anders, macht aber das slbe

    Danke für die Hinweise. Endlich mal Dinge, die ich auf Anhieb verstehe :wink:.
    michaelkoepke schrieb:
    Ich kann dir sehr gern eine fertige Schaltung mit Materialliste fertigen ...

    Das fände ich sehr Nett. Der Schaltplan würde mit Sicherheit beim Verstehen helfen. Und falls ich es dann noch nicht verstehe, sollte ich es verstehen, wenn ich es (nach-)baue. Die Hauptsache ist, dass ich am Schluss eine Schaltung habe, die funktioniert und bei der ich weiß, warum sie funktioniert :wink:.
    MFG THWBM
  • in: Raspberry Pi An-/Austaster

    geschrieben von thwbm

    michaelkoepke schrieb:
    Im Prinzip würde es funktionieren, die Schaltung wird durch 0V zurückgesetzt (S1 sowie S2 schalten gegen 0V!) Sprich ein Sprung von 3,3 auf ca. 0V (mit Widerstand beeinflussbar) Wird die Schaltung zurückgesetzt und dein Raspberry bekommt kein Strom mehr ...

    Bist du dir da sicher? Ich kenne mich zwar leider nicht sehr gur mit Schaltplänen aus, aber für mich sieht dieser Schaltplan so aus, als würde sich die Leuchtende LED wechseln, wenn ich den Taster drücke und nicht, wenn ich ihn loslasse. Kann mir das vielleicht mal jemand genauer und Stück für Stück erklären?
    michaelkoepke schrieb:
    Eine Frage ist noch zu klären ... Der Pin wird auf 3,3V gesetzt sobald an, oder sobald dein Programm sagt, der Pi ist hochgefahren? Wenn das so ist, muss da auch noch ein Kondensator rein, um die Basis auf über 1-2V zu halten, bis der Pin auf 3,3V umschaltet.

    Der Pin springt erst auf 3,3V, wenn der Raspberry Pi nach etwa 20 bis 30 Sekunden hochgefahren ist und das Skript gestartet wurde. Wo genau müsste der Kondensator denn dann hin?
    michaelkoepke schrieb:
    Wenn dir das zu kompliziert scheint, kannst du auch einen IC mit dem Namen 7400 nehmen und eine Logikschaltung bauen (RS-Flipflop - im prinzip wie oben, nur alles was du braucht schon im einem IC verbaut ...)
    hier mal ein Datenblatt dazu http://www.nxp.com/documents/data_sheet/74HC_HCT00.pdf

    Das sieht interessant aus. Bei Conrad finde ich dazu das hier. In deinem Datenblatt hat das Teil 14 Kontake, bei Conrad 16. Warum ist das so? Kann dieses kleine Bauteil das gleiche wie die umfangreichere Schaltung? Wenn ja, wo müsste ich was anschließen, wenn ich mit zwei Tastern zwei LEDs steuern wollte?
    Danke für die Hilfreichen Antworten.
    MFG THWBM
  • in: Raspberry Pi An-/Austaster

    geschrieben von thwbm

    Danke für die Antwort.
    michaelkoepke schrieb:
    Das beste wäre doch du nutzt Transistoren und baust dir einen "bistabilen Multivibrator" [...] hier einige nützliche infos dazu ...http://www.dieelektronikerseite.de/Lections/Bistabiler%20Multivibrator%20-%20Es%20kann%20nur%20Einen%20geben.htm

    Das sieht interessant aus.
    michaelkoepke schrieb:
    Du betätigst einen Taster (kurz) der Multivibrator springt um und dein Raspberry startet ... Wird er herunter gefahren schaltet der Pin von 3,3 auf ca. 0 V und schaltet somit den zweiten Transistor wieder ab.

    Wenn ich die Schaltung richtig verstanden habe, dürfte das so nicht funktionieren. In den Schaltungen gibt es zwei Taster: S1 und S2. S1 ist mein Antaster. S2 ersetze ich durch einen weiteren Transistor, den ich mit einem GPIO Pin ansteure.
    Wenn jetzt der RPi hochgefaren ist und ich den GPIO-Pin auf 3,3V stelle, müsste doch sofort die Stromzufuhr unterbrochen werden. Sie soll aber erst unterbrochen werden, wenn der GPIO-Pin auf etwa 0V zurückspringt.
    Habe ich das falsch verstanden?

    MFG THWBM
  • in: Raspberry Pi An-/Austaster

    geschrieben von thwbm

    hackyourlife schrieb:
    thwbm schrieb:
    fatfox schrieb:
    zum Hochfahren genügt ja ein einfaches Relais oder ein Transistor, ein Eltako ist da nicht erforderlich wenn man es richtig schaltet[...]

    Wie meinst du das? Wenn ich eine Relais mit einem Taster ansteue, springt es doch sofort wieder zurück wenn ich losgelassen habe. Müsste ich dafür dann nicht einen Schalter nehmen?
    Ich weiß zwar nicht wie der Fux das gemeint hat, aber mit Relais ist auch eine Selbsthaltung möglich, soll heißen: schaltest du das an bleibt es an, bis du extra wo den Stromkreis unterbrichst.

    Also ein Relais, das sich selbs ansteuert und somit ein Endlossignal erzeugt?

    hackyourlife schrieb:
    könnte es nicht auch sein, dass du bereits mit einer einfachen digitalen Schaltung genau das erreichen kannst, was du brauchst? Ich denke da jedenfalls gerade an ein einfaches FlipFlop, das du per Taster »anschaltest« und das sich dann beim GPIO-Pin wieder »ausschaltet« ?


    Die Idee gefällt mir. Ich habe jetzt mal überprüft, wie es mit den GPIO-Pins aussieht, wenn ich den Raspberry Pi herunterfahre. Beim hochfahren ist Pin 8 (mein Beispielpin) auf 0V. Wenn der Raspberry Pi fertig hochgefahren ist, kann ich ihn auf 3,3V schalten. Wenn ich jetzt den Befehl
    sudo shutdown now -h
    ausführe bleibt die Spannung von 3,3V noch kurz bestehen und springt dann auf etwa 0,5V. Ich bin mir nicht Sicher, ob das erst passiert, wenn der Raspberry Pi vollständig heruntergefahren ist oder schon auf halber strecke.

    Ich habe einen äußerst professionellen Schaltplan erstellt, der aber mehr oder weniger funktionieren sollte:
    ,,/---\,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
    ,(,(T),)-----+,,,,,,,,,,,,,,,,,,,,,,
    ,,\---/,,,,,,|,,,,,,,,,,,,,,,,,,,,,,
    ,,,,|,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,,
    ,,,,|,,,,,,,,+---------------------+
    ,,,,|,,,,,,,,|,,,,,,,,,,,,,,,,,,,,,|
    ,,,,|,,,,+---+--+,,,,,,,,,,,,,,,,,,|
    +---+----+RELAIS+-----+,,,,,,,,,,,,|
    |,,,,,,,,+------+,,,,,|,,,,,,,,,,,,|
    |,,,,,,,,,,,,,,,,,,+--+--++-----+,,|
    |,,,,,,,,,,,,,,,,,,|,RPi,||GPIO8+--+
    |,,,,,5V,,,,,,,,,,,+--+--++-----+,,,
    |,,,,,|,,,,,,,,,,,,,,,|,,,,,,,,,,,,,
    +-----||--------------+,,,,,,,,,,,,,
    ,,,,,,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

    Zur erklärung:
    Das "T" ganz oben stellt den Taster dar. Er stellt die Steuerspannung des Relais dar, genauso wie GPIO 8.
    Wenn ich richtig liege müsste man bei dieser Schaltung den Taster gedrückt lassen, bis der Raspberry Pi hochgefahren ist und GPIO 8 auf 3,3V gesetzt wurde. Beim herunterfahren würde GPIO 8 dann auf 0,5V fallen, was beim richtigen Relais dazu führen würde, dass die Stromversorgung unterbrochen wird.

    Ich hoffe man kann einigermaßen erkennen, wie ich mir die Schaltung vorstelle. Wahrscheinlich sind da noch viele, grobe Fehler eingebaut.
    Funktioniert die Schaltung so ansatzweise oder bin ich auf dem Holzweg?
    Wie bekomme ich es hin, dass ich den Taster nicht festhalten muss, bis der RPi vollständig hochgefahren ist?

    MFG THWBM
  • in: Raspberry Pi An-/Austaster

    geschrieben von thwbm

    Hallo,
    danke für die Antwort.
    fatfox schrieb:
    zum Hochfahren genügt ja ein einfaches Relais oder ein Transistor, ein Eltako ist da nicht erforderlich wenn man es richtig schaltet[...]

    Wie meinst du das? Wenn ich eine Relais mit einem Taster ansteue, springt es doch sofort wieder zurück wenn ich losgelassen habe. Müsste ich dafür dann nicht einen Schalter nehmen?

    fatfox schrieb:
    [...] oder man verwendet einen kleinen Mikrocontroler der das Relais / den Transistor ansteuert [...]

    Mit Microcontrolern kenne ich mich leider überhaupt nicht aus. Alles was ich bis jetzt dazu gefunden habe sieht nach einer sehr komplizierten Schaltung aus (In diesem Artikel wird dieser Schaltplan verwendet.). Ich denke, dass eine solche Schaltung üertrieben kompliziert ist.

    fatfox schrieb:
    [...]Ganz spannend wäre es, wenn sich ein IO-Pin finden würde der sofort bei Powerup ein Potential führt und bei Power Down logischerweise nicht mehr...dann wüsste man wann der shutdown beendet ist und man ausschalten darf [...]

    Das ist auf jeden Fall eine gute Idee, macht die Sache aber nicht unbedingt einfacher.
    Wenn ich den zweiten Beitrag dieses Themas richtig verstanden habe, springt GPIO 14 nach dem herunterfahren auf 0V. Damit wüsste man ab wann der Raspberry Pi fertig heruntergefahren ist.

    Wie setze ich das aber am besten um? Ist die Lösung mit einem Microcontroler wirklich die Beste? Mir wäre eine weniger komplizierte, mehr programmorientierte Möglichkeit lieber.
    Hat irgendjemand vielleicht noch ein paar weitere Schlagworte, nach denen ich mich erkundigen kann?

    MFG THWBM
  • in: Raspberry Pi An-/Austaster

    geschrieben von thwbm

    Hallo,

    ich suche nach einer Lösung meinen Raspberry Pi über einen einzigen Taster bei der
    1. Betätigung mit Strom zu versorgen und ihn somit hochzufahren und bei der
    2. Betätigung sauber herunterzufahren und vom Netz zu trennen, sodass er keinen Strom mehr braucht.

    Gibt es dafür eine elegante Lösung?

    Leider habe ich bisher keine praktikabele Lösung gefunden. Mein Ansatz:
    1. Betätigung: Der Taster löst zum Hochfahren einen Eltako aus, der den Raspberry Pi mit Strom versorgt.
    2. Betätigung: Der Taster verbindet zwei GPIO-Pins, sodass über ein Skript der Befehl
    sudo shutdown now -h
    ausgeführt wird. Gleichzeitig wird das Signal über ein Zeitrelais verzögert, sodass der Raspberry Pi 60 Skunden nach beätigen des Tasters vom Strom getrennt wird.

    Dieser Ansatz ist so nicht ausgereift und viel zu umständlich. Hat jemand eine Lösung oder auch einen Lösungsansatz, der keine elektrische Schaltung, die größer und teurer als der Raspberry Pi selber ist, benötigt?

    Ich bedange mich im Voraus für alle Antworten und Anregungen.
    MFG THWBM
  • in: Adapter für interne Laptopteile an Raspberry Pi

    geschrieben von thwbm

    Hallo furlinger,

    danke für deine Antwort.
    furlinger schrieb:
    [...]Zu der Tastatur:
    [...]Hierfür einen Adapter bauen ist relativ einfach wenn man weiß welche Taster hinter welcher Kombination liegt[...]

    Hast du denn auch eine Idee, wie ich herausfinden kann, welche Kombination was bedeutet? Wenn ich jede kombination ausprobieren würde, würde ich ewig da dran sitzen. Du hast gesagt, der Aufbau wäre immer ähnlich. Gibt es eine Art standartbelegung? Kennst du ein Datenblatt für eine Tastatur, die möglicherweise eine gleiche Polbelegung hat?

    MFG THWBM
  • in: Firefox Proxy Einstellungen

    geschrieben von thwbm

    Hallo faps96,
    normalerweise sollte Firefox die Proxyeinstellungen beibehalten, auch nach einem Neustart.
    Welches Betriebssystem nutzt du denn? Du könntest es über "als Administrator ausführen" oder über die Kompatibilitätseinstellungen versuchen.
    Wenn das nicht funktioniert könntest du es noch über "Hilfe->Mit deaktivierten Add-ons neu starten" versuchen, falls irgendein Addon die Netzwerkseinstellungen verändert.
    Wenn das alles nicht funktioniert könntest du es noch mit einer Neuinstallation von Firefox versuchen.
    MFG THWBM
  • in: Adapter für interne Laptopteile an Raspberry Pi

    geschrieben von thwbm

    Hallo,
    ich habe einen alten Laptop zerlegt und möchte die Einzelteile jetzt in Verbindung mit meinem Raspberry Pi nutzen.

    1) Tastatur
    Die Tastatur ist mir am wichtigsten. Ich bräuchte einen Adapter, der aus dem 24-Pol-Anschluss der Tastatur entweder USB oder etwas anderes, was man an den Raspberry Pi anschließen kann, macht (GPIO).
    -----
    Auf der Rückseite der Tastatur ist ein Aufkleber:
    Model No: MP-08J66D0-430
    P/N:6-800-M1100-070-1
    Language:Germany
    S/N: 103001392M
    Vendor:Chicony
    -----
    Kann man so einen Adapter irgendwo kaufen?


    2) Touchpad
    Das Touchpad (Rückansicht) hat einen 4-Pol-Anschluss. Handelt es sich da vielleicht schon um USB?
    -----
    Auch das Touchpad hat einen Aufkleber:
    TPA2U2VA98RM7
    T103110-11
    TAIWAN-1F
    -----
    Gibt es Adapter für entweder USB oder einer anderen Schnittstelle am Raspberry Pi?

    Bitte antwortet nicht mit soetwas wie "Kauf dir doch einfach eine USB-Tastatur für 5€.". Bei diesem Projekt ist der Weg das Ziel.
    Danke im Voraus für alle Antworten. :)

    MFG THWBM

  • in: Weltmeisteraktion 2014

    geschrieben von thwbm

    Danke für eure Antworten.
    c143 schrieb:
    Aktionen gelten eigentlich nur im ersten Jahr, da es beim zweiten mal eine neue Abrechnung ist, bei der keine Aktion mehr herrscht.

    Das klinkt logisch. Werbeparadise bestätigt deine Vermutung ja auch:
    werbeparadise schrieb:
    Hallo,
    wenn du die Domain jetzt für mehrere Jahre bestellst, gilt auch der Preis für alle Jahre. Sobald Deutschland aus der WM ausgeschieden ist, gilt wieder der reguläre Preis (auch für Verlängerungen).
    [...]
    Thomas Ba


    Meine Fragen sind beantwortet.
    Das Thema kann geschlossen werden.

    MFG THWBM
  • in: Weltmeisteraktion 2014

    geschrieben von thwbm

    johannestutorials schrieb:
    "Fügst Du diese Domain zum Warenkorb hinzu wird diese auf 3,99€ pro Jahr rabattiert. "

    Meine erste Frage bezieht sich im Grunde auf diesen Satz. Gilt dieser Preis von 3,99€/Jahr nur für das erste Jahr, oder für alle Jahre, in denen ich diese Domain verlängere?
  • in: Weltmeisteraktion 2014

    geschrieben von thwbm

    Hallo,

    ich habe heute von Lima-City eine E-Mail bekommen, in der hauptsächlich das hier drin steht:

    So lange Deutschland bei der WM mitspielt haben wir die passende Aktion zum Erfolgsmodell Deutschland: mache aus Deinen .tk-Domains nun .de-Domains, statt 7,99€/Jahr für sagenhafte 3,99€ pro Jahr!

    Mich interessiert, ob der Preis von 3,99€/Jahr dauerhaft oder nur für das erste Jahr gilt.
    Wenn ich also jetzt aus "maxmustermann.tk" "maxmustermann.de" machen wollte, müsste ich für das Jahr 2014/2015 3,99€ bezahlen, aber wie sieht es mit dem Jahr 2015/2016 aus? Muss ich dann wieder die vollen 7,99€ bezahlen oder dann immernoch nur 3,99€?

    Außerdem wüsste ich noch gerne, ob die Aktion ".tk" wird zu ".de" nur für Domains gilt, die man schon registriert hat oder auch für die, die man noch registreiert.
    Wenn ich also heute "maxmustermann.tk" registrere, kann ich die dann auch für 3,99€ zu einer ".de"-Domain machen?

    MFG THWBM
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    Hallo,
    ich habe es jetzt geschafft, eine XMPP-Verbindung mit einem Python-Skript herzustellen.
    Ich hatte ein paar Schwierigkeiten, die wahrscheinlich so Banal sind, dass sie in keiner Anleitung stehen. Trotzdem möchte ich hier jetzt meine Probleme mit Lösungen aufzählen, falls sich noch jemand dafür interessiert.
    Das Programm ist dazu da, eine Nachricht, die von einem Benutzer per XMPP abgeschickt wurde zurückzugeben:

    1) pip installieren
    Leider weiß ich nichtmehr genau, wie ich pip installiert habe, aber ich denke, dass ich es mit dieser Anleitung gemacht habe. Unter dem Punkt "Using Package Managers" und dem Unterpunkt "On Debian and Ubuntu:" steht die Befehlszeile, mit der ich es so weit ich mich erinnern kann gemacht habe:
    sudo apt-get install python-pip


    2) SleekXMPP installieren
    Auch hier bin ich mir nichtmehr 100%-ig sicher, aber ich denke, dass ich es mit diesem Befehl gemacht habe:
    pip install sleekxmpp


    3) Pythonskript kopieren
    Das Skript kann man hier finden. Ich habe es in eine .py Datei kopiert und diese dann auf meinen Raspberry Pi kopiert.

    4) Jabber-Konten erstellen
    Ich habe mir hier zwei Benuterkonten angelegt. Ich nenne sie hier jetzt beispielsweise "Benutzer1@jwchat.org" mit dem Passwort "Passwort1" und "Benutzer2@jwchat.org" mit dem Passwort "Passwort2".

    5) Skript anpassen
    Von unten die 3. Zeile lautet "xmpp = EchoBot('somejid@example.com', 'use_getpass')". Sie muss angepasst werden:
    xmpp = EchoBot('Benutzer1@jwchat.org', 'Passwort1')


    6) Programm starten
    Mit dem unten stehenden Befehl lässt sich das Programm starten:
    sudo python echobot.py


    7) Das Programm "ansprechen"
    Jetzt braucht man das zweite Jabber-Konto, um sich unterhalten zu können. Ich habe mich hier mir "Benutzer2" angemeldet. In dem Fenster, dass sich geöffnet hat gibt es unten links ein "+"-Zeichen, auf das man draufklicken muss. In das Feld mit der Beschriftung "Send subscription to" füllt man dann "Benutzer1@jwchat.org" ein und drückt auf "Send".

    8) Text abschicken
    Wenn alles geklappt hat, solltet ihr jetzt euren Kontakt "Benutzer1" sehen können. Wenn ihr diesen anklickt geht ein Fenster auf, in das ihr die Nachrichten eintippen könnt, die vom Raspberry Pi zurückgegeben werden sollen.


    Auf folgendes solltet ihr achten:
    1) In dem Skript "Benutzer1@jwchat.org" angeben und nicht nur "Benutzer1".
    2) Man sollte nicht mit "Benutzer1" irgendwo angemeldet sein währenddessen der Raspberry Pi dieses Konto verwendet. Das ist ein ziemlich blödes Problem, da ich lange nach gesucht habe und mich gewundert habe, warum das nicht funktioniert.


    Ich hoffe, ich dass diese Anleitung einigermaßen verständlich ist und Jemandem weiterhilft. Wenn dieser Text fehler enthält, bitte ich um einen kurzen Hinweis.

    MFG THWBM
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    Hallo,
    fatfox schrieb:
    thwbm schrieb:
    [...] ich kein Python behersche.

    Dann ist es ein idealer Zeitpunkt es zu lernen.

    Das versuche ich jetzt auch.
    hackyourlife schrieb:
    [...] also genau das, was du brauchen wirst (*klick*, *klick*).

    Danke für die Seiten, die haben mir sehr gut weitergeholfen.
    Ich habe unter http://sleekxmpp.com/getting_started/echobot.html ein Programm gefunden, dass Grundsätlich schon meine Bedürfnisse Befriedigen sollte, wenn ich es mit den GPIO-Funktionen verknüpfe. Nur leider Funktioniert das Skript bei mir nicht. Wenn ich die Datei ausführe, bekomme ich eine Fehlermeldung:

    pi@raspberrypi ~ $ sudo python Echobot.py
    Username: <Benutzername eines Jabberkontos von mir>
    Password: <Das Passwort für das Jabber-Konto>
    WARNING DNS: dnspython not found. Can not use SRV lookup.
    WARNING DNS: dnspython not found. Can not use SRV lookup.

    Die Zeile "WARNING DNS: dnspython not found. Can not use SRV lookup." wird immer wieder in einer Schleife angezeigt. Es existiert ein Ordner mit dem Namen "dnspython" im gleichen Verzeichnis wie die Datei. Was mache ich falsch? Wo kann ich dnspython installieren?
    Müsste ich nicht eigentlich auch irgendwo den Namen des Chatraums, auf dem ich mich mit meinen beiden Jabber-Konten "unterhalten" will, angeben?

    Danke für alle bisherigen Antworten und für alle, die ncoh kommen!
    MFG THWBM
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    Hallo,
    fatfox schrieb:
    Ich halte die Lösung mit Datenbank für extremst überdimensioniert.

    Den Gedanken mit XMPP halte ich aber für wirklich interessant

    Mit XMPP würde ich es auch gerne machen, die Lösung wäre viel schöner. Ich habe nur leider das Problem, dass ich kein Python behersche.
    Ich habe mir ein XMPP/Jabber Benutzerkonto erstellt, das grundsätzliche Nachrichtenverschicken funktioniert auch. Was muss ich jetzt tun, damit ich Befehle an den Raspberry Pi schicken kann?
    Was muss ich auf dem Raspberry Pi installieren?
    Ich habe versucht, Sleekxmpp nach der Anleitung auf https://github.com/fritzy/SleekXMPP zu installieren. Wenn ich aber
    pip install sleekxmpp
    abschicke, kommt die Fehlermeldung
    -bash: pip: Kommando nicht gefunden.
    zurück.
    Der Teil unter " Installing DNSPython" hat widerum funktioniert.
    Muss ich irgendwelche weiteren Programme installeiren?

    voloya schrieb:
    Wie viele mögliche Befehle gibt es denn? Nicht so viele, oder? Wäre da nicht eine textbasierte Lösung mit file_get_contents, bzw. einem bash Skript einfacher und perfomanter?

    Die Lösung, einen Server in einer Schleife mit Anfragen zu bombadieren ist fürs erste auf Eis gelegt. Ich versuche es erstmal mit XMPP.

    MFG THWBM
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    Hallo,
    voloya schrieb:
    Ja, der SSH Port muss natürlich offen sein. Die Verwendung ist einfach, einbinden und die Funktionen verwenden...

    thwbm schrieb:
    [...] sind änderungen am Router ausgeschlossen.

    Dann fällt PHPSeclib leider raus. Trotzdem Danke für den Vorschlag.

    Ich denke, dass die MySQL-basierende Lösung am einfachsten in der Umsetzung wäre, aber ich habe Angst, Ärger mit Lima-City zu bekommen, da ich die Ressourcen zu stark belastebn würde. Kennt jemand offizielle Zahlen zu den Begrenzungen hier bei LC? Sind die in den Regeln unter https://www.lima-city.de/2008/mysql#nutzung genannten Werte nur die Werte, die theoretisch erreicht werden können, oder sind das auch die Werte, die man dauerhaft voll ausnutzen darf?
    MFG THWBM
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    Danke für die Antwort!
    voloya schrieb:
    Ich sehe laut hier, dass GPIO einfach per Kommandozeile geseuert werden kann (mit "wiringpi"?).

    Ja, genau diese Anleitung habe ich auch gefunden.
    voloya schrieb:
    Für solche Fälle würde ich PHPSeclib verwenden, um mich über SSH einzuloggen und dann den Befehl auszuführen.

    PHPSeclib hört sich ganz gut an, aber ich verstehe noch nicht so ganz, wie das Funktioniert. Leider habe ich auch noch keine Anleitung zu PHPSeclib gefunden.
    Muss PHPSeclib auf dem Raspberry Pi laufen oder auf einem Server im Internet, der dan den Raspberry anspricht? Müsste für SSH nicht ein bestimmter Port geöfnet werden, oder ist das in diesem Fall nicht nötig?
    Kennt jemand eine gute Anleitung, in der Beschrieben wird, wie man mit PHPSeclib einen Befehl auf dem Raspberry ausführt?

    Falls PHPSeclib doch nicht Funktionieren sollte, hat Irgendjemand noch Ideen zu meinen Fragen aus meiner letzten Antwort?

    Ich freue mich auf all eure Antworten!
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    hackyourlife schrieb:
    Das zahlt sich wohl nicht aus, die DB-Variante wird dich einfacher und schneller ans Ziel bringen.

    Schade, aber die Frage ist, ob mich die Datenbank basierende Methode überhaupt an das Ziel bringt. Wenn die Abfragen als Angriff auf den Server gewertet werden, wäre das nicht so gut.
    hackyourlife schrieb:
    Die Frage dabei ist: Wie oft muss sein?

    Das ganze ist geplant, um eine Webcam steuern zu können. Der Raspberry Pi soll die Webcam dabei drehen Können, damit man sich "umsehen" kann. Von daher sollte die Verzögerung nicht viel mehr als eine Sekunde betragen.
    hackyourlife schrieb:
    Außerdem könntest du noch Timestamps für Befehle vergeben

    Gute Idee, aber leider hilft mir das in meiner Situation nicht.
    hackyourlife schrieb:
    Eventuell eine ganz andere Idee:
    Kennst du XMPP?

    Bisher habe ich XMPP nicht gekannt, aber es hört sich interessant an.
    hackyourlife schrieb:
    Falls du dir das mal ansehen magst könnte dir das weiterhelfen, wenn du Python als Programmiersprache nutzt?

    Leider behersche ich kein Python. Ich habe die Befehle bisher über PHP verarbeitet.
    Ist es möglich, über XMPP direkt eine Datei auf dem Server, der auf dem Raspberry Pi läuft, aufzurufen? Wenn ich also beispielsweise
    Pin 22 an
    in den Chat schreibe, dass dann die Datei
    <IP-des-Raspberrys>/index.php?Befehl=Pin_22_an
    vom Raspberry Pi selber aufgerufen wird?

    Um nochmal zu der Datenbank-Lösung zurück zu kommen:
    Wäre ein Aufruf pro Sekunde zu viel? Wenn ja, wie viele Anfragen darf ich schicken, ohne als Angreifer zu gelten und ohne Lima-City zu sehr zu belasten?
    Wie groß ist denn die durchschnittliche Zeitverzögerung bei einer MySQL-Datenbankabfrage?

    Ich bin dankbar für jede Hilfe!
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    Danke für die schnelle Antwort.
    hackyourlife schrieb:
    Wo hängt der Raspi dran?

    Meinst du damit die Netzwerksanbindung? Wenn ja, dann soll der Raspberry an ein einfaches Lankabel über einen standart Router laufen.
    hackyourlife schrieb:
    Wird der alle heiligen Zeiten mal umgesteckt?

    In wie fern umgesteckt? In erster Linie ist die Verbndung über das Internet nur kurzzeitig für ein Paar Stunden nötig.
    hackyourlife schrieb:
    Hast du einen anderen Server, zu dem dein Raspi eine VPN-Verbindung o.ä. aufbauen könnte?

    Ich habe leider nur einen Raspberry Pi und keine weiteren Server. Ich könnte allerhöchstens meinen Windows-PC, von dem aus ich den Raspberry steuern will, verwenden, sofern das geht.
    hackyourlife schrieb:
    Und zur Datenbank-Idee: wie schnell muss das System denn reagieren können?

    Das von mir genannte Beispiel mit einem Aufruf pro Sekunde sollte (grob geschätzt) reichen.
  • in: Raspberry Pi von außen erreichen

    geschrieben von thwbm

    Hallo,
    ich würde gerne die GPIO-Pins meines Raspberry Pis über das Internet steuern können. Da ich von Netzwerken allgemein nicht so viel Ahnung habe, weiß ich nicht so recht, wie ich das anstellen soll.
    So wie ich das verstanden habe, wäre eine Portfreigabe eine Möglichkeit. Da der Raspberry aber nicht bei mir zu Hause stehen soll, sind änderungen am Router ausgeschlossen.
    Die Idee, die mir jetzt gekommen ist, ist eine MySQL Datenbank auf Lima-City zwischenzuschalten. Ich meine damit, dass ich von Irgendwo aus über eine Internetseite in die MySQL Datenbank einen Befehl wie beispielsweise
    Pin 22 an
    schreibe, und der Raspberry Pi dann in regelmäßigen Abständen den Lima-City-MySQL-Server fragt, ob es einen neuen Befehl gibt.
    Wie oft dürfte ich eine Anfrage vom Pi aus an die MySQL Datenbank senden? Wenn ich einen Abstand von 1 Sekunde wählen würde, wäre die Zeitverzögerung zwar gering, aber ich glaube nicht, dass ich Stunden lang Tausende von Anfragen senden darf, oder?

    In den Regeln habe ich dazu das hier gefunden:

    MySQL
    [...]
    max_questions: 350.000 (Anzahl der Abfragen, die ein Konto pro Stunde absetzen kann)

    Quelle: https://www.lima-city.de/2008/mysql (Stand: 31.03.2014)

    Heißt das, dass ich ohne Probleme und ohne den Lima-City-Server zu stark zu belasten 350.000 Anfragen pro Stunde schicken dürfte? Das wären fast 100 pro Sekunde.

    Das wäre eine sehr unelegante Lösung, das ist mir bewusst. Welche Alternativen gibt es bzw. ist eine MySQL-Anfrag pro Sekunde doch nicht zu viel?

    MFG THWBM
  • in: Auth-Token System | jQuery

    geschrieben von thwbm

    lucas9991 schrieb:
    Ich verstehe überhaupt nicht, was du meinst.

    Ich versuche mal deinen Ansatz mit Alice und Bob zu übernehmen:
    Alice hat ein Benutzerkonto bei example.com. Bob will eine Datenbank im Namen von Alice so verändern, wie er es gerne hätte.
    Um das zu verhindern existiert auf dem Server von example.com eine Datei namens "Token.php":
    <?php
    //Gibt eine belibige Zeichenkette aus
    echo ErstelleToken();
    ?>

    Dieser Token wird nun erstellt, wenn das Formular geladen wird. Der Token wird an das Formular gehängt, und es wird beim Abschicken serverseitig überprüft, ob die übergebene Zeichenkette der vom Server generierten Zeichenkette entspricht. So weit sollte noch alles klar sein, oder?

    Wenn Bob jetzt einen Gültigen Token haben will, müsste er doch nur eine Seite veröffentlichen, die Allice aufruft, währenddessen sie bei example.com angemeldet ist, beispielsweise in einem zweiten Tab. Diese Seite kann dann einen belibigen Inhalt haben.
    Im Hintergrund ruft die Seite von Bob dann über Ajax die Token.php von example.com auf, erhält einen gültigen Token und kann diesen dann so verwenden, wie Bob es gerne hätte.
    MFG THWBM
  • in: Auth-Token System | jQuery

    geschrieben von thwbm

    Hallo,
    lucas9991 schrieb:
    Ich versuche mal meine Idee zu skizzieren:
    [...]

    wenn ich deine Idee richtig verstanden habe, bleibt aber doch das Problem, dass sich jemand anders als der Benutzer ausgeben kann. Wenn der Benutzer beginnt, das Formular auszufüllen und dann in einer anderen Registerkarte eine dritte Seite aufruft, könnte sich diese dritte Seite doch neue Tokens generieren lassen, oder? Mit diesen Tokens könnte sie dann das Formular abschicken, und zwar mit dem Inhalt, den die Seite für richtig hält. Wenn ich da jetzt etwas falsch verstanden habe, bitte ich um Berichtigung.
    MFG THWBM
  • in: Auth-Token System | jQuery

    geschrieben von thwbm

    Hallo,
    ello123 schrieb:
    Schwachstelle ist, dass jeder über Direktaufruf auf token.php sich einen gültigen Token generieren kann.

    ich bin mir nicht mehr Hundertprozentig sicher, da es schon etwas länger her ist, dass ich mich mit dem Quelltext genauer auseinandergesetzt habe, aber ich denke, dass ich genau das Problem auch habe. Durch diese Lücke, ist der gesammt Versuch, die Übertragung abzusichern hinfällig, oder? Eine dritte Seite könnte sich einen validen Token erstellen, wenn sie vom Benutzer aufgerufen wird. Diese Seite könnte dann Änderungen an der Datenbank im Namen des Benutzers machen.
    MFG THWBM
  • in: Auth-Token System | jQuery

    geschrieben von thwbm

    Hallo,
    ello123 schrieb:
    [ich] frage mich ob du jetzt eine relativ sichere Lösung gefunden hast.

    Nein, leider habe ich bisher keine bessere Lösung gefunden. Dieses Thema hier hat sich ja ein bisschen im Sand verlaufen.
    Wenn du eine Möglichkeit findest, um solche Datenbankaktuallisierungen sicher zu realisieren, könntest du sie ja hier veröffentlichen.
    MFG THWBM
  • in: RaspberryPi GPIO Zustände vertauscht

    geschrieben von thwbm

    Hallo,
    vielen, vielen Dank für deine Antwort:
    fatfox schrieb:
    Überprüfe die Polarität der LED trotzdem, eine LED ist keine klassische Diode und hat in Sperrichtung eine geringe Sperrspannung, es ist möglich das eine falsch gepolte LED zu unerwünschten Signalzuständen führt.

    Ich habe schlicht und ergreifend den falschen Pin erwischt, das konnte ja nichts geben. Jetzt funktioniert alles einwandfrei. Danke!
    fatfox schrieb:
    Ein Elektromotor dreht niemals vorwärts oder rückwärts er dreht oder dreht nicht.

    Ich habe mich da vielleicht falsch ausgedrückt. Mit "vorwährts" bzw. "rückwärts" meinte ich die Drehrichtung.
    fatfox schrieb:
    Im übrigen verhindert ein Widerstand (ganz allgemein) keinen Kurzschluss (wie könnte er) ein Widerstand begrenzt den durch Ihn fließenden Strom, nicht mehr und nicht weniger, entsprechend dem ohmschen Gesetz hat das Auswirkungen auf die Spannungen was man sich bspw. bei Vorwiderständen oder eben den Pull Down Widerständen zu Nutze macht .

    Ich glaube, da habe ich mich auch zu blöd ausgedrückt. Ich wollte Sagen, dass man Vorwiderstände einsetzen kann, um beispielsweise eine 12V Autolampe mit 24V zu betreiben, ohne dass irgendetwas durchschmort.
    fatfox schrieb:
    An eine LED gehört MINDESTENS ein Vorwiderstand zur Strombegrenzung [...]

    Die LED, die ich verwende braucht laut Verkäufer eine Spannung von 2,9V - 3,5V. Die GPIO Pins des Raspberry Pis liefern aber nur maximal 3,3V.

    Vielen Dank für die Hilfreiche Antwort, auch wenn der Fehler so einfach war.
    MFG THWBM
  • in: RaspberryPi GPIO Zustände vertauscht

    geschrieben von thwbm

    Hallo,
    danke für deine Antwort, aber ein paar Fragen habe ich noch:
    fatfox schrieb:
    Bau die LED richtig rum ein[...]

    Was heißt "richtig rum"? Wenn man bei einer LED +/- vertauscht, leuchtet sie gar nicht erst, weil dann kein Strom fließt. Aber selbst, wenn ich einen Verbraucher wie einen Elektromotor anschließen würde, dann würde er zu keinem Zeitpunkt rückwärts laufen. Er würde nur, wenn ich den Pin auf "Aus" stelle vorwährts, und wenn ich den Pin auf "An" stelle gar nicht drehen.
    fatfox schrieb:
    [...][W]enn das nicht funktioniert dann nutze einen Pull Down Widerstand.

    Was genau ist ein "Pull Down Widerstand"? Ein Widerstand allgemein verhindert einen Kurzschluss, wenn man beispielsweise einen Verbraucher hat, der auf 3V ausgelegt ist, man aber insgesammt 5V Spannung hat. Macht der Pull Down Widerstand das gleiche? Außerdem möchte ich keine Externe Lösung. Ich möchte, dass wenn mir der Raspberry Pi sagt, dass ein bestimmter Pin an ist, dieser auch an ist und ich nicht erst einmal umdenken muss. Der Fehler muss im Raspberry Pi liegen und nicht in der Schaltung selber, die ja nur aus dem Raspberry Pi, zwei Kabeln und einer LED besteht.
    fatfox schrieb:
    [...]Ach ja: LEDs gehören nicht direkt an Pins eines Controlers.

    Inwiefern? Was sprich dagegen, eine einzelne LED zu Testzwecken direkt an die GPIO-Pins anzuschließen? Wie sollte ich es schlauer lösen?

    Bitte entschuldige, falls das ziemlich einfache Dinge sind, nach denen ich hier frage.
    MFG THWBM
  • in: RaspberryPi GPIO Zustände vertauscht

    geschrieben von thwbm

    Hallo,
    ich habe ein Problem mit den GPIO-Pins an meinem Raspberry Pi Modell B. Als Betriebssytem nutze ich Raspbian, um die GPIO-Pins zu schalten nutze ich wiringPi. An einem der Pins habe ich eine einfache LED angeschlossen, um den Zustand (An/Aus) dieses Pins sehen zu können. Das Funktioniert auch, aber aus irgendeinem Grund werden die Zustände vertauscht ausgewertet. Sobald ich
    gpio -g mode 22 out
    ausführe, also Pin 22 als Ausgang definiere, fängt die LED an zu leuchten.
    gpio readall
    gibt mir dann folgendes für Pin 22 zurück:
    +----------+-Rev2-+------+--------+------+-------+
    | wiringPi | GPIO | Phys | Name   | Mode | Value |
    +----------+------+------+--------+------+-------+
    |      3   |  22  |  15  | GPIO 3 | OUT  | Low   |
    +----------+------+------+--------+------+-------+

    Als "Value" wird "Low" angegeben, so wie es auch sein sollte, da ich den Pin ja noch nicht aktiviert habe. Dabei leuchtet die LED aber schon, was sie noch garnicht tun sollte. Um sie jetzt auszuschalten, muss ich über
    gpio -g write 22 1
    den Pin aktivieren, also genau falsch herum. Nachdem ich dann
    gpio -g write 22 1
    abgeschickt habe, schaltet sich die LED aus und
    gpio readall
    gibt folgendes zurück:
    +----------+-Rev2-+------+--------+------+-------+
    | wiringPi | GPIO | Phys | Name   | Mode | Value |
    +----------+------+------+--------+------+-------+
    |      3   |  22  |  15  | GPIO 3 | OUT  | High  |
    +----------+------+------+--------+------+-------+

    Laut dieser Angabe müsste die LED jetzt leuchten, aber das tut sie nicht.

    Ich habe bereits zwei verschidene SD-Karten verwendet, um einen Fehler beim Installieren auszuschließen. Außerdem habe ich bereits mehrere Pins überprüft. Sowohl Pin 22 als auch Pin 27 liefern das gleiche Ergebnis. Ein PHP-Script, dass auf einem anderen Raspberry Pi mit identischer Konfiguration die Pins fehlerfrei steuern konnte, funktioniert jetzt nurnoch falsch, also der Knopf für "An" schaltet die LED aus und der Knopf für "Aus" schaltet die LED an.
    Hat jemand eine Idee, wodran das liegen könnte? Ich habe schon ein bischen im Internet recherchiert, aber noch nichts brauchbares gefunden. Falls noch jemand weitere Informationen braucht, um eine Antwort zu geben, gebe ich diese gerne an.
    MFG THWBM
  • in: Schriftart im IE anders als im FF, Chrome o.ä.

    geschrieben von thwbm

    Hallo,
    da du nur einen bit.ly Link zu deiner Seite angegeben hast, habe ich nicht getestet, wie die Schrift momentan aussieht. Wenn du hier einen direkten Link zu der Seite angibst, kann ich es mir vielleicht mal ansehen.
    Falls du die Schriftart, die in HTML verwendet wird, verändern willst, kannst du CSS verwenden: http://de.selfhtml.org/html/text/schrift.htm#css_entsprechungen.
    Da sich dieses Thema aber im Forum "PHP, MySQL & .htaccess" befindet, könnte es auch sein, dass es ein Serverseitiges Problem ist. Dies sollte sich aber nicht durch unterschiedliche Darstellung in verschiedenen Browsern zeigen. Ist es jetzt eher ein "PHP, MySQL & .htaccess"- oder ein "HTML, CSS & Javascript"-Problem und müsste eigentlich in ein anderes Forum?
    MFG THWBM
  • in: Zeit zwischen 2x Datum formatiert

    geschrieben von thwbm

    Hallo,
    gameflash schrieb:
    wie bekomme ich da jetzt eine Angabe für Monate mit rein ?!

    Du müsstest als erstes abfragen, um welchen Monat es sich handelt. Das machst du am besten mit der date(); Funktion:
    date("n", $timestamp);

    Das liefert dir für den November eine 11 zurück. Das musst du jetzt für jeden Monat abfragen, der in deinem Zeitraum liegt. Nun kennst du die Länge der Monate, es sei denn, es ist der Februar dabei. Wenn der Zeitabstand den Februar einschließt, kannst als nächstes an Hand des Jahres herausfinden, ob es ein Schaltjahr ist:
    date("L", $timestamp);

    Das gibt "1" für ein Schaltjahr und an sonsten "0" zurück.
    Damit kannst du jetzt jeweils ausrechnen, wie groß der Zeitabstand ist. Wenn du nur abstände von etwa 35 Tagen hast, sollte das so schon reichen. Wenn du unter umständen aber auch einen Zeitabstand zwischen deinen beiden Zeitpunkten von mehreren Jahren hast, müsstest du noch eine
    while() {}
    -Schleife oder ähnliches einbauen, und dann jedes Jahr einzeln durchgehen.

    Du solltest außerdem beachten, dass die Standart PHP-Zeitfunktionen nur für Daten vom 13.12.1901 20:45:54 UTC bis zum 19.01.2038 03:14:07 UTC richtig funktionieren (Quelle). Um dies zu umgehen, kannst du beispielsweise diese Funktionssammlung verwenden.

    MFG THWBM
  • in: Welt-/Pixelkoordinaten umrechnen

    geschrieben von thwbm

    czibere schrieb:
    thwbm schrieb:
    ...Ist das so richtig? Wenn ja, was heißt das jetzt?
    nein :(

    Erstmal danke für die kurze, knappe Antwort.
    czibere schrieb:
    winkel in bogenmaß (radiant). also zuerst einmal umrechnen (
    1° = 2 * Pi / 360 rad
    ).

    Danke das habe ich falsch (oder eher gesagt gar nicht) verstanden.
    Wikpediaartikel:
    mit Formel: \lambda_0 als geographischer Länge des Kartenzentrums

    Das habe ich wahrscheinlich falsch verstanden. Ich habe 0 eingesetzt, da der Bildmittelpunkt der Karte der 0-Meridian ist, also 0°. Was muss ich da einsetzen?
    czibere schrieb:
    dann was meinst unter
    y = in( ...
    ? es heißt
    y = ln( ...
    also logarithmus naturalis.

    Entschuldigung, der Unterschied war mir nicht bekannt.
    Ich bin zu blöd um ein "I" (Groß i) von einem "l" (Klein L) zu unterscheiden.
    czibere schrieb:
    das ist richtig und zwar deshalb weil london von london so nach westen wie nach osten genau 2π rad entfernt ist (klingt etwas scherzhaft, aber ist war).

    Das heißt also, dass London 2*Pi*Erdradius, also einmal um die Erde rum, nach Osten und Westen von London entfernt ist, logisch.

    Was muss ich den jetzt (umgangssprachlich) für Formel: \varphi, Formel: \lambda und Formel: \lambda_0 einsetzen?
    Formel: \varphi = Ost/West Weltkoordinate des Zielortes
    Formel: \lambda = Nord-Sud Weltkoordinate des Zielortes
    Formel: \lambda_0 = ?
    Sind die Variabeln so richtig belegt bzw. was muss für Formel: \lambda_0 eingesetzt werden? Ich finde die Wikipedia-Formulierungen sehr kompliziert.
    Wo muss ich die X-/Y-Auflösung der Karte einsetzen?
    Danke für die bisherigen, sehr hilfreichen Antworten.
    MFG THWBM
  • in: Welt-/Pixelkoordinaten umrechnen

    geschrieben von thwbm

    czibere schrieb:
    ......#Normale_Mercator-Projektion dort steht eigentlich alles, was du suchst.

    Diese Rechnungen habe ich auch schon gesehen, blicke aber nicht durch ;-). Ich nehme mir jetzt mal ein Beispiel:
    01945 Lindenau (Brandenburg) liegt bei 51,4°N und 13.7333°E. Wenn ich das jetzt in die Gleichungen auf Wikipedia einsetze, erhalte ich:

    Formel: x=13,7333-0=13,7333
    Formel: y=in(tan(pi/4+51.4/2))≈-0,69663

    Ist das so richtig? Wenn ja, was heißt das jetzt? Man müsste doch eigentlich noch die Auflösung der Karte mit einbeziehen, denn sonst kann man ja keine Pixel ausrechnen. Wo liegt der Fehler?
    MFG THWBM
  • in: Welt-/Pixelkoordinaten umrechnen

    geschrieben von thwbm

    czibere schrieb:
    recht gute resultate ergibt diese suche ;)

    Hallo,
    danke für die Antwort, aber ich komme damit nicht so recht weiter. Ich finde da hauptsächlich Treffer zum Thema "Wie speichert man Koordinaten in einer MySQL Tabelle?" und nicht zum Thema "Wie rechnet man Koordinaten um?". Mit MySQL hat mein Vorhaben ja auch nur indirekt zu tun, denn ich entnehme nur die Daten aus einer MySQL Tabelle. Der Rest sollte mit Mathematik und PHP machbar sein. Ich bin eher auf der Suche nach einer Formel, mit der ich ganz allgemein die Koordinaten umrechnen kann.
    MFG THWBM
  • in: Welt-/Pixelkoordinaten umrechnen

    geschrieben von thwbm

    Hallo,
    ich habe ein Problem bei der Umrechnung von Weltkoordinaten in Pixelkoordinaten auf einer Karte. Ich weiß, dass das nur indirekt etwas mit PHP, MySQL & .htaccess zu tun hat, ich habe aber kein besser passendes Forum gefunden.
    Ich habe rohdaten, in einer MySQL Tabelle (von geonames.org), die vereinfacht so aussehen:

    ID_|Ort__________|Breite____|Laenge
    ----+---------------------+--------------+---------
    1__|Musterstadt___|10.5665__|23.9887
    2 __|Nachbarstadt_|50.99955_|30.56

    Erklärung:
    ID-> Fortlaufende Nummerierung aller Orte, die in der Liste stehen
    Ort-> Der Ortsname des jeweiligen Ortes
    Breite-> Die geographische Breite in Grad (°)
    Laenge-> Die geographische Länge in Grad (°)

    Nun möchte ich diese Koordinaten auf einer Karte mit PHP anzeigen lassen. Als Karte würde ich gerne eine Karte in der Mercator-Projektion verwenden, also beispielsweise diese Karte. Mein Hauptproblem ist es, dass ich nicht weiß wie ich aus der Breite und Länge Koordinaten in Pixel mache. Kann mir jemand weiterhelfen? Hat jemand eine Anregung oder eine Idee, wie ich die Koordinaten umrechnen kann?
    Danke im Voraus für alle Antworten.
    MFG THWBM
  • in: mp4 wird nach upload gelöscht

    geschrieben von thwbm

    Hallo,
    Ich zitiere jetzt einfach mal die Regeln:

    Auf dem Webspace sind nicht alle Dateiformate erlaubt, wohingegen dir der Download-Server zur Verfügung steht, auf dem du alle Dateiformate speichern darfst. Auf den Webspace-Servern sind folgende Dateiformate verboten:

    *.bmp, *.avi, *.midi, *.mpeg, *.mpg, *.mp3, *.wav, *.wmv, *.wma, *.mov, *.rar, *.zip, *.ace, *.tar, *.exe, *.lzh, *.tar.gz, *.tar.bz2, *.gz, *.bz2, *.jar, *.psd, *.cab, *.mid, *.zi0, *.torrent, *.dem, *.w3g, *.w3x, *.wmf, *.dll, *.ogg, *.bin, *.psp, *.tgz, *.ram, *.rmvb, *.7z.
    [...]
    Des Weiteren sind auf dem Webspace alle multimedialen Dateitypen (Dateien, welche Bild, Ton, Ton + Bild = Video beinhalten) nicht erlaubt, Ausnahmen sind natürlich *.png, *.gif, *.jpg, *.jpeg, *.ico, *.swf, *.pdf, *.doc, *.xls, *.ppt, *.odt, *.ods und *.odp Dateien.

    Quelle: https://www.lima-city.de/2008/help
    Ich denke, das sollte deine Frage beantworten.
    MFG THWBM
  • in: Einmal Durchzählen - ich fange an :) !

    geschrieben von thwbm

    tft-development schrieb:
    kusta schrieb:
    fuerderer schrieb:
    devils-plaything schrieb:
    Tz, lass doch mal den kleinen Kindern ihren Spaß, du Spielverderber! :fart:
    Eben :king:


    2

    Und weiter gehts!

    3


    4

    Hallo,
    ich glaube, jetzt müsste die 5 kommen, also 5!
    MFG THWBM
  • in: Mails für .tk Domains

    geschrieben von thwbm

    Hallo,
    seven-sign schrieb:
    wenn du dich mit "dein-name@deine-domain.tk" eingeloggt hast,
    bist du doch schon längst am Ziel. o0

    ich habe den Fehler gemacht und mich mit "mein-name@gmx.de" eingeloggt, also mit meiner standart E-Mail Adresse. Mit "mein-name@meine-domain.tk" funktioniert es, danke. Ich denke, dass hpage den gleichen fehler gemacht hat.
    MFG THWBM
  • in: Mails für .tk Domains

    geschrieben von thwbm

    Hallo,
    unter live.com werde ich nicht nach irgendwelchen Konten/Passwörtern gefragt, mir wird nur ein Posteingang mit einer "Herzlich wilkommen bei Outlook.com" E-Mail angezeigt. Wie ist denn die genaue Adresse wo ich nach dem Login hin muss?
    MFG THWBM
  • in: Mails für .tk Domains

    geschrieben von thwbm

    Hallo,
    ich bin deiner Anleitung gefolgt und habe 0,99€ ausgegeben um E-Mail Adressen für .tk Domains zu bekommen. Ich bin bis zu dieser stelle gekommen, aber nicht viel weiter. Ich habe auf "+Hinzufügen" geklickt und ein neues Konto erstellt, das hat auch funktioniert. Als nächstes müsste ich die E-Mails ja irgendwie abfragen/ versenden können, das funktioniert aber nicht bzw. ich weiß nicht wo/wie ich das machen kann. Bin ich zu blöd oder muss ich noch etwas beachten. Wenn ich versuche eine E-Mail an die erstellte Adresse zu schicken, dann bekomme ich kurz darauf eine Antwort in der Form "E-Mail versand fehlgeschlagen, da es die Adresse nicht gibt". Was mache ich falsch?
    MFG THWBM
  • in: Informatik Literatur

    geschrieben von thwbm

    Hallo,
    1) Buchliste
    2) Da wir uns ja jetzt im Spam-Forum befinden: Stupidedia ;-)
    MFG THWBM
  • in: HTML Tabelle mit Bildgröße in %

    geschrieben von thwbm

    Hallo,
    timebandit schrieb:
    Bilder in Tabellen zu integrieren führt häufig zu Darstellungsproblemen

    ich habe es jetzt mal ganz ohne Tabellen versucht, dabei hatte ich aber das Problem, dass der
    <div>
    , der eine
    <tr>
    ersetzen soll, nicht nach rechts, sondern nach unten vergrößert, wenn der Inhalt (weitere
    <div>
    s) zu groß ist:
    <div calss="Umriss">
      <div calss="Inhalt">
        Inhalt, der aus eine DB kommt, also unterschiedlich lang ist.
      </div>
      <div calss="Inhalt">
        Inhalt, der aus eine DB kommt, also unterschiedlich lang ist.
      </div>
      <div calss="Inhalt">
        Inhalt, der aus eine DB kommt, also unterschiedlich lang ist.
      </div>
    </div>

    Und der CSS-Teil:
    .Inhalt {
      float: left
    }
    .Umriss {
      height: 10%;
    }

    Wenn jetzt der äußere
    <div>
    zu klein ist, dannwerden die inneren
    <div>
    s nach unten und nicht zur seite verschoben. Ich möchte aber, dass die inneren
    <div>
    s wie
    <td>
    s in einer Tabelle nebeneinander sind. Hat jemand eine Idee, wie man das lösen kann? Mit
    .Umriss{width: 99999999%}
    geht es zwar, das ist aber sehr unsauber und das möchte ich vermeiden.
    MFG THWBM
  • in: HTML Tabelle mit Bildgröße in %

    geschrieben von thwbm

    Hallo,
    hcms schrieb:
    [...] die höhe der zabellenzellen direkt in der td angegeben werden [...] zellen mit position:relative [...] img in [...] zb div oder p.

    Habe ich versucht, hat nicht funktioniert. Die Bilder wurden nicht richtig angepasst.
    timebandit schrieb:
    In HTML 4.01, the height could be defined in pixels or in % of the containing element. In HTML5, the value must be in pixels.

    Das erklärt so einiges, aber warum ist das so? Angtaben in % sind doch etwas tolles, warum hat man das rausgenommen? Gibt es eine Möglichkeit,
    <table height="X%">
    ,
    <tr height="X%">
    ,
    <td height="X%">
    oder
    <img src="123.png" alt="" height="X%">
    zum Funktionieren zu bringen? Ich meine jetzt, eine alternative über CSS oder ähnliches. Hat jemand eine Idee?
    MFG THWBM
  • in: HTML Tabelle mit Bildgröße in %

    geschrieben von thwbm

    Hallo,
    hcms schrieb:
    hmm seltsam, was sagen deine browser denn zu diesem code, ohne tabelle: ?
    [...]

    Ohne Tabelle funktioniert es, die Bildgrößen passen sich richtig an, aber ich habe das ganze in einer Tabelle:
    <html>
      <head>
        <title>
          Nur ein Test
        </title>
        <style type="text/css">
          body, html {
            width: 100%;
            height: 100%;
            margin:0px;
            padding:0px;
          }
        </style>
      </head>
      <body>
        <table height="100%">
          <tr height="10%">
            <td>
              <img height="100%" src="Bild.png" alt="">
              <img height="100%" src="Bild.png" alt="">
            </td>
            <td>
              <div id="MehrInhalt">
                Tabelle mit Text
              </div>
            </td>
          </tr>
          <tr height="90%">
            <td>
              Text
            </td>
            <td>
              Text
            </td>
          </tr>
        </table>
      </body>
    </html>

    Ob ich die Bilder in noch eine weitere Tabelle setze oder nicht ändert nichts, sie werden nicht angepasst. Die äußerde Tabelle muss bleiben, da sie noch weiteren Inhalt hat.
    rsinfo schrieb:
    [...]evtl. liegt dein Fehler in dem HTML Teil, wenn du ein <td> oder <tr> irgendwie vergessen hast bzw. nicht richtig geschlossen hast, dann passieren meistens so komische Fehler... [...]

    Ich habe es mit dem Code, den ich hier veröffentlciht habe, getestet. Ich habe ihn kopiert.
    Hat noch jemand eine Idee oder einen Denkanstoß?
    MFG THWBM
  • in: HTML Tabelle mit Bildgröße in %

    geschrieben von thwbm

    Hallo,
    hcms schrieb:
    so sollte ds eigentlich funktionieren:
    [...]

    so funktioniert es leider auch nicht. Ob ich
    table {height: 3%;}
    oder
    table {height: 1%;}
    angebe, die Ausgabe auf dem Bildschirm ändert sich nicht. Bei
    table {height: 10%;}
    überlagern sich die Bilder, die
    <td>
    s sind also zu schmal. Ich habe es im Firefox und im Chrome getestet. Was mache ich falsch?
    MFG THWBM
  • in: HTML Tabelle mit Bildgröße in %

    geschrieben von thwbm

    Hallo,
    ich denke, dass mein Problem relativ einfach zu lösen ist, ich komme aber im Moment nicht weiter:
    Ich habe eine Tabelle, in der ein Bild ist:
    <html>
      <head>
        <title>
          Nur ein Test
        </title>
        <style type="text/css">
          body, html {
            width: 100%;
            height: 100%;
          }
          table, tr, td {
            border: 1px solid black;
          }
          div {
            height: 3%;
          }
          img {
            height: 100%;
          }
        </style>
      </head>
      <body>
        <div>
          <table height="100%">
            <tr height="100%">
              <td>
                <img src="Bild.png" alt="">
              </td>
              <td>
                <img src="Bild.png" alt="">
              </td>
            </tr>
          </table>
        </div>
      </body>
    </html>

    Ich habe jetzt mit Absicht die
    <div>
    -höhe so extrem klein Gewählt, damit mein Problem klar wird: Die Tabellenhöhe wird der Bildhöhe angepasst. Wenn man im CSS
    img{display: none;}
    ergänzt, wird die Tabelle wieder so klein, wie sie sein Soll, aber ohne wird die Tabellengröße auf die Bildhöhe angepasst.
    Hat jemand eine Idee, wie ich verhindern kann, dass die Tabellengröße verändert wird? Ich möchte, dass das Bild dann kleiner wird, wenn zu wenig platz vorhanden ist. Danke im Vorraus für alle Antworten.
    MFG THWBM
  • in: Beitrag im Cookie speichern

    geschrieben von thwbm

    Hallo,
    hackyourlife schrieb:
    Diesen Vorschlag gab es schon öfter, sogar schon von dir: *klick*

    damit hat sich das Thema erledigt ;-). Jetzt wo ich das andere Thema überfliege fällt mir es auch wieder ein, dass ich (und auch andere vor mir) den Vorschlag schon hatte(n). Ist das ganze in vergessenheit geraten oder gibt es einen anderen Grund, warum das noch nicht umgesetzt ist?
    MFG THWBM
  • in: Beitrag im Cookie speichern

    geschrieben von thwbm

    Hallo,
    ich möchte vorschlagen, dass ein Beitrag, der (noch) nicht zu ende geschrieben wurde in einem Cookie oder ähnlichem gespeichert wird. Dann ist nicht die gesammte Arbeit hin, wenn man aus versehen den Tab schließt oder die Seite neu lädt. Ich war eben auf einer anderen Internetseite, habe bei NoScript "ajax.googleapis.com" rechte gegeben und schon wurde auch Lima-City neu geladen. Mein Beitrag (zum glück kaum angefangen) war weg. Alternativ könnte man auch eine Abfrage machen: "Auf dieser Seite bleiben? Ja/Nein", auch wenn mir die erste Version besser gefällt. Was haltet ihr davon?
    PS: Wenn es diesen Vorschlag schon gibt, möchte ich mich entschuldigen.
    MFG THWBM
  • in: Cache für bestimmte Zeit

    geschrieben von thwbm

    Hallo,
    versuch mal
    <meta http-equiv="cache-control" content="max-age=60">
    , ich habe es jetzt nicht getestet, aber einen Versuch ist es Wert. Siehe diese Seize (erster Treffer bei Google für
    header("Cache-Control: public, max-age:60");
    ).
    An sonsten könntest du vielleicht mal den aktuellen Cache leeren, falls da noch eine Datei drin ist, die noch nicht abgelaufen ist.
    gamesite schrieb:
    Ich nutze IE 8.0

    Ich nicht. Wenn du Internetseiten erstellst solltest du den IE nicht als haupt Browser benutzen, sondern eher Firefox, Chrome oder ähnliches. Der IE macht was ER will und nicht, was DU willst.
    MFG THWBM
  • in: Problem mit Lima-City Startseite

    geschrieben von thwbm

    Hallo,
    ggamee schrieb:
    Bei mir das gleiche. Wähle ich "Startseite" kommt der Login, als sei ich ausgeloggt. Einloggen geht aber nicht. Klicke ich auf Forum, bin ich eingeloggt und kann machen was ich will. Ebenfalls die Verwaltung, Auktionen usw besuchen. Klicke ich nun wieder auf "Startseite", um die schöne Übersicht zu sehen kommt der Login, obwohl ich eingeloggt bin.

    Liebe Grüße

    du ersparst mir Tipparbeit, danke ;-). Bei mir ist es nichts anderes, ich kann mich nicht einloggen, wenn ich aber auf "Forum" oder "Login" (rechts neben dem "Forum" Knopf) klicke, bin ich eingeloggt. Außerderm kommt eine Abfrage, ob ich mich einloggen will, wenn ich es versuche:

    Obwohl diese Seite verschlüsselt ist, werden die von Ihnen eingegebenen Informationen über eine unverschlüsselte Verbindung gesendet und können leicht von Dritten gelesen werden.

    Sollen diese Informationen wirklich gesendet werden?

    |Fortsetzen| |Abbrechen|

    Was hat das zu bedeuten?
    PS: Ich benutze den Mozilla FeuerFuchs
    MFG THWBM
  • in: Funktion um Variable zu ändern.

    geschrieben von thwbm

    Hallo,
    Vorschlag 1:
    function update(variabel, value) {
      if(variabel== "a") {
        a = value;
      }
      if(variabel== "b") {
        b = value;
      }
      if(variabel== "c") {
        c = value;
      }
      alert(a*b*c);
    }

    So hast du zwar wieder etwas mehr Text, aber we ist weniger als drei einzelne Funktionen, wenn man das "alert()" durch etwas aufwendigeres ersetzt.
    Vorschlag 2:
    function update_a(value) {
      a = value;
      MachWasAnderes();
    }
    function update_b(value) {
      b = value;
      MachWasAnderes();
    }
    function update_c(value) {
      c = value;
      MachWasAnderes();
    }
    function MachWasAnderes() {
      alert(a*b*c);
    }

    Du musst selber entscheiden, was dir besser gefällt. Ich denke, dass beides gleich gut ist.
    Du könntest natürlich auch das "a = 4" direkt notieren, bevor du eine Funktion mit dem Inhalt wie bei mir im Beispiel 2 die Funktion "MachWasAnderes()" aufrufst.
    MFG THWBM
  • in: Slider ergibt ein anderes Ergebnis als Manuelle Eingabe -Bug

    geschrieben von thwbm

    Hallo,
    c143 schrieb:
    Und einen 90° Winkel input type range gibts nicht, oder? :P

    Meinst du damit einen 2 dimensionalen Schieber? Ich denke, den müsstest du selber machen, was aber machbar ist. Ich empfehle dir so wie so, eine Alternative, ohne den "range" Schieber zu machen, da der Firefox diesen nicht kennt. Du könntest über den User Agent prüfen, welcher Browser verwendet wird und dann - je nach dem - entweder einen
    <input type="range">
    oder einen
    <input type="text">
    anbieten. Alternativ könntest du auch das hier verwenden. Die jQuery Lösung funktioniert auch beim Firefox.
    MFG THWBM
  • in: Cursor Problem in Libre Office Writer

    geschrieben von thwbm

    Hallo,
    ich glaube nicht, dass das eine Einstellung ist, da ich keinen Sinn darin sehe, den Nachfolgenden Text zu "übertippen". Hast du es schon mit einem PC-Neustart versucht, um "soffice.exe" (läuft im Hintergrund) neu zu starten? Wenn das nicht funktioniert könntest du es auch mit einer Neuinstallation versuchen. An onsten habe ich auch keinen Rat.
    MFG THWBM
  • in: Browserweiterleitung

    geschrieben von thwbm

    Hallo,
    bin ich zu blöd um den
    <html>
    Tag zu finden oder gibt es keinen? Das ganze sieht sehr nach einer Baukasten-Internetseite aus, hast du eigentlich Ahnung vom HTML SCHREIBEN oder nur vom schreiben lassen?
    Befasse dich am besten mal mit dem <table>-Tag. Dann würde das in etwa so aussehen:
    <html>
      <head>
      </head>
      <body>
        <table>
          <tr>
            <td>
              <img src="Bild1.jpg" alt="">
            </td>
            <td>
              <img src="Bild2.jpg" alt="">
            </td>
            <td>
              <img src="Bild3.jpg" alt="">
            </td>
          </tr>
          <tr>
            <td>
              <img src="Bild4.jpg" alt="">
            </td>
            <td>
              <img src="Bild5.jpg" alt="">
            </td>
            <td>
              <img src="Bild6.jpg" alt="">
            </td>
          </tr>
        </table>
      </body>
    </html>

    So hast du zwei Bilder übereinander und drei nebeneinander. Ganz ohne
    <div style="position: absolute; left: Xpx; top: Xpx;">
    .
    MFG THWBM
  • in: Browserweiterleitung

    geschrieben von thwbm

    Hallo,
    hast du meine Antwort übersehen oder sie gezielt ignoriert?
    skateen schrieb:
    Und das lässt sich nicht Regeln, sonst wird das bei Chrome wieder zu klein.

    Doch, ich bin mir sicher, dass sich das Lösen lässt. Wenn die Seite im Chrome so angezeigt wird, wie du es willst, dann ist es auch möglich, sie so zu schreiben, dass sie im Firefox, Opera und Internet Explorer richtig funktioniert. Eine Beispielseite mit Kommentierung wäre sehr hilfreich. Manchmal sind es kleinigkeiten, die große Auswirkungen haben.
    MFG THWBM
  • in: Browserweiterleitung

    geschrieben von thwbm

    Hallo,
    Als erstes möchte ich deine Frage beantworten: Ja, das geht. Stichwort User Agent. In diesem Video wird gezeigt, wie du den Browser auslesen kannst. Die verschiedenen User Agents findest du hier. Die Weiterleitung kannst du so machen.
    Jetzt möchte ich den Sinn anzweifeln: Du solltest dich bemühen, möglichst eine einheitliche Lösung, die möglichst überall funktioniert, zu finden. Du kannst ja notfalls auch über den User Agent nur einzelne Seiten-Teil verändern, du musst ja nicht gleich alles doppelt machen. Außerdem müsstest du bei deiner Lösung mit Seite A und B auch Abschnitte, die bei beiden gleich sind, doppelt verändern, wenn du eine kleine Anderung vornimmst.
    MFG THWBM
  • in: Wusstet ihr schon, dass Lima-City ein Atomkraftwerk besitzt?

    geschrieben von thwbm

    Hallo,
    fatfreddy schrieb:
    Außerdem läuft die gesamte Steuerung des Kraftwerks über ein Browsertool. Laufen die Webserver nicht, ist das Tool nicht erreichbar, der Reaktor nicht steuerbar und *wummm*.

    Was ist denn mit der super coolen Smartphone App, mit der man alle Einstellungen vornehmen kann? Die läuft doch über einen anderen Server, oder? Ich habe mir die mal runtergeladen und die lief auch, wenn Lima-City nicht erreichbar war.
    Ich habe mal so zum Spaß den "Aus" Knopf gedrückt ;-). Das sieht immer witzig aus, wenn man die Liveübertragung sieht, während man den Reaktor fehrnsteuert. Letztens habe ich mal einfach so auf "Kernschmelze" gedrückt und nicht einmal 3 Sekunden später sind alle Kernphysiker wild durch die Gegend gelaufen, um das Problem zu finden. Kürz vor dem GAU habe ich dann den Reaktor komplett runtergefahren und alle Leute saßen im dunkeln. Die Notstromaggregate waren mit den Ganzen Kamperas, die ich brauchte, um alles zu verfolgen, ausgelastet.
    Und, wer glaubt mir das?
    MFG THWBM
  • in: CSS - Schatten rechts & links

    geschrieben von thwbm

    Hallo,
    shorten schrieb:
    @thwbm: Verarschen kannst du dich selber! -,- Ich hab mehrere Stunden(!!!) gegoogelt. Vielleicht hab ich auch den Wald vor lauter Bäumen übersehen aber das rechtfertigt dein Verhalten trotzdem nicht!

    Welches Verhalten? Das Verhalten, dass ich dir eine Antwort gegeben habe? Ich möchte hauptsächlich helfen und meine Frage, welche Suchbegriffe du verwendet hast, war ernst gemeint (Ich denke, dass du das "Verarschen kannst du dich selber" darauf bezogen hast, falls ich falsch liege, korrigiere mich bitte).
    shorten schrieb:
    @lan-im-netz: Funktioniert leider nicht :-/. Getestet in Google Chrome: http://www.alexanderduffner.de/test.

    Also bei mir zeigen der Firefox, Chrome und Opera einen Schatteneffekt an, nur der "geliebte" Internet Explorer nicht. Die Box war zwar leicht unterschiedlich, aber der Schatten war da.
    PS: Ich will hier niemanden verarschen, weder mich noch dich noch sonst irgendjemanden.
    MFG THWBM
  • in: HTML Seite akzeptiert CSS nicht mehr

    geschrieben von thwbm

    Hallo,
    pako-webdesign schrieb:
    [...]und ich möchte keinen Code posten weil das nichts nützen würde, denn HTML greift die CSS befehle nicht und somit kann es auch kein Fehler im Code sein

    Oh doch, das kann es. HTML wird die CSS Befehle nicht erkennen, wenn du die Einbindung fehlt. Das ist dann ein Code-Fehler. Wenn du einfach mal die Dateien hier veröffentlichst oder du einen Link zu der Seite rausrückst, dann kann dir bestimmt auch jemand helfen, aber mit den aktuellen Informationen wird das schwierig.
    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    Hallo,
    ich melde mich nach etwa 1,5 Monaten wider zurück, dafür möchte ich mich entschuldigen, es lag nicht an desinteresse, sondern daran, dass ich etwas Zeit brauchte, um ein Funktionierendes Ergebnis zu fabrizieren, hier ist es (Die Verweise zu jQuery müssen u.U. Angepasst werden, damit es funktioniert):
    Karte.php:
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <title>
    Karte
    </title>
    <script type="text/javascript" src="jquery-1.8.2.js">
    </script>
    <script type="text/javascript" src="jquery-ui1.9.1.js">
    </script>
    <link rel="stylesheet" href="jquery-ui1.9.1.css">
    <style type="text/css">
    #Sichtbereich{position:relative;top:0px;left:0px;width:100%;height:100%;overflow:hidden;}
    #Karte{position:absolute;top:0px;left:0px;width:100%;height:100%;cursor:move;}
    </style>
    <script type="text/javascript">
    $(document).ready(function(){//Die Variabeln
    <?php
    if(isset($_GET["X"])){
    echo"SichtmittelpunktX=".$_GET['X'].";";
    }else{
    echo"SichtmittelpunktX=0;";
    }
    if(isset($_GET["Y"])){
    echo"SichtmittelpunktY=".$_GET['Y'].";";
    }else{
    echo"SichtmittelpunktY=0;";
    }
    ?>
    MausX=0;
    MausY=0;
    MausXKarte=0;
    MausYKarte=0;
    KarteVersatzX=0;
    KarteVersatzY=0;
    SichtbereichPosX=$("#Sichtbereich").position().left;//X-/Y-Position des "Fensters" auf die Karte
    SichtbereichPosY=$("#Sichtbereich").position().top;
    SichtbereichX=$("#Sichtbereich").width();
    SichtbereichY=$("#Sichtbereich").height();
    KarteX=0;
    KarteY=0;
    KarteBewegenErlaubt=false;
    KarteGezeichnet=false;//Gibt an, ob die Karte schon gezeichnet wurde
    BildBreite=5;
    BildBreitePX=0;
    KarteFelderX=1;//Kartengroesse in X- und Y-Richtung
    KarteFelderY=1;
    KarteFelderXGesammt=96;
    KarteFelderYGesammt=48;
    KarteX=$("#Karte").position().left;//X-/Y-Position der Karte inerhalb des Sichtbereichs
    KarteY=$("#Karte").position().top;
    KarteVerschiebungenX=0;
    KarteVerschiebungenY=0;
    KarteVerschiebungenZurueckgesetztX=0;
    KarteVerschiebungenZurueckgesetztY=0;
    KoordinateBildX=1;
    KoordinateBildY=1;
    KoordinateBildX1=0;//Die Koordninate des Bildes ganz Links
    KoordinateBildY1=0;//Oben
    KoordinateBildX2=0;//Rechts
    KoordinateBildY2=0;//Unten
    KoordinateBildAnpassen=true;
    AktuellerZoom=5;//Die Aktuelle Zoomstufe
    ArbeitenFensterOEffnenErlaubt=false;
    });
    $(document).ready(function(){
    $(document).mousemove(function(e){
    MausX=e.pageX;
    MausY=e.pageY;
    });
    });
    function KarteBildFunktionBestimmung(X,Y){
    Funktion=0;
    $.ajax({
    type:"POST",
    async:false,
    url:"KarteBildFunktionBestimmung.php",
    data:"X="+X+"&Y="+Y,
    success:function(Rueckmeldung){
    Funktion=Rueckmeldung;
    }
    });
    if(Funktion!=0&&ArbeitenFensterOEffnenErlaubt){
    FensterOEffnen(Funktion);
    }
    }
    $(document).mousemove(function(){//Um zu verhindern, dass den Fenster aufgeht und die Karte bewegt wird.
    ArbeitenFensterOEffnenErlaubt=false;
    });
    $(document).mousedown(function(){
    ArbeitenFensterOEffnenErlaubt=true;
    });
    function ErgaenzeFuehrendeNullen(Zahl,Stellen){
    if(Zahl<0){
    Zahl=Zahl*(-1);
    Negativ=true;
    }else{
    Negativ=false;
    }
    Zahl=Zahl.toString();
    while(Zahl.length<Stellen){
    Zahl="0"+Zahl;
    }
    if(Negativ==true){
    Zahl="-"+Zahl;
    }
    return Zahl;
    }
    $(document).ready(function(){
    $(document).mousemove(function(){
    MausXKarte=MausX-SichtbereichPosX;//Relative Position der Maus, gemessen ab der oberen linken Ecke des Sichtbereichs
    MausYKarte=MausY-SichtbereichPosY;
    
    });
    });
    function MausUnten(){
    KarteBewegenErlaubt=true;
    KarteVersatzX=MausXKarte-KarteX;//Der Versatz der Maus, relativ zur oberen linken Ecke der Karte
    KarteVersatzY=MausYKarte-KarteY;
    }
    function MausOben(){
    KarteBewegenErlaubt=false;
    }
    $(document).mousemove(function(){
    if(KarteBewegenErlaubt){
    KarteBewegen();
    }
    });
    $(document).mousedown(function(){
    if(KarteBewegenErlaubt){
    KarteBewegen();
    }
    return false;
    });
    function KarteMaxPosition(){
    if(KarteX>0){
    KarteX=0;
    }
    if(KarteY>0){
    KarteY=0;
    }
    if(KarteX+$("#Karte").width()<$("#Sichtbereich").width()){
    KarteX=$("#Karte").width()*(-1)+$("#Sichtbereich").width();
    }
    if(KarteY+$("#Karte").height()<$("#Sichtbereich").height()){
    KarteY=$("#Karte").height()*(-1)+$("#Sichtbereich").height();
    }
    }
    function KarteBewegen(){
    KarteX=MausXKarte-KarteVersatzX;
    KarteY=MausYKarte-KarteVersatzY;
    if(SichtmittelpunktX!=0){
    KarteX=(SichtmittelpunktX*BildBreitePX-SichtbereichX/2)*(-1);
    }
    if(SichtmittelpunktY!=0){
    KarteY=(SichtmittelpunktY*BildBreitePX-SichtbereichY/2)*(-1);
    }
    KarteMaxPosition();
    $("#Karte").css("left",KarteX);//Die Kartenposition wird aktuallisiert
    $("#Karte").css("top",KarteY);
    while(KarteX<BildBreitePX*(KarteVerschiebungenX+1)*(-1)){//Wenn die Karte nach links bewegt wird, sodass Bilder verschoben werden muessen...
    Y=1;
    KoordinateBildX=KoordinateBildX2;
    KoordinateBildY=KoordinateBildY1+1;
    while(Y<=KarteFelderY){
    KoordinateBildX=ErgaenzeFuehrendeNullen(KoordinateBildX,3);
    KoordinateBildY=ErgaenzeFuehrendeNullen(KoordinateBildY,3);
    if(SichtmittelpunktX<=0){
    if($("#KarteBild"+KoordinateBildX+""+KoordinateBildY+"").length<=0){
    if(KoordinateBildX>=0&&KoordinateBildX<=KarteFelderXGesammt&&KoordinateBildY>=0&&KoordinateBildY<=KarteFelderYGesammt){//Verhindert, dass Bilder "Ausserhalb" der Karte geladen werden
    $("#Karte").append("<img src='Bild.php?X="+KoordinateBildX+"&Y="+KoordinateBildY+"' alt='' border='0' id='KarteBild"+KoordinateBildX+""+KoordinateBildY+"' class='KarteBild' style='position:absolute;top:"+(KoordinateBildY*BildBreitePX-BildBreitePX)+"px;left:"+(KoordinateBildX*BildBreitePX-BildBreitePX)+"px;width:"+BildBreitePX+"px;height:"+BildBreitePX+"px;' onclick=\"KarteBildFunktionBestimmung('"+KoordinateBildX+"','"+KoordinateBildY+"')\">");
    }
    }
    }
    Y++;
    KoordinateBildY++;
    }
    KarteVerschiebungenX++;
    KarteVerschiebungenZurueckgesetztX++;
    KoordinateBildX1++;
    KoordinateBildX2++;
    if(KarteVerschiebungenZurueckgesetztX>=KarteFelderX){
    KarteVerschiebungenZurueckgesetztX=0;
    }
    }
    while(KarteX>BildBreitePX*KarteVerschiebungenX*(-1)){//Wenn die Karte nach rechts bewegt wird, sodass Bilder verschoben werden muessen...
    Y=1;
    KoordinateBildX=KoordinateBildX1;
    KoordinateBildY=KoordinateBildY1+1;
    while(Y<=KarteFelderY){
    KoordinateBildX=ErgaenzeFuehrendeNullen(KoordinateBildX,3);
    KoordinateBildY=ErgaenzeFuehrendeNullen(KoordinateBildY,3);
    if(SichtmittelpunktX<=0){
    if($("#KarteBild"+KoordinateBildX+""+KoordinateBildY+"").length<=0){
    if(KoordinateBildX>=0&&KoordinateBildX<=KarteFelderXGesammt&&KoordinateBildY>=0&&KoordinateBildY<=KarteFelderYGesammt){//Verhindert, dass Bilder "Ausserhalb" der Karte geladen werden
    $("#Karte").append("<img src='Bild.php?X="+KoordinateBildX+"&Y="+KoordinateBildY+"' alt='' border='0' id='KarteBild"+KoordinateBildX+""+KoordinateBildY+"' class='KarteBild' style='position:absolute;top:"+(KoordinateBildY*BildBreitePX-BildBreitePX)+"px;left:"+(KoordinateBildX*BildBreitePX-BildBreitePX)+"px;width:"+BildBreitePX+"px;height:"+BildBreitePX+"px;' onclick=\"KarteBildFunktionBestimmung('"+KoordinateBildX+"','"+KoordinateBildY+"')\">");
    }
    }
    }
    Y++;
    KoordinateBildY++;
    }
    KarteVerschiebungenX--;
    KarteVerschiebungenZurueckgesetztX--;
    KoordinateBildX1--;
    KoordinateBildX2--;
    if(KarteVerschiebungenZurueckgesetztX<0){
    KarteVerschiebungenZurueckgesetztX=KarteFelderX-1;
    }
    }
    while(KarteY<BildBreitePX*(KarteVerschiebungenY+1)*(-1)){//Wenn die Karte nach oben bewegt wird, sodass Bilder verschoben werden muessen...
    X=1;
    KoordinateBildX=KoordinateBildX1+1;
    KoordinateBildY=KoordinateBildY2;
    while(X<=KarteFelderX){
    KoordinateBildX=ErgaenzeFuehrendeNullen(KoordinateBildX,3);
    KoordinateBildY=ErgaenzeFuehrendeNullen(KoordinateBildY,3);
    if(SichtmittelpunktY<=0){
    if($("#KarteBild"+KoordinateBildX+""+KoordinateBildY+"").length<=0){
    if(KoordinateBildX>=0&&KoordinateBildX<=KarteFelderXGesammt&&KoordinateBildY>=0&&KoordinateBildY<=KarteFelderYGesammt){//Verhindert, dass Bilder "Ausserhalb" der Karte geladen werden
    $("#Karte").append("<img src='Bild.php?X="+KoordinateBildX+"&Y="+KoordinateBildY+"' alt='' border='0' id='KarteBild"+KoordinateBildX+""+KoordinateBildY+"' class='KarteBild' style='position:absolute;top:"+(KoordinateBildY*BildBreitePX-BildBreitePX)+"px;left:"+(KoordinateBildX*BildBreitePX-BildBreitePX)+"px;width:"+BildBreitePX+"px;height:"+BildBreitePX+"px;' onclick=\"KarteBildFunktionBestimmung('"+KoordinateBildX+"','"+KoordinateBildY+"')\">");
    }
    }
    }
    X++;
    KoordinateBildX++;
    }
    KarteVerschiebungenY++;
    KarteVerschiebungenZurueckgesetztY++;
    KoordinateBildY1++;
    KoordinateBildY2++;
    if(KarteVerschiebungenZurueckgesetztY>=KarteFelderY){
    KarteVerschiebungenZurueckgesetztY=0;
    }
    }
    while(KarteY>BildBreitePX*KarteVerschiebungenY*(-1)){//Wenn die Karte nach unten bewegt wird, sodass Bilder verschoben werden muessen...
    X=1;
    KoordinateBildX=KoordinateBildX1+1;
    KoordinateBildY=KoordinateBildY1;
    while(X<=KarteFelderX){
    KoordinateBildY=ErgaenzeFuehrendeNullen(KoordinateBildY,3);
    KoordinateBildX=ErgaenzeFuehrendeNullen(KoordinateBildX,3);
    if(SichtmittelpunktY<=0){
    if($("#KarteBild"+KoordinateBildX+""+KoordinateBildY+"").length<=0){
    if(KoordinateBildX>=0&&KoordinateBildX<=KarteFelderXGesammt&&KoordinateBildY>=0&&KoordinateBildY<=KarteFelderYGesammt){//Verhindert, dass Bilder "Ausserhalb" der Karte geladen werden
    $("#Karte").append("<img src='Bild.php?X="+KoordinateBildX+"&Y="+KoordinateBildY+"' alt='' border='0' id='KarteBild"+KoordinateBildX+""+KoordinateBildY+"' class='KarteBild' style='position:absolute;top:"+(KoordinateBildY*BildBreitePX-BildBreitePX)+"px;left:"+(KoordinateBildX*BildBreitePX-BildBreitePX)+"px;width:"+BildBreitePX+"px;height:"+BildBreitePX+"px;' onclick=\"KarteBildFunktionBestimmung('"+KoordinateBildX+"','"+KoordinateBildY+"')\">");
    }
    }
    }
    X++;
    KoordinateBildX++;
    }
    KarteVerschiebungenY--;
    KarteVerschiebungenZurueckgesetztY--;
    KoordinateBildY1--;
    KoordinateBildY2--;
    if(KarteVerschiebungenZurueckgesetztY<0){
    KarteVerschiebungenZurueckgesetztY=KarteFelderY-1;
    }
    }
    if(!KarteGezeichnet){
    Y=0;
    KoordinateBildY=KoordinateBildY1+1;
    while(Y<=KarteFelderY){
    X=0;
    KoordinateBildX=KoordinateBildX1+1;
    while(X<=KarteFelderX){
    KoordinateBildX=ErgaenzeFuehrendeNullen(KoordinateBildX,3);
    KoordinateBildY=ErgaenzeFuehrendeNullen(KoordinateBildY,3);
    if(KoordinateBildX>=0&&KoordinateBildX<=KarteFelderXGesammt&&KoordinateBildY>=0&&KoordinateBildY<=KarteFelderYGesammt){//Verhindert, dass Bilder "Ausserhalb" der Karte geladen werden
    $("#Karte").append("<img src='Bild.php?X=" + KoordinateBildX + "&Y=" + KoordinateBildY + "' alt='' border='0' id='KarteBild" + KoordinateBildX + "" + KoordinateBildY + "' class='KarteBild' style='position: absolute; top: " + (KoordinateBildY * BildBreitePX - BildBreitePX) + "px; left: " + (KoordinateBildX * BildBreitePX - BildBreitePX) + "px; width: " + BildBreitePX + "px; height: " + BildBreitePX + "px;' onclick=\"KarteBildFunktionBestimmung('" + KoordinateBildX + "', '" + KoordinateBildY + "')\">");
    }
    X++;
    KoordinateBildX++;
    }
    $("#Karte").append("<br>");
    Y++;
    KoordinateBildY++;
    }
    KarteGezeichnet=true;
    }
    SichtmittelpunktX=0;
    SichtmittelpunktY=0;
    }
    $(document).ready(function(){
    $(document).mousemove(function(){//UEberwachung, ob die Karte bewegt werden muss
    $(document).mouseup(function(){
    MausOben();
    });
    $("#Karte").mousedown(function(){
    MausUnten();
    });
    });
    });
    $(document).ready(function(){
    $(".ZoomenPlus").mousedown(function(){
    if(AktuellerZoom<=9){
    BildBreite=BildBreite*1.05;
    AktuellerZoom++;
    $("#Zoomanzeige").html(AktuellerZoom);
    SichtmittelpunktX=(KarteX/BildBreitePX-SichtbereichX/2/BildBreitePX)*(-1);
    SichtmittelpunktY=(KarteY/BildBreitePX-SichtbereichY/2/BildBreitePX)*(-1);
    KarteGezeichnet=false;
    KarteAktuallisieren();
    }
    });
    $(".ZoomenMinus").mousedown(function(){
    if(AktuellerZoom>=1){
    BildBreite=BildBreite*0.95;
    AktuellerZoom--;
    $("#Zoomanzeige").html(AktuellerZoom);
    SichtmittelpunktX=(KarteX/BildBreitePX-SichtbereichX/2/BildBreitePX)*(-1);
    SichtmittelpunktY=(KarteY/BildBreitePX-SichtbereichY/2/BildBreitePX)*(-1);
    KarteGezeichnet=false;
    KarteAktuallisieren();
    }
    });
    $("#Zoomanzeige").html(AktuellerZoom);//Um den Anfangswert anzuzeigen
    function KarteAktuallisieren(){//Wird aufgerufen, wenn die Karte Gezeichnet wird, egal ob es sie schon einmal gab oder nicht. Noetig, wegen Fenstergroessenaenderung oder zoomen.
    SichtbereichPosX=$("#Sichtbereich").position().top;//Verschiedene Variabeln, die sich u.U. geaendert haben, werden aktuallisiert
    SichtbereichPosY=$("#Sichtbereich").position().left;
    SichtbereichX=$("#Sichtbereich").width();
    SichtbereichY=$("#Sichtbereich").height();
    $("#Karte").css("width",BildBreite*KarteFelderXGesammt+"%");
    $("#Karte").css("height",BildBreite*KarteFelderYGesammt+"%");
    $("#Karte").append("<img src='Bild.php?X=001&Y=001' alt='' border='0' id='BildBreiteBestimmung' class='KarteBild' style='position:absolute;top:0px;left:0px;width:"+BildBreite+"%;height:"+BildBreite+"%;'>");
    BildBreitePX=$("#BildBreiteBestimmung").height();
    $("#Karte").css("width",BildBreitePX*KarteFelderXGesammt);
    $("#Karte").css("height",BildBreitePX*KarteFelderYGesammt);
    KarteFelderX=Math.floor($("#Sichtbereich").width()/BildBreitePX+2);
    KarteFelderY=Math.floor($("#Sichtbereich").height()/BildBreitePX+2);
    $("#Karte").html("");//Die Karte wird restlos geleert
    KarteVerschiebungenX=0;
    KarteVerschiebungenY=0;
    KarteVerschiebungenZurueckgesetztX=0;
    KarteVerschiebungenZurueckgesetztY=0;
    KoordinateBildAnpassen=true;
    KoordinateBildX=0;
    KoordinateBildX1=0;
    KoordinateBildX2=KarteFelderX+1;
    KoordinateBildY=0;
    KoordinateBildY1=0;
    KoordinateBildY2=KarteFelderY+1;
    KarteBewegen();
    }
    KarteAktuallisieren();
    $(window).resize(function(){//Groessenanpassung wenn das Fenster seine Groesse aendert
    SichtmittelpunktX=(KarteX/BildBreitePX-SichtbereichX/2/BildBreitePX)*(-1);
    SichtmittelpunktY=(KarteY/BildBreitePX-SichtbereichY/2/BildBreitePX)*(-1);
    KarteGezeichnet=false;
    KarteAktuallisieren();
    });
    });
    </script>
    </head>
    <body>
    <div id="Sichtbereich">
    <div id="Karte">
    </div>
    </div>
    </body>
    </html>

    Bild.php:
    <?php
    if(isset($_GET["X"]) and isset($_GET["Y"])) {
    $X = mysql_real_escape_string($_GET["X"]);
    $Y = mysql_real_escape_string($_GET["Y"]);
    //Hier könnte eine Datenbankverbindung hin, die an Hand von "$X" und "$Y" die "FeldArt" ausliest
    //Habe ich zur Vereinfachung weggelassen
    $FeldArt = "1_2_1";
    header('Content-Type: image/png');
    $Bild = imagecreatefrompng($FeldArt.".png");
    header('Content-Type: image/png');
    imagepng($Bild);
    imagedestroy($Bild);
    }
    ?>

    Ja, ich weiß, sehr viel Text, aber so sollte es funktionieren, wenn ihr diese zwei Dateien in einen Ordner Packt und zusätzlich eine Datei mit dem Namen "1_2_1.png", die als Bild dient hinzufügt. In meinem Fall ist die "1_2_1.png" 32x32px groß. Sollte jemand auf Fehler stoßen, freue ich mich über jede Mitteilung. Wenn jemand fragen hat, einfach fragen. Die Einrückung habe ich weggelassen, um Zeichen zu sparen.
    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    simuliertes schrieb:
    thwbm schrieb:
    1:

    stX, stY = Mausposition - Position von #viewport? -Nein- Das ist die Mausposition relativ zur linken obern Ecke von #viewport

    Wofür steht stX bzw. stY?Die Mausposition relativ zur linken oberen Ecke von #viewport ist doch die Posiition der Maus - (minus) der Position von #viewort, oder?
    Als Beispiel (jetzt nur für eine Achse, X oder Y):
    Die Maus ist auf Position 500px;
    #viewport ist auf Position 400px;
    Die Position der Maus, relativ zur oberen linken Ecke von #viewport ist 100px, also 500 - 400, also Maus - #viewport;

    Richtig.
    SInn der sache war vor allen dingen das man dadurch #viewport verschieben kann ohne sich gedanken darum machen zu müssen ob das auswirkungen auf den Code hat.

    Was meinst du mit "... ob das Auswirkungen auf den Code hat"? Wird außerdem nicht #tileContainer verschoben?
    Mal kurz, damit ich weiß ob ich das so richtig verstanden habe:
    Der <div>, in dem sich die Bilder, aus denen sich die Karte zusammensetzt, befinden, wird verschoben, die Bilder bekommen dann, damit sie immer im sichtbaren Bereich bleiben, angepasste CSS top/left Angaben und angepasste scr Angaben, damit die Bilder immer die richtigen sind. Stimmt das so?

    Tja das ist mir zu wenig code um daraus schlüsse zu ziehen.
    Also vermute ich mal das Dir ein paar möglichkteiten noch nicht bewusst sind.
    Schau DIr mal das an, vielleicht hilft Dir das:
    [...]

    Ich habe jetzt eine Datei geschrieben, die ein Bild, dass aus einer Datenbank gelesen wird, zurückliefert. Also so:
    <img src="Bild.php?X=001&Y=001" alt="">

    Das liefert mir dann das Bild, dass an Position X=1 und Y=1 stehen muss. Ich habe mal über eine while-Schleife überprüft, wie lange jedes Bild braucht zum laden:
    <html>
      <head>
        <title>
          Eine menge Bilder
        </title>
      </head>
      <body>
        <?php
          $i = 1;
          while(1==1) { //Diese Bdingung wird warscheinlich noch sehr lange zutreffen ;-)
            echo $i;
            echo "<img src='Bild001.php?X=001&Y=001' alt=''><br>";
            $i++;
          }
        ?>
      </body>
    </html>

    Dieses Script hat mir nach 30 Sekunden Maximalzeit, die der Server an einer Seite lädt, bis er eine Fehlermeldung ausgibt genau 167247 Bilder angezeigt, also ungefähr 0,0002 Sekunden pro Bild. Die Seite hat aber wesentlich länger zum laden gebraucht. Ich habe unten noch den Quellcode reingesetzt.

    p.s.
    http://openlayers.org/
    http://trac.osgeo.org/openlayers/wiki/UsingCustomTiles

    Das wäre dann wieder ein Lösung, die nicht selbstgemacht ist, aber trotzdem danke.

    Mir sind noch ein paar Sachen aufgefallen:
    1. Du verwendest in dem <img> Tag das Atribut "usemap="#worldtile"". Ist das Nötig? "usemap" ist doch dafür da, eine Link-Karte, also nur bestimmte Teile eines Bildes/einer Karte mir einer bestimmten Datei zu verlinken. Das ist doch erstmal garnicht nötig, denn das <map>, dass dazugehört ist ja leer.
    2. Wofür ist di Funktion "matrix"? Die If-Abfragen haben für mich keinen ersichtlichen Grund. Auch das
    return ((xin*4)-4)+yin-1;
    macht für mich keinen Sinn. Mit "matrix" werden ja die IDs der einzelnen Bilder bestimmt. Ist das überhaupt nötig, wenn ich immer "Bildernamen" wie "Bild.php?X=013&Y=026" habe?

    Datei zum Bilder auslesen:
    <?php
    	if(isset($_GET["X"]) and isset($_GET["Y"])) {
    		
    		$X = $_GET["X"];
    		$Y = $_GET["Y"];
    		
    		$Verbindung = mysql_connect("***", "***", "***");
    		mysql_select_db("***");
    
    		$Abfrage = "SELECT FeldArt FROM karte WHERE X = '$X' and Y = '$Y'";
    		$Ergebnis = mysql_query($Abfrage);
    		while($Row = mysql_fetch_object($Ergebnis)) {
    			$FeldArt = $Row->FeldArt;
    		}
    		
    		mysql_close($Verbindung);
    		
    		$Bild = imagecreatefrompng($FeldArt.".png");
    
    		header('Content-Type: image/png');
    
    		imagepng($Bild);
    		imagedestroy($Bild);
    		
    	}
    ?>

    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    Hallo,
    android-chat schrieb:
    Kann man da nicht unter Google Developers einfach die Karte von denen mit ungefähren Anzeige Ort nicht durch ein Script einbinden?

    Ich meine da hätte ich was gesehen weil sowas mit Javascript und I-Frame's zu machen ist ziemlich schwierig und das was ich jetzt mitgelesen hatte, funktioniert bei mir i-wie nicht :/

    Ich zitiere mich ja nur ungerne selber, aber:
    thwbm schrieb:
    Eine Google-maps Karte möchte ich nicht einbinden, da mich das "Google-Logo" unten links in der Ecke stört und ich es lieber selber machen möchte. Hat Irgendjemand eine Idee, die nicht auf Google-Maps-Karten basiert? Oder eine Teillösung?

    Dazu, dass nichts bei dir funktioniert:
    Guck dir mal dieses Script an. Das sollte funktionieren. Falls es das nicht tut, aktiviere Javascript, verwende einen anderen Browser, deaktiviere deinen Werbeblocker, .... Die Liste ist lang. Wenn es am Browser liegt, kannst du mir dann bitte sagen, welchen Browser du verwendest? Wäre nett, denn dann könnte ich das Script sobald es bei den gängigen Browsern funktioniert so anpassen, dass es bei möglichst vielen Browsern funktioniert.
    MFG THWBM
    PS: Meine Fragen, die ich in meinem Vorherigen Beitrag geschrieben habe, bestehen noch. Ich würde mich über jede Antwort freuen.
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    Hallo und entschuldigung, dass ich so lange nicht geantwortet habe,
    simuliertes schrieb:
    Erklärung:

    CSS:
    .tnr = die tileNummer
    #container = code-Leiche, kann entfernt werden
    #viewport = Der "Kasten", in dem die Karte zu sehen ist -Richtig-
    #tileContainer =Dadurch wird nicht der Cursor (welcher Cursor?) verschoben sondern alle Bilder
    #coordWindow = ID, wird aber nicht verwendet -Richtig-
    #zoomWrap = Container, in dem die Zoombar ist -Richtig-
    #zoomBar = Container, der die Zoombar hat -Richtig-
    #zoombarChild = Container, der dafür sorgt, dass es eine Zoombar gibt -Richtig-
    #debugKonsole = Console zum debuggen, sprich statt mir etwas über alert() auszugeben hab ich da die Daten reingeschrieben
    #debugK = Zum debuggen zeigt die Aktuelle Kartenposition
    #debugM = Zum debuggen, zeigt die Aktuelle Mausposition

    Javascript:
    xm, ym = Mausposition, X und Y -Richtig-
    movethemap = Information, ob die Karte bewegt wird -Richtiger wäre, ob sie bewegt werden darf . Also zB wenn die Maus gedrückt wird UND innerhalb des #viewport ist
    stX, stY = Mausposition - Position von #viewport? -Nein- Das ist die Mausposition relativ zur linken obern Ecke von #viewport
    wx, wy = Größe der Karte, um festzulegen, wann eine neue Reihe mit Bildern anfangen muss -Richtig-
    wpx, wpy = Position auf der Welt, was heißt das? -Nun, wo (bei welchem Tile) sich der Kartenausschnitt gerade befindet-
    ts = Größe der Teile, das müsste ich in % umwandeln -Verstehe ich nicht was Du meinst- Das ist ein array mit der größe der tiles in Px [Breite in Pixel, Höhe in Pixel], steht für tile-size
    tsBckp = tile-size backup , da ts ja beim zoomen verändert wird, enthält tsBckp die ursprüngliche Größe
    maxZoom, minZoom = Begrenzung, damit man nicht ins unermessliche zoomen kann -Right-
    zoomStep = Nur stufenweise Zoomen -Right-
    actZoom = Zoom der Karte, beim laden der Datei -Jain, das ist die Aktuelle Zoomstufe-
    mpx, mpy = Position von #viewport -Nein-Position des Kartenausschnitts-
    tu1, tu2 = Variabeln, um die URL eines Bildes "Zusammenzubasteln" -Right-
    tile = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); = code-Leiche, wird nicht genutzt
    tilePointer = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); = Puh, schwieriger zu erklären.
    Das ist der "Zeiger"(Pointer) auf ein tile.
    Mach Dir klar das sich ja die position der tiles ständig ändert dadurch das sie im nicht-sichtbaren Bereich weggenommen und an anderer stelle wieder angeklebt werden. also am anfang sieht das ja so aus (jetzt mal nur mit 3 x 3 tiles):

    01 02 03
    04 05 06
    07 08 09

    jetzt wird die karte zb nach rechts geschoben:
    03 01 02 
    06 04 05 
    09 07 08

    und jetzt nach oben:
    06 04 05 
    09 07 08 
    03 01 02

    Du siehst das die tile-ID's wild gemischt werden.
    Deswegen behält tilePointer die übersicht.

    updateMouse(e) = Funktion, um die Mausposition zu ermitteln -Right-

    wmtx(xin, yin) = Berechnung, ob neues Bild geladen werden muss, wenn ja, welches

    moveMap() = Funktion zum bewegen der Karte -Right-
    drawMap() = Funktion, die die Karte "zeichnet" -Right-


    Danke, damit komme ich um einiges weiter. Ich verstehe nur ein paar kleine Kleinigkeiten nicht:
    1:

    stX, stY = Mausposition - Position von #viewport? -Nein- Das ist die Mausposition relativ zur linken obern Ecke von #viewport

    Wofür steht stX bzw. stY?Die Mausposition relativ zur linken oberen Ecke von #viewport ist doch die Posiition der Maus - (minus) der Position von #viewort, oder?
    Als Beispiel (jetzt nur für eine Achse, X oder Y):
    Die Maus ist auf Position 500px;
    #viewport ist auf Position 400px;
    Die Position der Maus, relativ zur oberen linken Ecke von #viewport ist 100px, also 500 - 400, also Maus - #viewport;
    2:

    mpx, mpy = Position von #viewport -Nein-Position des Kartenausschnitts-

    #viewport ist doch der Kartenausschnitt, also das, was man von der Karte sieht, oder? Meinst du mit "Kartenausschnitt etwas anderes?

    simuliertes schrieb:
    thwbm schrieb:
    simuliertes schrieb:
    p.s. ich weiss ja nicht wie fit du in php bist.
    Eventuell könntest Du ja einfach eine php-Datei schreiben die dann das passende Bild liefert (tile.php?tileNr=1 zB)

    Das würde ich bestimmt hinbekommen, aber als ich mal damit ein bischen rumprobiert habe, hat die Seite über 30 Sekunden zum laden gebraucht und deswegen wurde die Maximalzeit überschritten. Da habe ich aber auch alles aus einer MySQL-Datenbank geladen.
    MFG THWBM



    Ich bin mir 100% sicher das dann am Code etwas falsch ist. Sowas sollte in millisekunden von php+MySQL bearbeitet werden können.

    http://www.php-dummies.de/script/Tutorials/Fortgeschritten/Bilder_und_Thumbnails.html

    Hier mal ein Beispiel, es war noch alles andere als ausgereift, da ich mirch erstmal um andere Probleme gekümmert habe:
    $Verbindung = mysql_connect("***", "***", "***");
    mysql_select_db("***");
    
    $AbfrageKarteX001Y001 = "SELECT * FROM karte WHERE X = '001' AND Y = '001'";
    $ErgebnisKarteX001Y001 = mysql_query($AbfrageKarteX001Y001);
    while($RowKarteX001Y001 = mysql_fetch_object($ErgebnisKarteX001Y001)){
    	$KarteFeldTypX001Y001 = $RowKarteX001Y001->FeldTyp;      // FeldTyp, X001, Y001 
    }
    mysql_close($Verbindung);

    Ich habe dann eine Tabelle angelegt, die die Spalten X, Y und Feldtyp hat. Feldtyp ist z.B. "1_2_1", das Bild das dort angezeigt werden muss ist dass "1_2_1.png". Das habe ich mir dann immer so zusammengebaut. Man muss dazu sagen, dass es schon etwas her ist, dass ich das Script geschrieben habe, ich würde es jetzt mit einer While-Schleife Machen, um so ungefähr 1 Milionen Zeichen zu sparen ;-).
    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    simuliertes schrieb:
    Interessant für Dich ist ja Zeile 216
    window.document.getElementById('tile_'+mtx(x,y)).src = tu1+wmtx(wpx+x,wpy+y)+tu2;


    Ja, das leuchtet mir ein. Mein Problem beim verstehen des Codes ist, dass ich die Variabel-, Funktions-, ID- und Klassennamen nicht wirklich zuordnen kann:
    CSS:
    .tile = Klasse für was?
    .tnr = Klasse für was?
    #container = ID für etwas, das ich im Code nicht finden kann, wird aber im CSS Teil definiert.
    #viewport = Der "Kasten", in dem die Karte zu sehen ist
    #tileContainer = Div im Div, der eigentlich nur den Cursor umstellt. Hätte man das nicht auch einfach im #viewport machen können?
    #coordWindow = ID, wird aber nicht verwendet
    #zoomWrap = Container, in dem die Zoombar ist
    #zoomBar = Container, der die Zoombar hat
    #zoombarChild = Container, der dafür sorgt, dass es eine Zoombar gibt
    #debugKonsole = ?
    #debugK = ?
    #debugM = ?
    Javascript:
    xm, ym = Mausposition, X und Y
    movethemap = Information, ob die Karte bewegt wird
    stX, stY = Mausposition - Position von #viewport?
    wx, wy = Größe der Karte, um festzulegen, wann eine neue Reihe mit Bildern anfangen muss
    wpx, wpy = Position auf der Welt, was heißt das?
    ts = Größe der Teile, das müsste ich in % umwandeln
    tsBckp = ?
    maxZoom, minZoom = Begrenzung, damit man nicht ins unermessliche zoomen kann
    zoomStep = Nur stufenweise Zoomen
    actZoom = Zoom der Karte, beim laden der Datei
    mpx, mpy = Position von #viewport
    tu1, tu2 = Variabeln, um die URL eines Bildes "Zusammenzubasteln"
    tile = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); = ?
    tilePointer = new Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); = ?
    updateMouse(e) = Funktion, um die Mausposition zu ermitteln
    matrix(xin,yin) = ?
    xin, yin = ?
    wmtx(xin, yin) = Berechnung, ob neues Bild geladen werden muss, wenn ja, welches
    mtx(xin, yin) = ?
    mmtx (xin,yin,x2in,y2in) = ?
    wpcheck() = ?
    moveMap() = Funktion zum bewegen der Karte
    drawMap() = Funktion, die die Karte "zeichnet"
    xadd, yadd = ?
    m = ?
    xP, yP = ?
    xC, yC = ?
    aC = ?
    akl = ?
    agr = ?
    dbgTxt = ?
    sta = ?
    if(xadd!=0||yadd!=0) = Abfrage, die u.U. etwas zurüchsetzt, warum?
    x, y = ?
    b = ?
    for(y=1;y<=4;y++){ for (x=1;x<=4;x++){[...]}} //Warum die Getrennten Abfragen, for(a=1;a<=12;a++) würde doch zu dem gleichen ergebnis führen, oder?
    mouseIsDown() = Funktion, die aufgerufen wird, wenn die Karte bewegt werden soll, warum wird "false" zurückgegeben?
    mouseIsUp() = Zurücksetzten von mouseIsDown
    mouseIsMoving() = Funktion für ?
    vx, vy = Wird nur festgelegt und nirgendwo eingesetzt
    initMap() = Funktion, die die Karte anfangs zeichnet und die Mausevents überwacht
    zoomMap(node) = funktion zum zoomen, aber was ist "node"
    ScrBarMax = Maximum beim Zoomen
    sy = ?
    x2, y2 = ?

    Ich fände es toll, wenn mir jemand das mal erklären könnte. Ich habe immer das eingesetzt, was ich dem Code entnehme, ob es richtig ist, weiß ich nicht.
    simuliertes schrieb:
    Also meine Karte ist ja wx=9;wy=6; -tiles gross.

    Mir ist aufgefallen, das die Karte etwas ruckelt beim bewegen, was nicht weiter schlimm ist. Könnte das Ruckeln zunehmen, wenn ich anstelle von 9x6=54 Bildern 96x48=4608 Bildern einsetzte, von denen insgesammt so ungefähr 500 Bilder immer sichtbar sind?

    Also entweder hast Du Deine Bilder nach x/y-koordinaten benannt (7_2_3.png) und lässt wmtx ganz weg,

    7, 2 und 3 sind keine Koordinaten, die Zahlen haben nichts mit der Position auf der Karte zu tun.

    Oder -und das ist voll am einfachsten- Du machst ein Array mit den Namen Deiner Bilder

    Mit arrays kenne ich mich nicht so gur aus, du meinst also, dass ich dann hinterher bei:
    meineBilder =new Array('1_2_1.png','7_2_3.png','usw...');
    alert(meineBilder[0]);

    eine alert-Box mit dem Inhalt "1_2_1-png" bekommen würde, und die jeweilige Variabel dann nur an der jeweiligen Kartenstelle einsetzen muss?

    p.s. ich weiss ja nicht wie fit du in php bist.
    Eventuell könntest Du ja einfach eine php-Datei schreiben die dann das passende Bild liefert (tile.php?tileNr=1 zB)

    Das würde ich bestimmt hinbekommen, aber als ich mal damit ein bischen rumprobiert habe, hat die Seite über 30 Sekunden zum laden gebraucht und deswegen wurde die Maximalzeit überschritten. Da habe ich aber auch alles aus einer MySQL-Datenbank geladen.
    Ich weiß, dass das sehr viel Text ist, aber es würde mich sehr freuen, wenn mir jemand erklären könnte, was die oben genannten Code-Teile im einzelnen machen und ob meine Interpretationen stimmen,
    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    simuliertes schrieb:
    Also das einzige was ich mir rauskopiert habe waren die funktionen updateWMTT, showWMTT und hideWMTT.
    Siehe dazu
    http://webmatze.de/wirklich-einfache-javascript-tooltips/

    So eine Nachricht am Mauszeiger habe ich bereits selber estellt, ist also kein Problem.
    simuliertes schrieb:
    Da ich keine Einwände gegen die Verwendung des Codes habe (egal ob privat,kommerziell etc..) kannst Du alles bedenkenlos verwenden.

    Vielen Dank! ;-)
    simuliertes schrieb:
    Also das system läuft so:
    Mal angenommen die Karte wird nach rechts verschoben.
    Irgendwann verschwindet ja dann ein Tile.
    Dieses wird dann einfach wieder links "angeklebt".
    Und dann mit einem neuen Bild versehen.

    An diesem System müsste ich noch etwas ändern, denn die Bilder, die ich verwende haben keinen fortlaufenden, durchnummerierten namen. Ich müsste die Information, wie ein Bild heißt, also aus einer Datei auslesen. Ich habe aber nicht so wirklich eine Idee, wie ich das machen soll, denn so wie ich das sehe, funktioniert das Script in etwa ganz grob so, was die Biderauswahl angeht,:
    if(KarteWirdBewegt und NeuesBildNoetig) {
      if(NachRechts) {
        X--; //X-Koordinate des Bildes, ein Bild wird links dragehängt. Durch die Abmessung in "wx=9;wy=6;" Kann errechnet werden, ob das Bild in eine Neue Zeile muss.
      }
      if(NachLinks) {
        X++;
      }
      if(NachOben) {
        Y++;
      }
      if(NachUnten) {
        Y--;
      }
    }

    Stimmt das in etwa so (In "Menschlicher Syntax")? Ich finde die Variabelnamen sehr verwirren, deshalb ist es für mich schwer, das ganze zu verstehen.
    Hat jemand eine Idee, wie ich das Script so anpasseb kann, dass es auch Bildnamen wie "1_2_1.png" und direkt daneben "7_2_3.png" (nur Beispielnamen) anzeigen kann?
    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    Hallo simuliertes,
    simuliertes schrieb:
    Ich habe sowas schon mal selber gemacht:
    http://simuliertes.lima-city.de/spielplatz/map/karte.htm

    Das ist genau das, was ich gesucht habe, ein ganz, großes danke an dich! Aber ich möchte davon gerne gebrauch machen ;-):
    simuliertes schrieb:
    Falls Du fragen dazu hast, frag

    Genau das mache ich jetzt:
    1.Hast du wirklich alles selber gemacht oder ist das zusammenkopiert? Ich will dich nicht falsch beschuldigen, ich möchte es nur wissen. Ich habe mich mal ein bischen durch den Quelltext gekämpft und mir ist aufgefallen, dass die Einrückung sehr unterschiedlich ist. Das könnte bedeuten, dass da mehrere Leute etwas zu beigetragen haben, war es so? Ich frage, weil ich das Script gerne verwenden möchte, und dazu bräuchte ich die Erlaubnis aller Mitschreiber bzw. Rechteinhaber. Gibt es eine Lizenz, unter der du das Script zur Weiterverwendung anbietest oder möchtest du nicht, dass ich es verwende?
    2.Hast du das Script nochmal mit ausführlicheren Variabelnamen und einer ausführlicheren Kommentierung? Ich verstehe das noch nicht so ganz.
    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    Hallo und danke für die Antwort,
    hcms schrieb:
    ich befürchte das selbst zu realisieren und alle dabei alle hürden zu überwinden ist äußerst schwierig...

    Das ist mir mehr oder weniger egal. Ich programmiere dieses Spiel, um Sachen zu lernen und nicht, um zu sagen, dass alles zu schwer ist.

    aber glücklicherweise gibts eine einfache lösung:
    benutze die google-maps-api dafür :smokin:
    da findest du ausreichende dokumentationen wie man seine eigenen karteninhalte implementieren kann...

    ein schönes beispiel dafür: http://travianer.scheibenwelt.org/map/

    Eine Google-maps Karte möchte ich nicht einbinden, da mich das "Google-Logo" unten links in der Ecke stört und ich es lieber selber machen möchte. Hat Irgendjemand eine Idee, die nicht auf Google-Maps-Karten basiert? Oder eine Teillösung?
    MFG THWBM
  • in: Karte bewegen und nachladen

    geschrieben von thwbm

    Hallo,
    ich habe schon einmal ein ähnliches Thema erstellt, doch da ich dort keine Antwort mehr erhalte und ich mit meinen Überlegungen nun etwas weiter bin, eröffne ich hier ein neues Thema.
    Mein Ziel ist es, eine Karte für ein Browserspiel zu erstellen, die man mit der Maus bewegen kann und die die Bilder, aus der die Karte besteht nachlädt, wenn diese im sichtbaren bereich sind. Hier mal mein bisheriger Code:
    <html>
    	<head>
    		<script type="text/javascript" src="jquery-1.8.2.js">
    		</script>
    		<script type="text/javascript" src="jquery-ui1.9.1.js">
    		</script>
    		<link rel="stylesheet" href="jquery-ui1.9.1.css">
    		<script type="text/javascript">
    			$(document).ready(function() {
    				$("#Karte").draggable();
    			});
    		</script>
    		<style rel="stylesheet">
    			#Sichtbereich {
    				position: absolute;
    				width: 90%;
    				height: 90%;
    				top: 5%;
    				left: 5%;
    				border: 1px solid black;
    				overflow: hidden;
    			}
    			#Karte {
    				width: 250%;
    				height: 250%;
    				position: absolute;
    				top: 0px;
    				left:0px;
    			}
    			img {
    				width: 100%;
    			}
    			table {
    				width: 100%;
    				height: 100%;
    				border-collapse: 0px;
    				border-spacing: 0px;
    				padding: 0px;
    				margin: 0px;
    			}
    			td {
    				border-collapse: 0px;
    				border-spacing: 0px;
    				padding: 0px;
    				margin: 0px;
    			}
    			tr {
    				border-collapse: 0px;
    				border-spacing: 0px;
    				padding: 0px;
    				margin: 0px;
    			}
    		</style>
    		<title>
    			Karte
    		</title>
    	</head>
    		<div id="Sichtbereich">
    			<div id="Karte">
    				<table id="Karteninhalt">
    					<tr>
    						<td>
    							<img src="1_2_1.png" alt="">
    						</td>
    						<td>
    							<img src="1_2_1.png" alt="">
    						</td>
    					</tr>
    					<tr>
    						<td>
    							<img src="1_2_1.png" alt="">
    						</td>
    						<td>
    							<img src="1_2_1.png" alt="">
    						</td>
    					</tr>
    				</table>
    			</div>
    		</div>
    	</body>
    </html>

    Dies ist ein Denkansatz, ich bin offen für andere Vorschläge.
    Zur erklärung:
    Die Tabelle, die jetzt 4 Bilder umfasst, soll eigentlich mehrere Tausend Bilder umfassen. Diese sind alle 32x32px groß, es sind also viele kleine Bilder. Ich habe als beispiel einfach immer die gleiche Datei eingebunden, es ist immer ein Baum, kann aber durch eine belibige andere Datei ersetzt werden (logischerweise).
    Meine Probleme sind jetzt:
    1.Wie reduziere ich die Ladezeit so, dass die Datei keine Ewigkeit zum laden braucht? Ich habe schon etwas mit Lazyload rumprobiert, das hat aber alles zu nichts geführt. Außerdem kommt mir Lazyload eher für Projekte sinnvoll vor, bei denen wenige große Bilder nachgeladen werden können. Gibt es ein Script, mit dem ich die Bilder erst nachladen kann, wenn diese im sichtbaren bereich sind und wenn ja, wo finde ich es bzw. wie schreibe ich es selber?
    2.Wie begrenze ich das
    .draggable()
    von jQuery so, dass man nicht über den Rand der Karte hinausgucken kann? Also so, dass man die Karte nur so weit bewegen kann, dass sie immer vollständig im sichtbaren bereich bleibt.
    3.Als ich mit vielen Bildern rumprobiert habe, habe ich bemerkt, dass das
    .draggable()
    anfängt zu haken. Wie kann ich das verhindern?
    Ich hoffe, ich konnte alles so fragen, dass man es verstehen kann. Danke im Voraus für alle Antworten.
    MFG THWBM
  • in: overflow-x: hidden

    geschrieben von thwbm

    Hallo,
    ich weiß nicht, ob ich dein Problem richtig verstanden habe, aber falls ja, könnte das helfen: Ordne mal dem Div oder wodrin auch immer du das Menu hast, das
    overflow-x: hidden;
    zu, anstelle des
    <body>
    . Falls das überhaupt nicht das ist, was du suchst, könnte das dadran liegen, dass ich kein Fratzdenbuch benutze.
    MFG THWBM
  • in: JS Bilder nachladen wenn sichtbar

    geschrieben von thwbm

    Hallo,
    steelman schrieb:
    Wie wäre es mit dem LazyLoad Plugin für JQuery?

    ich habe es mir gerade mal durchgelesen, es sieht vielversprechend aus, aber bevor ich es mir näher anschaue, möchte ich wissen, wie die Lizensierung ist. Ist es auch für Kommerzielle zwecke erlaubt, oder nicht? Ich möchte mir damit nicht die Möglichkeit nehmen, Werbung auf der Internetseite einzublenden. Ich habe zu dem Thema kommerzielle Nutzung nichts gefunden, hat jemand einen Link?
    xian schrieb:
    viele seiten laden nach dem runterscrollen hektisch nach und man wartet sekundenlang auf das neue.
    aus user-sicht wäre eine besser ausbalancierte lösung wünschenswert: preload etwa eine halbe seite über den sichtbaren bereich hinaus, der rest lazy. so wäre einem die immer noch faule anzeige stets voraus.

    Das werde ich warscheinlich machen, sofern Lazy-Load auch kommerziell nutzbar ist. Dazu gibt es auch eine Lazy-Load Lösung. Sieh Unterpunkt "Setting Sensitivity".
    MFG THWBM
    EDIT:
    Ich habe gerade den Hinweis gefunden, dass Lazy-Load unter der MIT Lizens angeboten wird, deren Deutsche Übersetzung ist laut Wikipedia, und die Übersetzung kommt mir richtig vor:

    Copyright (c) <Jahr> <Copyrightinhaber>

    Hiermit wird unentgeltlich, jeder Person, die eine Kopie der Software und der zugehörigen Dokumentationen (die "Software") erhält, die Erlaubnis erteilt, sie uneingeschränkt zu benutzen, inklusive und ohne Ausnahme, dem Recht, sie zu verwenden, kopieren, ändern, fusionieren, verlegen, verbreiten, unterlizenzieren und/oder zu verkaufen, und Personen, die diese Software erhalten, diese Rechte zu geben, unter den folgenden Bedingungen:

    Der obige Urheberrechtsvermerk und dieser Erlaubnisvermerk sind in allen Kopien oder Teilkopien der Software beizulegen.

    DIE SOFTWARE WIRD OHNE JEDE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIE BEREITGESTELLT, EINSCHLIESSLICH DER GARANTIE ZUR BENUTZUNG FÜR DEN VORGESEHENEN ODER EINEM BESTIMMTEN ZWECK SOWIE JEGLICHER RECHTSVERLETZUNG, JEDOCH NICHT DARAUF BESCHRÄNKT. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHTINHABER FÜR JEGLICHEN SCHADEN ODER SONSTIGE ANSPRÜCHE HAFTBAR ZU MACHEN, OB INFOLGE DER ERFÜLLUNG EINES VERTRAGES, EINES DELIKTES ODER ANDERS IM ZUSAMMENHANG MIT DER SOFTWARE ODER SONSTIGER VERWENDUNG DER SOFTWARE ENTSTANDEN.

    Aber was heißt das jetzt?

    "Hiermit wird unentgeltlich, jeder Person, die eine Kopie der Software und der zugehörigen Dokumentationen (die "Software") erhält, die Erlaubnis erteilt, sie uneingeschränkt zu benutzen, inklusive und ohne Ausnahme, dem Recht, sie zu verwenden, kopieren, ändern, fusionieren, verlegen, verbreiten, unterlizenzieren und/oder zu verkaufen, und Personen, die diese Software erhalten, diese Rechte zu geben, unter den folgenden Bedingungen:"

    Hört sich für mich danach an, dass ich den Quelltext verkaufen dürft, also einer dritten Person gegen Geld anbieten dürfte, aber das wäre ja Sinnlos, denn Lazy-Load wird ja kostenlos zum Download angeboten.
  • in: PS2 and Monitor ?

    geschrieben von thwbm

    Hallo,
    ich habe sowohl meinen PC als auch meine Playstation 2 als auch normales Fernsehprogramm an einem Bildschirm, ich habe aber keine Adapter oder ähnliches, sondern einen speziellen Fernseher, der PC Anschlüsse hat. Ob es einigermaßen Preiswerte Adapter gibt, die eine gute Bildquallität haben, weiß ich nicht. Mein Fernseher mit den entsprechenden Anschlüssen hat vor ein paar Jahren so um die 200€ gekostet und hat knapp 50cm Diagonale.
    PS: Ich habe gerade noch das hier gefunden: *KLICK*
    Ob es brauchbar ist, weiß ich nicht, aber du solltest es dir mal angucken.
    MFG THWBM
  • in: JS Bilder nachladen wenn sichtbar

    geschrieben von thwbm

    Hallo,
    ich habe mich etwas durch Google gekämpft, habe aber nichts brauchbares gefunden. Ich suche nach einer Möglichkeit, um Bilder der Klasse
    class="Bilder"
    erst nachzuladen, wenn sie im sichtbraren Bereich sind. Hintergrund des Ganzen ist, dass ich sehr viele Bilder habe, die sich in einem Div befinden, der die CSS Eigenschaft
    overflow:scroll;
    hat. Die Seite braucht so, wie sie jetzt ist etwa 20 Sekunden zum Laden, was deutlich zu lange ist. Man sieht ungefähr ein Zentel der Bilder, also würde es reichen, wenn dieses Zehntel geladen werden würde. Mein Lösungsansatz (mit jQuery):
    function BlderSichtbar() {
      $(document).ready(function() {
        $("#BilderScrollbar").scroll(function() { //Wenn der Div mit den Bildern gescrollt wird:
          if($(".Bilder") == "Sichtbar") { //Hier weis ich nicht, wie die Afrage aussehen muss.
            //Hier sollen jetzt die Bilder nachgeladen werden, die sichtbar sind.
        });
      });
    }

    Optimal wäre es, wenn die Bilder nicht verlohren gehen würden, wenn man scrollt. Also wenn nur 5 weitere Bilder sichtbar werden, reicht es, diese 5 nachzuladen, alle schon geladenen Bilder müssen nicht nachgeladen werden. Hat Irgendjemand Lösungsvorschläge, Denkansätze oder Ähnliches?
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    hcms schrieb:
    ja das funktioniert, mal abgesehen vom ie8... der zeigt mir nen halben bildschirm rot und zwei scroll-leisten...

    Mir zeigt der Internet Explorer auch interessante Sachen an, Effekte von denen ich nicht wüsste, wie ich sie dem Firefox beibringen sollte, macht der IE von ganz alleine, aber ungewollt. Sieht Irgendjemand (und damit meine ich jetzt nicht nur hcms) noch Änderungsbedarf in dem Script? Falls nicht, hat sich das Thema hier an dieser Stelle erledigt.
    Ich denke, dass sollte eigentlich so in ordnung sein, denn bei den häufig verwendeten Browsern funktioniert es ja. Das sollte eigentlich reichen.
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    hcms schrieb:
    Was sieht für dich nicht nach einer funktionierenden Lösung aus? Was funktioniert nicht? Bei mir funktioniert es.
    nun ich habe den code mal so ausprobiert:
    [...]
    , natürlich mit einem Bild.jpg und jquery-ressource vorhanden - aber meine browser (ie8 & firefox15 & chrome24) zeigen mir dann nur einen weißen bildschirm ohne alles...

    Dann versuche mal das hier:
    <html>
      <head>
        <meta charset="utf-8">
        <title>
          Gr&ouml;&szlig;enanpassung
        </title>
        <script type="text/javascript" src="http://localhost/Websits/Browsergame/mit Registrierung/jQuery/jquery-1.8.2.js">
        </script>
        <script type="text/javascript">
          $(window).resize(function() {
            Groessenanpassung();
          });
          function Groessenanpassung() {
            $(document).ready(function() {
              $(".KarteBild").css("width", 100 / 96 + "%");
              $("#Karte").css('height', 48 * $(".KarteBild").width() + "px");
              $("#Karte").css('width', 300 + "%");
              $("#Karte").css('width', 96 * $(".KarteBild").width() + "px");
              $(".KarteBild").css("height", $("#Karte").height() / 48 + "px");  
            });
          }
        </script>
        <style type="text/css">
          #KartePlatzierung {
            position:relative;
            top:auto;
            left:auto;
            width: 100%;
            height: 100%;
            background-color: #FF0000;
          }
          #KarteBereich {
            position: absolute;
            width: 100%;
            height: 100%;
            background-color: #0000FF;
          }
          #KarteScrollbar {
            width: 100%;
            height: 100%;
            overflow:scroll;
            background-color: #888888;
          }
          #Karte {
            border-spacing: 0;
            width:300%;
            line-height:0%;
            background-color: #00FFFF;
          }
          .BrKarteBild {
            clear:left;
          }
          .KarteBild {
            float: left;
          }
          html, body {
            width: 100%;
            height: 100%;
            margin: 0px;
            padding: 0px;
            overflow:auto;
            text-align:center;
          }
        </style>
      </head>
      <body onload="Groessenanpassung()" onresize="Groessenanpassung()">
        <div id="KartePlatzierung">
          <div id="KarteBereich">
            <div id="KarteScrollbar">
              <div id="Karte">
                <?php
                  for($iZeile=1;$iZeile<=48;$iZeile++) {
                    for($iSpalte=1;$iSpalte<=96;$iSpalte++) {
                      ?>
                        <img class="KarteBild" src="Bild.jpg" alt="">
                      <?php
                    }
                    ?>
                      <br class="BrKarteBild">
                    <?php
                  }
                ?>
              </div>
            </div>
          </div>
        </div>
      </body>
    </html>

    Ich habe jetzt mal Hintergrundfarben für die Divs vergeben, damit man sie besser zuordnen kann, falls einer zu groß ist. Außerdem habe ich noch CSS-Eigenschaften für <html> und <body> vergeben, die ich vergessen hatte. Ich habe den Code getestet und direkt danach kopiert und hier eingefügt, es sollten also keine Fehler mehr auftauchen.
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    hcms schrieb:
    hmm - das sieht für mich irgendwie nicht nach einer funktionierenden lösung aus...

    Was sieht für dich nicht nach einer funktionierenden Lösung aus? Was funktioniert nicht? Bei mir funktioniert es.

    ...und wozu denn jetzt wieder javascript ? ich dachte du wolltest mit relativen css-angaben arbeiten ? :wazzup:

    Ja, wollte ich, das hat aber nicht funktioniert, da dann, ich schätze auf grund von Rundungsungenauigkeiten der Prozentwerte auf Pixel, am unteren Rand der Scrollbox ein Rand geblieben ist. Ich habe die Höhe festgesetzt, weil ich die Bilder später nachladen will, erst wenn sie im sichtbaren Bereich sind, ohne dass die Scrollbar ihre größe ändert.
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    xian schrieb:
    wusstest du, dass der arme thwbm schon ½ jahr dran bastelt?

    Ich bastel seit einem halben Jahr an der Gesammten Seite, die ich hauptsächlich mache, um PHP, Javascript und CSS zu lernen, wie ich bereits schrieb. Ich bin nicht schon so lange damit beschäfttigt, diese Bilder dementsprechend zu positionieren und die größe festzulegen. Für mich liest sich das so, als würdest du davon ausgehen.
    xian schrieb:
    bei meinen browsern ist auch das folgende bruchsicher:
    <html><body>
    <nobr>x x x x x <img src="x.jpg"> <img src="y.jpg"> x x x x x</nobr>
    </body></html>

    Bruchsicher, aber nicht HTML-Konform. <nobr> ist nicht teil des offiziellen HTML-Sprachstandarts, man sollte deshalb darauf verzichten.

    Ich habe jetzt eine funktionierende Lösung gefunden, wenn sie Fehler bzw. überflüssige Zeilen enthält, wäre ich euch über einen Hinweis dankbar (der äußere Div ist in einer Tabelle platziert.):
    index.php:
    <div id="KartePlatzierung">
      <div id="KarteBereich">
        <div id="KarteScrollbar">
          <div id="Karte">
            <?php
              for($iZeile=1;$iZeile<=48;$iZeile++) { //Die Bilder wuerde ich durch verschiedene ersetzen
                for($iSpalte=1;$iSpalte<=96;$iSpalte++) {
                  ?>
                    <img class="KarteBild" src="Bild.jpg" alt="">
                 <?php
                }
                ?>
                  <br class="BrKarteBild">
                <?php
              }
            ?>
          </div>
        </div>
      </div>
    </div>

    CSS:
    #KartePlatzierung {
      position:relative;
      top:auto;
      left:auto;
      width: 100%;
      height: 100%;
    }
    #KarteBereich {
      position: absolute;
      width: 100%;
      height: 100%;
    }
    #KarteScrollbar {
      width: 100%;
      height: 100%;
      overflow:scroll;
    }
    #Karte {
      border-spacing: 0;
      width:300%;
      line-height:0%;
    }
    .BrKarteBild {
      clear:left;
    }
    .KarteBild {
      float: left;
    }

    Javascript:
    //UEber jQuery wird bei jeder Größenveränderung die entsprechende Funktion aufgerufen,
    //Zusaetzlich wird die Funktion auch ueber "<body onload="Groessenanpassung()" onresize="Groessenanpassung()">"
    //aufgerufen
    $(window).resize(function() {
      Groessenanpassung();
    });
    function Groessenanpassung() {
      $(document).ready(function() {
        $(".KarteBild").css("width", 100 / 96 + "%");
        $("#Karte").css('height', 48 * $(".KarteBild").width() + "px");
        $("#Karte").css('width', 300 + "%");
        $("#Karte").css('width', 96 * $(".KarteBild").width() + "px");
        $(".KarteBild").css("height", $("#Karte").height() / 48 + "px");	
      });

    Falls noch Fehler, um die ich mich kümmern sollte, enthalten sind, bitte Melden. Falls noch Fragen vorkommen, ebenfalls.
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    xian schrieb:
    was weiß ich, welcher browser in welchem modus bei vollmond an ungeraden tagen was macht.

    Ich schmeiß mich weg vor lachen :biggrin:.
    xian schrieb:
    würden sich die browser-hersteller an die standards halten, wärs wohl zu einfach :-|

    Ja, das wäre es leider.
    xian schrieb:
    <html><body>
    <div style="white-space:nowrap;">x x x x x
    <img src="x.jpg"> <img src="y.jpg"> x x x x x</div>
    </body></html>
    funkt bei mir auch.

    Und wofür war dann das
    display: inline;
    ? Laut Selfhtml ist das um Elemente im Textfluss anzuzeigen, aber macht es einen Unterschied wenn man es weglässt?Es funktionieren ja beides, aber wie du schon sagtest:

    was weiß ich, welcher browser in welchem modus bei vollmond an ungeraden tagen was macht.

    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    xian schrieb:
    hcms schrieb: ja denkste - funktioniert in diesem falle mit den bildern aber tatsächlich nicht.
    bei mir schon:
    <html><head><style type="text/css">
    .dinl {display:inline}
    .nobr {white-space:nowrap;}
    </style></head><body>
    
    <p class="nobr">x x x x x
    <img class="dinl" src="x.jpg">
    <img class="dinl" src="y.jpg">
    x x x x x</p>
    
    </body></html>

    Bei mir auch und das wundert mich. Anfangs hatte es nicht funktioniert, was eigentlich nicht sein kann. Gibt es eine CSS Eigenschaft, die
    white-space: nowrap;
    blockiert und die gesetzt war? Warum hast du
    display: inline;
    für die Bilder gesetzt? Bei mir funktioniert es auch ohne. Ist das für den Internet Explorer oder sollte es auch beim Firefox nötig sein?
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    xian schrieb:
    <nobr>
    ist nicht standard, es funktioniert bloß. :tongue:

    Selbst wenn es beim Firefox funktionieren würde, dann sollte man es trotzdem weglassen, denn nicht offizielle Tags können von verschiedenen Browsern sehr unterschiedlich gedeutet werden.
    xian schrieb:
    white-space:nowrap;
    funtioniert zb auch bei <div>s :smile:

    hcms schrieb:
    ja denkste - funktioniert in diesem falle mit den bildern aber tatsächlich nicht.

    Ich stimme hcms zu.
    hcms schrieb:
    Warum muss <br> die CSS Eigenschaft "clear: left;" zugeordnet bekommen?

    nun, da wir die bilder ja mit float:left versehen haben um sie nebeneinander zu bekommen ist es nur konsequent die (nach x bildern pro zeile gewollten) zeilenumbrüche mit clear:left zu versehen. natürlich wäre es nicht unbedingt notwendig solange jedes bild genau die selbe größe hat, und diese identisch mit der line-height wäre - aber der explorer lehrt uns: `sicher ist sicher` ;-)

    außerdem sollte zumindest das allerletze <br> (nach allen bildern, vorm schließen des <div>) ein clear haben, damit das html-static layout wieder hergestellt wird (und somit das div auch browserübergreifend sicher richtig aufgespannt wird).

    Das leuchted ein, jetzt habe ich es glaube ich verstanden, danke.
    xian schrieb:
    darf man, wenns fertig ist, dein projekt sehen?

    Ja, betonung liegt auf WENN ;-). Ich bin mitlerweile seit einem halben Jahr dadran. Nicht nur die Positionierung von ein paar Bildern, sondern überhaupt PHP, CSS und Javascript zu lernen. Als ich angefangen habe konnte ich noch nur HTML. Ich nutze dieses Gesammtprojekt als Weg, Webseitenprogrammierung zu lernen.
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    xian schrieb:
    hast du schon eine tabelle probiert?

    Ja, habe ich. Da hatte ich aber das Problem, dass die Zellen nicht prozentual an die Bildschirmgröße angepasst wurden.
    xian schrieb:
    per css verhinderst du zeilenumbrüche mit
    white-space:nowrap;


    Funktioniert das nur bei Texten, also nicht bei Bildern oder mache ich etwas falsch?
    xian schrieb:
    es gibt ja so viele arten von tags :wink:

    Ja, da hast du recht, aber das:
    xian schrieb:
    <nobr>bricht nicht</nobr>

    gehört offiziell nicht zum HTML Standart. Quelle.
    MFG THWBM
  • in: JS Text makieren verhindern

    geschrieben von thwbm

    rosis-blog schrieb:
    Sollte aber eigentlich gehen

    xian schrieb:
    angeblich per noselect-script, aber ich denke nicht, dass das bei allen browsern wirkt.

    Ob es wirklich bei _ALLEN_ Browsern funktioniert weiß ich nicht, ich gehe aber nicht davon aus. Ich habe es gerade mal getestet, bei Firefox, Opera, Chrome und selbst beim IE geht es, also sind die wichtigsten abgedeckt. Beim Safari habe ich es jetzt nicht getestet, ich gehe aber davon aus, dass es dort auch funktioniert.
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    hcms schrieb:
    zu 1.:
    das liegt dann wohl daran das die höhe der bilder die line-height einer html-zeile unterschreitet...

    Danke, mit dem
    line-height:X%
    kann ich was anfangen.
    hcms schrieb:
    zu 2.:
    also wenn du tatsächlich immer eine scroll leiste haben willst, dann mache es am besten mit einem container-div...

    Ich habe da auch schonmal ein bischen rumprobiert, aber bei mir hatte das nicht so ganz funktioniert. Jetzt klappt es aber, danke.
    EDIT:
    Warum muss <br> die CSS Eigenschaft "clear: left;" zugeordnet bekommen?
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    hcms schrieb:
    vielleicht ist das hier ja der richtige dankanstoß:

    Das sieht schon ganz gut aus, aber ich hätte noch 2 Probleme:
    1. Wenn ich das Fenster weiter zusammenschiebe, entstehen weiße Linien zwischen den einzelnen Zeilen. Solange das Fenster auf voller Breite oder fast voller Breite ist, funktioniert aber alles super. Wie bekomme ich diese Streifen weg?
    2. Wenn ich die Menge an Bildern erhöhe, die nebeneinander sind oder wenn ich die Breite eines einzelnen Bildes so erhöhe, dass eine gesammtbreite von über 100% entsteht, dann entstehen Zeilenumbrüche, die nicht da sein sollten. Wie bekomme ich die weg?
    MFG THWBM
  • in: Android - Systemzeit auslesen und in Minuten Ausgeben

    geschrieben von thwbm

    Hallo,
    ich kenne mich zwar nicht mit Java-Programmierung aus und ich weiß auch nicht genau, ob ich dein Problem richtig verstanden habe, aber hier mal meine Ideen:
    3:10 Uhr (morgens) ist genau 190 Minuten nach Mitternacht. Falls du das nicht meinst, dann guck dir mal das an:

    System.currentTimeMillis() :
    A static method that returns the current date and time as milliseconds since January 1st 1970

    Quelle: http://tutorials.jenkov.com/java-date-time/index.html.
    Ich habe einfach mal nach der PHP Funktion
    time()
    in Kombination mit "Java" gesucht (erster Treffer): *KLICK*
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    menschle schrieb:
    Wolltest Du nicht die Hälfte der Höhe des sichtbaren Bereiches einer Webseite in einem DIV-Element quadratisch darstellen? :confused:

    Jain. Ich probiere im Moent ein bischen rum. Ich habe einen Div mit dem Seitenverhältnis 1:2, also doppelt so breit wie hoch. in dem Div ist eine Tabelle mit 16*32 Zellen, die alle quadratisch sind, also 16*<tr>, 32*<td>. In diesen Zellen ist jeweils ein Bild, das ebenfalls quadratisch ist. Zusammengesetzt ergeben diese Bilder eine Karte, deshalb ist es auch wichtig, dass die einzelnen Bilder quadratisch dargestellt werden. Das ganze muss jetzt noch von der Bildschirmgröße abhängig gemacht werden.
    menschle schrieb:
    Dies soll jeweils auch der Fall sein, wenn ein Bild in dem Div ist. Es soll immer quadratisch bzw. doppelt so breit wie hoch sein, auch wenn es eigentlich andere Abmessungen hätte.
    Und *zack* nun haste es geschafft: Ich stehe ich fast völlig auf dem Schlauch! [█___________]

    Ich hatte das Problem, dass Bilder die ich so:
    <table width="100%" height="100%">
      <tr height="50%">
        <td width="50%">
          <img src="Bild.png" alt="">
        </td>
        <td width="50%">
          <img src="Bild.png" alt="">
        </td>
      </tr>
      <tr height="50%">
        <td width="50%">
          <img src="Bild.png" alt="">
        </td>
        <td width="50%">
          <img src="Bild.png" alt="">
        </td>
      </tr>
    </table>

    in einer Tabelle eingebunden habe die Größenbegrenzung durch die Tabelle ignoriert haben, wenn sie größer als ein Virtel des Bildschirms waren.
    menschle schrieb:
    Es sollen sich alle Werte anpassen, wenn sich die Fenstergröße ändert.

    Was sich tatsächlich nur mit JavaScript realisieren lässt.

    Jain, denn die Angaben
    width="X%"
    und
    height="X%"
    funktionieren auch ohne Javascript.
    menschle schrieb:
    Das ist das, was ich vor habe.
    [____________] :frown:

    Ich versuche es erneut:
    Das ist das, was ich vor habe.
    Wo muss der Balken jetzt stoppen?
    [????????????]
    MFG THWBM
  • in: HTML prozentuale Quadrate

    geschrieben von thwbm

    menschle schrieb:
    Hm, erst nen Quader, nun doch lieber ein Rechteck.

    Ein Quader? Ich habe nie ein Quader in zwei Dimansionen erstellen wollen ;-). Oder meinst du ein Quadrat? Ich denke schon. ;-)
    menschle schrieb:
    Vielleicht beschreibst Du lieber zunächst, was genau Du denn eigentlich vorhast, bevor gefühlte 900 Scriptvorschläge kommen? :wink:

    Ich habe zum einen vor, dass ein Div quadratisch dargestellt wird, auch wenn die Größe in Prozentangaben angegeben ist, zum andern will ich einen Div so anzeigen, dass er doppelt so breit wie hoch ist, ohne dass es Scrallbalken gibt. Außerdem soll er immer so groß wie möglich sein.
    Dies soll jeweils auch der Fall sein, wenn ein Bild in dem Div ist. Es soll immer quadratisch bzw. doppelt so breit wie hoch sein, auch wenn es eigentlich andere Abmessungen hätte. Es sollen sich alle Werte anpassen, wenn sich die Fenstergröße ändert. Die Ziele sind zum Teil schon erreicht (siehe vorherige Antworten). Das ist das, was ich vor habe.
    MFG THWBM

Login zum Webhosting ohne Werbung!