Beiträge von Basi

    Ich denke es geht dir um die vertikale Position des Bereiches? Dann wäre der einfachste Weg wohl den Bereich fixed zu positionieren. Dann kann man mittels den angaben top, right, bottom und left die Abstände zum Rand des Anzeigebereiches einstellen, unabhängig vom scrollen.

    In dem Layout irgendetwas zu positionieren scheint mir aber unmöglich. Ist der CSS Quelltext von dir? Es gibt alleine für die h1-Überschrift 9 (!) CSS Abschnitte, die Styles hinzufügen wollen. Vieles ist doppelt und dreifach angegeben. Nur mal ein Beispiel:

    CSS: 139
    h1,h2{
        font-family:"Myriad Pro",Arial,Helvetica,sans-serif;
    }
    CSS: 303
    h1,h2{
        font-family:"Myriad Pro",Arial,Helvetica,sans-serif;
    }


    Ja was denn nun?

    Auch das hier:

    CSS
    *{
        /* A universal CSS reset */
        margin:0;
        padding:0;
    }


    Kommt sowohl in Zeile 1, als auch in Zeile 163 auf, sogar noch mit einer völlig deplatzierten box-sizing Eigenschaft:

    CSS: 163
    * {
      box-sizing: border-box;
    }
    *{
        /* A universal CSS reset */
        margin:0;
        padding:0;
    }


    Der center-Tag aus HTML wurde übrigens schon vor über einem Jahrzehnt von CSS ersetzt (durch margin: auto;).

    Hast du den CSS Bereich im HTML-Seminar schon mal überflogen? Da erhältst du viele nützliche Tipps zur Positionierung von Elementen. Hier werden dann noch Beispiele Schritt für Schritt erklärt.

    Dein jetziger Code ist viel zu groß (Dateigröße die übertragen werden muss) und durch eine Vielzahl an Fehlern in modernen Browsern unberechenbar.

    Schickes Hintergrundbild. Facebooks erstes selbst betriebenes Rechenzentrum in Prineville, Oregon vor etwa 6 Jahren eröffnet.

    Hinzufügen könnte man noch Folgendes.

    Wenn man unbedingt einen bereits vergebenen Namen für eine Funktion nutzen möchte, kann man das mit Namespaces lösen. Das macht oft dann Sinn, wenn man mit mehreren Bibliotheken arbeitet und eigene Erweiterungen einbringt:

    MyFunction.php


    output.php


    Macht jedoch für die meisten Anwender keinen Sinn, ich erwähne es nur mal der Vollständigkeit halber.

    Versuche bei Strato bitte mal auf den Verzeichnis Schutz Manager zurückzugreifen. Wie das geht findest du hier. Das ist denke ich der einfachste Weg.

    Du kannst danach auch einen Blick in die angelegten .ht* Dateien werfen und nachsehen, wie die Strato Server die Syntax erwarten, das kann sich nämlich je nach System unterscheiden.

    Der Pfad wird entweder absolut (vom Stammverzeichnis ausgehend) oder relativ (von der .htaccess Datei ausgehend) angegeben. Wenn sich die .htaccess und die .htpasswd im selben Verzeichnis befinden, reicht die Angabe des Dateinamens. Manche Server stellen sich bei relativen Pfadangaben tatsächlich etwas an.

    Hast du als Passwort $apr1$opmJRKN2$zgoQCfP.MMxpWfWodtnpC/ eingegeben, oder das, was du bei dem Generator angegeben hast?

    Ich sehe auch gerade, dass du .htpassword geschrieben hast.

    Der Dateiname muss mit dem in Zeile 3 der .htaccess übereinstimmen. Das heißt entweder muss die Datei in deinem Fall .htpasswd heißen oder du trägst in Zeile 3 der .htaccess AuthUserFile .htpassword ein.

    Alleine der enorme Verzug. Das OS war angekündigt zum Herbst 2015 zusammen mit den neuen Smartphones. Das Schlimmste meiner Ansicht nach ist, dass ein Smartphone mit 629 € Preis beim Hersteller mit einem Prebuild OS ausgeliefert wird.

    Wenn es sich da um 1-2 Wochen Verzug handelt wäre das kaum der Rede wert. Mittlerweile handelt es sich um beinahe ein halbes Jahr.

    Das Betriebssystem an sich ist ganz gut gelungen. Im Alltag fühlt sich die Bedienung (Starten von Apps, wechsel ztwischen Apps) etwas langsamer an als bei Android. Ich erlebe häufiger Abstürze, was nicht die Welt ist wenn man bedenkt, dass es sich um eine Prebuild Version handelt und das Handy innerhalb nicht mal einer halben Minute wieder läuft.

    Hin und wieder kommt es zu Problemen mit dem Stromverbrauch.

    Features mit denen geworben wurde (Portierung von Android/iOS Apps für Win 10 Mobile) haben sich bisher nicht mal in Alpha Phasen gezeigt.

    Einige Einstellungen, die in WP8.1 vorhanden waren, sind noch nicht verfügbar (offenbar weil nicht funktionsfähig).

    Und alles zieht sich ewig hin. Das ist wirklich schade. Ich habe nicht das Gefühl, als würde sich allzu viel tun.

    Wenn sich das Ganze nicht bis zum Auslauf meines Vertrages Ende diesen Jahres ändert, wird mein nächstes Smartphone keines mit Windows.

    Das sind nur Dinge die ich erfahren habe. Gerade bei Prebuilds kann sich die Erfahrung eines jeden natürlich stark unterscheiden. Das Lumia 930 ist aber das letzte Windows Schlachtschiff und sollte theoretisch die wenigsten Probleme machen. Im Internet finden sich zuhauf Probleme anderer Benutzer selbst der aktuellen Top Smartphones.

    HTML und CSS können das leider nicht.

    Am Einfachsten ist wohl ein .htaccess Schuztz.

    Dazu legst du ein Verzeichnis an, welches nur mit Zugangsdaten betretbar sein soll. In das Verzeichnis legst du zwei Dateien.

    Die erste nennst du ".htaccess". Achte darauf, dass die Datei auch genau so gespeichert wird. Der Standard Editor von Windows z. B. macht gerne .htaccess.txt daraus. Du kannst die Datei aber auch einfach auf deinem Desktop dementsprechend umbenennen. Unter Windows z. B. musst du dabei darauf achten, dass du bekannte Dateierweiterungen nicht ausblendest. Die Einstellung findest du in den Ordneroptionen (Explorer öffnen, Datei -> Ordner- Suchoptionen oder "Explorer-Optionen" suchen) unter Ansicht.

    Der Inhalt für die Datei:

    Apache Configuration
    AuthType Basic
    AuthName "Password Protected Area"
    AuthUserFile .htpasswd
    Require valid-user


    Die zweite Datei nennst du .htpasswd (selbes Prinzip wie oben). Darin werden die Zugangsdaten gespeichert. Das Passwort wird als Hash gespeichert, daher ist es einfacher diese Datei zum Beispiel hier generieren zu lassen.

    Wenn du beide Dateien in das besagte Verzeichnis legst, wird jeder Aufruf des Verzeichnisses zunächst durch die Abfrage der Daten unterbrochen. Falls die falschen Daten eingegeben werden, gibt es enen Internal Server Error (500).

    Du kannst die Datei mit den Zugangsdaten auch anders benennen und die .htaccess dementsprechend anpassen, jedoch empfiehlt sich dieser Name, da Webserver in der Regel so konfiguriert sind, dass niemand Zugriff auf .ht* Dateien hat (wobei * hier für beliebige Zeichen steht).

    Ansonsten ist die einzig sichere Lösung PHP.

    Dein Vorgehen ist noch nicht ganz korrekt.

    Zuerst etwas zum HTML Code:

    HTML
    <th col width="500" height="50">


    Das ist kein valider Aufbau. Es gibt kein col Attribut für th und ab HTML5 sind width und height Attribute an Tabellenelementen auch nicht mehr zulässig, dafür nutzt man nun ausschließlich CSS.

    Der korrekte Aufbau ist also einfach:

    HTML
    <th>


    Gibt es einen bestimmten Grund dafür, dass du 2 Dokumente verwenden möchtest? Das macht die Sache nur unnötig komplizierter und der Mehraufwand macht in meinen Augen hier keinen Sinn.

    Du hast jedes einzelne Input Feld mit einem form-Tag versehen. Ein form-Tag entspricht aber einem ganzen Formular und ermöglicht es logische Zusammenhänge zwischen den Eingabefeldern herzustellen. Also nur einen verwenden und unter dem action-Attribut die Datei angeben, die aufgerufen werden soll wenn das Formular abgesendet wird. Absenden kann man mit einem input Element vom Typ submit.

    Da du PHP verwenden möchtest, muss der Dateiname vom .html in .php umgewandelt werden. Ich habe die Datei mal formular.php genannt. Die ungültigen Attribute und die überflüssigen Formulare habe ich gelöscht. Außerdem habe ich alles in einer Tabelle untergebracht, diese mit einem form-Tag umschlossen und das action-Attribut gesetzt, außerdem das method-Attribut auf post. Zuletzt habe ich noch einen Absenden Button eingefügt:


    Jetzt kann man anfangen mit PHP etwas Logik in die Geschichte zu bringen. Dazu muss ab jetzt ein PHP Interpreter (sprich ein Webserver oder ein CGI Script) aktiv sein um PHP verarbeiten zu können.

    Ganz am Anfang der Datei hilft folgender Code nachzuvollziehen was wir verarbeiten müssen:


    $_POST ist ein Array, welches alle über die post-Methode gesendeten Daten enthält. Da noch nichts gesendet wurde, ist das Array leer. print_r (print recursive) kann ganze Arrays ausgeben. Wenn die Seite aufgerufen wird, steht oben über dem Formular jetzt:

    Code
    Array
    (
    )


    Nach einem Klick auf den Absenden Button steht dort Folgendes:

    Code
    Array
    (
        [dienstart] => 
        [disponent] => 
        [Personalnummer] => 
        [kategorie] => 
        [user_eingabe] => 
        [gesendet] => Absenden
    )


    Jetzt ist bekannt, dass das Formular abgesendet wurde und nicht mehr angezeigt werden muss. Also eine Variable setzen die wir später abfragen können:

    PHP
    print_r($_POST);
    
    
    
    
    if(isset($_POST['gesendet']))
        $formular_anzeigen = false;
    else
        $formular_anzeigen = true;


    Weiter unten lässt sich die Variable jetzt abfragen und dementsprechend kann das Formular ausgeblendet werden:

    PHP
    <?php if($formular_anzeigen): ?>
    <form action="formular.php" method="post">
    <!-- Formular wegen Übersicht ausgeschnitten -->
    </table> 
    </form>
    <?php else: ?>
    <p>Das Formular wurde abgesendet!</p>
    <?php endif; ?>

    Jetzt wird das Formular nicht mehr gezeigt, wenn es bereits abgesendet wurde. Stattdessen ein Paragraph der meldet, dass das Formular gesendet wurde.

    Dann kannst du eigentlich schon deinen PHP Code einfügen. Statt einer direkten Ausgabe der Meldung einfach in eine Variable speichern und diese unten ausgeben:

    PHP
    <?php if($formular_anzeigen): ?>
    <form action="formular.php" method="post">
    <!-- Formular wegen Übersicht ausgeschnitten -->
    </table> 
    </form>
    <?php else: ?>
    <p><?php print $meldung; ?></p>
    <?php endif; ?>


    Der exit Befehl würde die Anzeige der Datei abbrechen und das wäre Unsinn. Damit niemand Unsinn in deine Datei schreiben kann, empfiehlt es sich die eingegebenen Daten noch zu bereinigen. Dafür bieten sich die Funktionen trim (entfernt unnötige Leerzeichen am Anfang und Ende), stripslashes (entfernt Maskierungszeichen) und htmlspecialchars (maskiert HTML). Damit man nicht für jede Eingabe alle drei Funktionen aufrufen muss, macht es Sinn eine eigene anzulegen. Das sieht dann etwa so aus:


    Die ganze Datei sieht bei mir dann etwa so aus:

    Wenn du PHP Code posten möchtest musst du ihn einfach in den entsprechenden BB-Code einfügen.

    Diese Eingabe:

    Code
    Mein Code:
    [code=php]
    if(isset($name))
    {
        print "Hallo $name!";
    }

    [/code]
    Erzeugt diese Ausgabe:

    Zitat

    Mein Code:

    PHP
    if(isset($name))
    {
        print "Hallo $name!";
    }


    Ich habe deine Beiträge mal entsprechend angepasst. Du kannst auch mal auf Bearbeiten klicken und schauen wie ich das gemacht habe.

    Alles dazu kannst du, wie von wolf: angemerkt, auch hier nachlesen.

    Ich nutze derzeit ein Lumia 930 unter Windows 10. Viren braucht man mit dem Betriebssystem sowieso nicht wirklich zu befürchten, da diese in der Regel nicht für Produkte mit ~1,6% Marktanteil angefertigt werden. Ich hatte sowohl unter Windows Phone 8.1 als auch unter Windows 10 Mobile (seit einigen Monaten installiert) weder ein Tool zur Virenbekämpfung noch einen Virus.

    Windows 10 Mobile hat ganz andere Probleme wenn man mich fragt.

    Hey,

    wenn die anderen Daten korrekt eingetragen werden, kann es ja tehoretisch nur am Typ des Feldes liegen, wo die Daten eingetragen werden sollen. Um was für ein Feld handelt es sich bei aktivierungscode? MD5 strings haben eine Länge von 32 Byte oder 16 Byte mit raw_output [md5($rand, true);] und sind vom Typ char.

    Dass deine Mails im Spam Ordner landen, liegt an der Konfiguration des sendenden Servers. Da im Weg sind meistens verschiedene DNS Settings oder das Sender Policy Framework. In der Regel kannst du da nicht viel gegen unternehmen, außer du hast Zugriff auf die Konfiguration des Mailservers. Das sollte aber nur der Fall sein, wenn du selber Host bist.

    Deine header stimmen soweit. Da kann aber auch ein Problem mit dem Absender auftreten. Wenn dein Hoster die Mails über eine IP verschickt, die nicht mit der im Absender und Reply-To angegebenen Domain verknüpft ist, schlagen die empfangenden Server in der Regel schon Alarm. Außerdem solltest du bei Mails auf die keine Antwort erfolgen soll als "Reply-To" Header immer "noreply@esmurf.de" oder "no-reply@esmurf.de" setzen. Der empfangende Server interpretiert das in der Regel gesondert.

    Wenn du mal ganz viel Langeweile hast, findest du hier alles was du über das Senden von Mails wissen musst.

    Hi. Das ist so nicht ganz einfach, aber durchaus machbar.

    HTML 5 lässt mittels Javascript eine Datei von der Festplatte des Benutzers laden, dazu gibt es die FileReader Klasse. Ich habe mal ein funktionierendes Beispiel erstellt, eine Erklärung hierzu würde jedoch den Rahmen hier derzeit sprengen. Wenn sich Interessenten finden, kann ich gerne in Zukunft eine detaillierte Anleitung dazu anfertigen.

    Der Ablauf ist ganz einfach:

    • Benutzer wählt Bild zum Hochladen aus
    • Bild wird in Bereich zum Zuschneiden geladen
    • Bild kann verschoben werden
    • Formular wird abgesendet
    • PHP nimmt Argumente entgegen, erstellt mittels mehrerer image Funktionen den Bildausschnitt und speichert ihn unter /uploads/ (Schreibrechte benötigt!)


    Den Code gibt es hier oder im Anhang per .zip Archiv. Ich habe auf jQuery und jQuery UI zurückgegriffen um den Code etwas schmaler zu halten. Das FileReader Objekt ist nicht auf jQuery angewiesen.

    Hier noch ein paar Quellen:
    php.net - Dateiuploads mit POST - Manual
    php.net - GD- und Imagefunktionen
    Mozilla Developer Network - Zugriff auf Dateien von Webapplikationen

    Funktionalität getestet und bestätigt in aktuellen Versionen von Firefox, Chrome, Opera, Internet Explorer und Edge.
    FileReader Kompatibilität

    Wenn du (oder jemand anders) eine spezielle Verständnisfragte hast(/hat) immer heraus damit. Ich kann nur wie gesagt leider zu diesem Zeitpunkt nicht mal eben anfängerfreundlich erklären "wie das denn funktioniert" (I'm sorry).

    upload.php


    style.css


    imageCropper.js


    uploadLogic.php