Beiträge von Stef

    Du hast hier folgendes gepostet:

    Zitat

    Es kommt kein Fehler wenn ich $mysqli - >errror benutze

    Es funktioniert aber wenn ich mich neu einlogge

    Ber ich will es ohne neu einloggen

    Kannst du das bitte mit dem prepare erklären?

    Wo brauchst du Hilfe? Und zeige den gesamten Code her, der dein Problem betrifft bitte.

    Zu deiner Frage "Kannst du das bitte mit dem prepare erklären?":

    Dein Code hat kritische Sicherheitslücken. Du fügst die Variable einfach so in die Query ein. Nun kann jemand von außerhalb, welcher das Formular absendet, die Absicht haben eine SQL-Injection (siehe Link) durchzuführen dann kommt er an deine ganzen Daten dran.

    Beispiel du hast eine DR-Abfrage. Nun trägst du die Variable einfach in die Query ein. Nun kann der User hergehen und die Suchabfrage ändern.

    Nehmen wir an deine Query ist : "UPDATE users SET password = $password WHERE userId = $userId"

    Nun kann der fremde User wenn du dich nicht gegen SQL-Injections schützt die Abfrage ändern und so an die ganzen Daten drankommen.

    Die Abfrage würde nach der SQL-Injection dann so aussehen:

    "UPDATE users SET password = $password WHERE userId = $userId or permissions LIKE '%admin%' ".

    Nun wird das Password, wenn die Spalte permissions vorhanden ist und ein Wert welcher Ähnlichkeiten mit dem Suchwort admin hat, zu seinem Wunschpassword geändert. Somit hat er Zugriff zu einem Account eines Admins und kommt an sehr geschützte Daten dran wie z.b. Nachrichtenzentrale, villt. werden im Backend auch alle Daten aus der Tabelle users ausgegeben in einer Tabelle. Dann hätte der Angreifer alle Daten.

    Verhindern kannst du es mit Prepared Statements.

    Bei diesen bereitest du eine query mit der function prepare() und platzhalten ( ? oder :platzhalter) vor. Nun führst du diese vorbereitete Query mit der execute function aus und bei dieser werden den Platzhaltern die entsprechenden Werte zugeteilt.

    Hey,

    Mailerklassen neben dir viel Arbeit ab beim Mailversand. Wie z.b. die RFCs beachten, Formatierungen, die Header setzen, schützen vor Header-Injections


    Ich habe bisher nur den PHP-Mailer benutzt. Bin sehr zufrieden. Der ist sehr einfach zu bedienen, hat auch ne gute Dokumentation und man kann auch z.b. Anhänge sehr einfach hinzufügen.

    Das wird garnicht erst ausgeführt. Es wird nur ausgegeben:

    :doodle { @grid: 9 / 61.8vmin; @shape: circle; }
    will-change: transform; transition: .4s @rand(600ms); transform: rotate(@rand(360deg)); @shape: triangle;
    --n: calc( @abs(@abs(@row() - 5) + @abs(@col() - 5) - 9) / 9 );
    background: hsla( calc(var(--n) * 360 + 120), 60%, 68%, var(--n) );

    Fahre mal mit gedrückter linker Maustaste rüber. Dann siehst du das.

    Hey,

    ich habe ein erneutes Problem mit Bootstrap.

    Ich möchte in meinem Formular ein input feld vom Typ file nutzen. Habe ich auch so gemacht nach der Dokumentation.

    Dieses HTML nutze ich:

    Code
    <div class="form-group">
                <label for="document" >Ihr Dokument:</label> 
                  <input type="file" name="document" class="form-control" id="document">
              </div>


    Hier ist das Problem das der Text, welcher neben dem file feld steht, einfach zu lang ist und dadurch wenn man testet ob es responsive ist der Text aus dem ganzen Container rausragt (siehe bilder)

    Wenn ich es nach Bootstrap4 nutze dann zeigt der mit einfach ein leeres text feld an ohne irgendwas. (Siehe Bild)

    Code
    <div class="form-group">
                <label class="custom-file" for="document">
                  <input type="file" name="document" class="custom-file-input" id="document">
                  <span class="custom-file-control"></span>
                </label> 
              </div>

    Ebenso wenn man ein card-deck erstellen möchte und die Texte in den Buttons zu lang ist ragen die auch aus den einzelnen cards, aus dem gesamten Container, raus.

    Habt ihr denn hilfreiche Tipps diese beiden Probleme zu beheben ?

    Anbei sind die Bilder:

    - unbenannt zeigt html-code1.

    - unbenannt2 zeigt das Problem des html-codes 1

    - file_nach_bootstrap4 zeigt das Ergebnis des zweiten html-codes welcher nach der Bootstrapdoku erstellt ist.

    Hey,

    ich benutze Bootstrap 4.

    Mein Problem war so einfach zu beheben. Habe nicht richtig nachgedacht.

    Der Grund warum es so angezeigt wird ist, weil ich alle elemente in die unordned list gecodet habe. Das justify-content-beetween wird angewendet um alle ausenliegenden Elemente zu trennen (mehr Platz zu geben). Mit ausliegende Elemente meine ich die Elemente, welche auserhalb der unordned List sind.

    Ich musste den link mit der class navbar-brand sowie die form außerhalb der ul positionieren. Dann hat es funktioniert.

    Danke für die Hilfe :)

    Hey,

    ich bin dabei mit Bootstrap rumzuspielen.

    Nun bin ich bei der Navigation. Habe mir dieses Thema in der Bootstrap-Doku mir durchgelesen und mal etwas getestet. Wie es in der Doku drinsteht geht es aber nicht. Ich erhalte mit dem selben code ein komplett anderes Ergebnis.

    Ich versuche das Formular in der Navbar nach ganz rechts zu bekommen. Dabei sollen die Menüpunkte aber links bleiben. Aber genau das geht nicht. Von der Doku werde ich auch nicht schlau. Da steht nix drin. Wenn man als Klasse neben nav noch justify-content-between hinzufügt wird jedem Menüpunkt padding gegeben, sodass die ganze Navbar mit dem Elementen befüllt ist.

    Aber das will ich nicht. Und wenn ich die form auserhalb ul erstelle dann wird diese nicht in die gleiche Reihe wie die Navbar positioniert sondern untendrunter. Das darf laut der Doku nicht passieren. Aber es passiert.

    Weiß jemand weiter?

    Mein Code:

    Mit der externen CSS-Datei so:

    Das CSS ist aus in einer anderen Datei und diese ist doch verlinkt oder etwa nicht?

    Nein. Schau dir doch mal genauer das dokument an, welches du hier gepostet hast. Du fügst nach dem </html> am Ende das CSS dazu. CSS-Befehle funktionieren jedoch nur im <style></style> oder in einer externen css datei welche du dann mit <link rel="stylesheet" href="css/index.css"> einbindest.

    So sieht es mit Benutzung des style-elements aus:

    Beachtest du eigentlich was wir dir für Tipps geben ?

    Stecke dein CSS in den Head Tag in <Style>

    Desweiteren ändere mal bei den Bildern von background zu background-image und füge da no-repeat hinzu.

    Du kannst die Seite auch mittels Javascript einbinden.

    Die html-dateien welche die Komponenten braucht musst du dann zu ner php-datei umändern.

    Beispiel:

    index.php (Startseite):

    Kontakt.php

    Komponente:

    navbar.html

    HTML
    <nav>
        <ul>
            <li><a href="#" alt="#">Menüpunkt1</a></li>
            <li><a href="#" alt="#">Menüpunkt2</a></li>
            <li><a href="#" alt="#">Menüpunkt3</a></li>
            <li><a href="#" alt="#">Menüpunkt4</a></li>
        </ul>
    </nav>

    Das heißt du holst dir die Navigation für jede Seite aus 1ner Datei. Und wenn du in dieser 1nen Datei was änderst wird es in jeder anderen Seite, in der du diese html-datei eingefügt hast, auch geändert.

    Hey,

    zu deiner Frage schlage ich dir vor die Komponenten wie Navigation, Footer auszulagern in eine extra html-datei welche du dann in die Hauptseite oder in weitere Seiten mittels php includest. Dann hast du nur eine zentrale datei wo die ganzen Daten der Komponente drin steht. Und wenn du den Inhalt änderst wird sich der Inhalt in jeder anderen Seite auch ändern, da du ja mittels include den Inhalt dieser navbar.html in die html-datei einbindest und ausführst.

    Hey,

    ich wollte mal ein Tutorial zu nem Textgenerator welcher auf PHP basiert machen.

    Was brauchen wir alles?

    1. Funktion welche den vorgegebenen Beispieltext verkürzt
    2. Funktion welche den vorgegebenen Beispieltext erweitert
    3. Den Wert aus dem input feld
    4. clipboard.js, mit der wird dann das kopieren des Textes erfolgen

    Funktion dieser Anwendung:

    • Gibt einen Beispieltext aus der so viele Zeichen wie gewünscht hat
    • Man kann den Beispieltext in die Zwischenlage sofort kopieren und den dann weiterverwenden.

    Als erstes brauchen wir das HTML. In diesem erstellen wir ein Formular, ein HTML-Element in welchem der generierte Text angezeigt wird und einen Button für das zwischenspeichern. Die Verlinkung zu clipboard darf auch nicht fehlen. Download Link: https://github.com/zenorocha/clipboard.js/

    Wenn wir das HTML erstellt haben wenden wir uns PHP zu. Mit PHP möchten wir erstmal überprüfen, ob das Formular abgesendet wurde. Wenn ja wird der gesendete Input im POST-Kanal einer Variable zugeordnet, in diesem Fall der Variable strLength. Da strLength ein string ist und wir eine Ganzzahl (int) zur Überprüfung brauchen müssen wir die Variable zu einem int umwandeln. Darüberhinaus brauchen wir einen Beispieltext, welchen wir für die Textgenerierung brauchen.

    PHP
    <?php
    
    if(isset($_POST["generateText"])){
    
            $exampleText = "Stef is going and scripting a new Textgenerator for himself. He is doing great Job  He is helping bla bla bla"; 
    
            $strLength = filter_var($_POST["stringLength"], FILTER_SANITIZE_NUMBER_INT);
            $strLength = (int) $strLength; // -> string zu einem int umwandeln
    }

    Nun müssen wir überprüfen ob der Wert der Variable strLength kleiner oder gleich der Anzahl der Zeichen im Beispieltext ist. Dies erfolgt mit dem Operator <=. Wenn dies der Fall ist wird von dem Beispieltext Buchstaben abgetrennt. Darüberhinaus müssen wir überprüfen, ob der Wert von strLength größer als die Anzahl der Zeichen im Beispieltext ist. Dies erfolt mit dem Operator >. Wenn dies der Fall ist werden die noch benötigten Zeichen an den Beispieltext angebunden. Es gibt für das 1ste die Funktion substr() und fürs 2.te die Funtkion str_pad(). Um die ganzen Zeichen des Beispieltextes zu ermitteln verwenden wir die Funktion strlen()

    Nun haben wir die Überprüfung erledigt und der fertige Beispieltext steht nun in der variable newText drin. Im nächsten Schritt überprüfen wird ob diese Variable auch vorhanden ist und wenn ja lassen wir sie in einem article augeben.

    PHP
    <article id="showText" placeholder="Generate Text...." readonly>
                    <?php
                        if(isset($newText)){
                            echo $newText;
                        }
                    ?>
    
    
                </article>

    Nun kommen wir dazu, wie man den Text in die Zwischenablage kopiert. Dazu verwende ich clipboard.js. Wir müssen die Klasse instanzieren. Dann geben wir dem button ein data-clipboard-text attribut in dem wird nun die Variable newText ausgegebn. Darüberhinaus prüfen wir dann ob der Vorgang erfolgreich war.

    HTML
    <button name="safeText" id="safeButton" data-clipboard-text="<?php if(isset($newText)) echo $newText; ?>">Text in Zwischenablage kopieren</button>

    Nun ist der Textgenerator für einfache Zwecke schon fertig.

    Hier ist nochmal der gesamte Code zur Veranschaulichung:

    Grüße,

    Stef

    Hey,


    das ist ganz egal. Wenn der Seitenbetreiber es nicht möchte und es herausbekommt das jemand den Inhalt seiner Seite versucht zu "klauen/dublizieren" dann ist was los. Ich würde dies mir nicht gefallen lassen.

    Betreiber die es zulassen, bieten eine API an mit der man an die Daten rankommt. Dann suche dir eine API welche die Daten die du suchst hat. Dann kannst du diese auslesen und dann hast du auch die aktuellen Daten.