Beiträge von selection

    Welche ID willst Du denn haben?

    Grundsätzlich kannst Du Dich an das submit-Event hängen, das wird immer vom Formular ausgelöst und nicht vom Button o.a.

    Über die Form kannst Du dann auf die Childs zugreifen.

    Die CommentID möchte ich haben. In meinem Fall wäre das die 5.

    Spoiler anzeigen
    HTML
    <input type="hidden" class="comment_send_id" value="<?= $rowsafe['beichtid']; ?>">

    Wo soll ich denn das Submit-Event anhängen? An die Form?

    hi,

    Ich habe 5 Einträge und in jedem Eintrag kann man ein Kommentar abgeben.

    Ich hab es so eingestellt das kein Button gibt sondern das man mit der ENTER Taste den Kommentar absendet.

    So jetzt wollte ich die hidden-id herausfinden.

    bsp:

    Spoiler anzeigen
    HTML
    <form id="form-<?= $rowsafe['beichtid']; ?>" class="formarea" method="POST">
                <textarea id="send_comment" autocomplete="off" autocorrect="off" onkeypress="return enter(event);" placeholder="Kommentieren... (Mit Enter absenden)" data="<?= $rowsafe['beichtid']; ?>"></textarea>
                 <input type="hidden" class="comment_send_id" value="<?= $rowsafe['beichtid']; ?>">
         </form>

    JS:

    Spoiler anzeigen
    JavaScript
    function enter(event) {
             if(event.keyCode == 13) {
                 var value = $(this).find('.comment_send_id').attr('value'); 
                 alert(value);
                $('.formarea')[0].reset();
               return false;
              }
          }

    Ich hab das sonst über ein Button gemacht, und dann die ID herausgefunden. Da ich jetzt per ENTER den Button ersetzt habe , fällt mir keine Idee ein wie ich jetzt die ID herausfinde..

    bedanke mich für jede Antwort & Hilfe.

    lg

    Tag,

    kann man das irgendwie machen, dass sich die Textarea box sich automatisch bis 100px vergrößert sollte man ein Text schreiben, dass man auch den ganzen Text halt sieht. Sonst kennt man das ja z.b das overflow-y (scroll) angewendet wird und den obigen Text nicht mehr sehen kann wie im zweiten Teil meines Videos.

    Video: Die erstel Stelle zeigt wie ich es gerne hätte, die zweite Stelle zeigt wie es zurzeit bei mir ist.

    Spoiler anzeigen

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Code:

    HTML:

    Spoiler anzeigen
    Code
    <textarea id="send_comment" onPaste="" autocomplete="off" autocorrect="off" onkeypress="return enter(event);" placeholder="Kommentieren... (Mit Enter absenden)"></textarea>

    CSS:

    Spoiler anzeigen

    Danke erstmal für die Info :)

    Nur kleine Frage:

    Wie soll das denn gehen das, wenn User 1 den User 5 folgt, dass gleichzeitig User 5 den User 1 folgt (bzw befreundet sind).

    Bei mir ist es ja so: User 1 folgt User 5.

    Dies wird so in die Datenbank eingetragen:

    id | user_id | follow_id | date

    1 | 1 | 5 | ...

    (user_id) ist der Inviter bzw der den "Button" folgen jetzt geklickt hat und den jenigen Folgen möchte, und Follow_id ist da welche Person er folgt (sozusagen der Accepter).

    Wenn User 5 jetzt User 1 folgt, dann sieht das halt andersrum aus.

    id | user_id | follow_id | date

    1 | 5 | 1 | ...

    Deswegen verstehe ich nicht wieso jetzt wenn User 1 den User 5 folgt, dass User 5 automatisch mit User1 befreundet ist. bzw den auch sozusagen folgt.

    Hi danke auch für die Info,

    wozu aber eine zweite Tabelle?

    Ich hab doch bereits eine.

    meine Tabelle sieht so aus , hab vergessen die Spalte "Process" mitzuschreiben.

    id | user_id | follow_id | process | date

    Process ist immer auf 1, sollte der User Privat sein ist process auf 0 und wird erst auf 1 gestellt, wenn der User es angenommen hat.

    Hi,

    ich brauche mal wirklich Hilfe mit meinem SQL Statement. Ich wollte User anzeigen, wo z.b steht der User hat von meiner Freundesliste 3 gemeinsame Freunde.

    Kennt ihr bestimmt aus Facebook/Instagram, dass da steht:

    Max Mustermann

    3 gemeinsame Freunde

    Wie finde ich die 3 gemeinsame freunde in einem SQL Statement heraus bzw wie sollte der SQL Code aussehen? Hab ganze zeit ausprobiert bekomme das aber nicht hin, hab eine richtige Blockade vor meinem Kopf. Komme einfach nicht weiter.

    Hab halt 2 Tabellen.

    1. User

    2. Follow

    Spoiler anzeigen

    Das wäre z.b um alle meine Follower anzeigen zu lassen.

    Aber müsste man nicht um gemeinsame Freunde anzeigen zu lassen iwie prüfen wo meine Freunde == seine freunde Abboniert hat oder so? Das macht mir richtig kopfschmerzen komme gar nicht mehr mit. Weiß eventuell einer einen Weg?

    Tag,

    ich lasse z.b 5 Kommentare anzeigen und unten ist halt noch ein button wo steht: Weitere Kommentare anzeigen. Sobald ich auf "Weitere Kommentare anzeigen" klicke, soll er per Append Kommentare zeigen. Hat jemand ne Ahnung wie das per Append funktioniert? Ich weiß halt wie man es ohne Append macht.

    Bei mir sieht es z.b zurzeit so aus:

    Kurz & knapp gezeigt jetzt:

    HTML:

    index.php

    Spoiler anzeigen
    Code
    HTML
    <form class="comment-form">
    
    <button type="submit" class="show_comments first-comment-<?= $row['beichtid']" value="<?= $row['beichtid']">Kommentare anzeigen</button>
    
    <p><input type="hidden" name="beicht-comment-id" value="<?= $row['beichtid']"></p>                    
    
    <p><input type="hidden" name="counter counter-<?= $row['beichtid']" class="counter" value="5"></p>
    </form>

    Javascript:

    index.php

    Spoiler anzeigen

    comments.php

    Spoiler anzeigen

    Guten Morgen,

    selection : Wie ich sehe hast du das Attribut "method" vergessen. Wenn du die Methode nicht auf POST setzt ist diese automatisch GET und darum funktioniert der Jquery Code auch nicht. Denn da gibst du als Methode POST an.


    Grüße,

    Stef

    Sobald ich " method="POST" " verwende, passiert immer noch dasselbe.

    Ich vermute das wird nicht übertragen. Befindet sich der Button evtl. nicht in der <form>?

    Kann man aber schwer was zu sagen, ohne das gesamte Formular zu sehen

    Ja es befindet sich in der Form^^

    Spoiler anzeigen
    Code
    <form id="bookmark-form">
    <button type="button" name="delete_bookmark" onclick="document.getElementById('bookmark-info-<?= $rowsafe['beichtid']; ?>').style.display='block'" class="delete-bookmark"><i class="fas fa-bookmark"></i></button>
    </form>

    Super hat geklappt. Weiß jemand noch zufällig warum kein "isset" funktioniert, wenn ich Ajax Post/Get verwende?

    Er zeigt mir immer undefined delete_bookmark an.


    HTML:

    Spoiler anzeigen
    Code
    <button type="button" name="delete_bookmark" onclick="document.getElementById('bookmark-info-<?= $rowsafe['beichtid']; ?>').style.display='block'" class="delete-bookmark"><i class="fas fa-bookmark"></i></button>

    Javascript:

    Spoiler anzeigen

    delete-bookmark-statistic.php

    Spoiler anzeigen

    Tag,

    wieso zeigt er mir den Value vom A-Tag nicht an? Er zeigt mir einfach ein leeres Feld an wenn ich Alert(value) schreibe.

    HTML

    Spoiler anzeigen
    PHP
    <a href="#" value="<?php echo $rowsafe['beichtid']; ?>" class="like-b is_like"><i class="fas fa-heart"></i></a>

    Javascript:

    Spoiler anzeigen
    Code
    $('.like-b').on('click', likebeichte)
    
    function likebeichte(e) {
                    e.preventDefault()
        
                    var value = $(this).val()
                    
                    alert(value)
                
                }

    Ok super das Prinzip hab ich jetzt verstanden. Jedoch zeigt er mir immer Invalid CSRF Token an.

    Hab 2 Varianten ausprobiert:

    Connect.php

    Spoiler anzeigen
    Code
    --SERVERDATEN
    
    if (empty($_SESSION['csrf_token'])) {
        $_SESSION['csrf_token'] = bin2hex(random_bytes(16));
      } else {
        if (empty($_POST['csrf_token']) || !hash_equals($_SESSION['csrf_token'], $_POST['csrf_token'])) {
          die('Invalid CSRF Token!');
        }
      }
    }

    Index.php

    Spoiler anzeigen
    PHP
    <form name="theform" id="suchform">
                <p><input type="text" name="find_person" placeholder="Person Suchen" tabindex="1" class="search_btn"></p>
                <p><input type="hidden" name="token" value="<?php echo $_SESSION['csrf_token']; ?>"></p>
            </form>

    Mit dieser Variante komm ich nichtmal auf meine Seite der beendet sofort alles und sagt ungültiger Token.


    Variante 2:

    Connect.php

    Spoiler anzeigen
    Code
    --SERVERDATEN
    
    $_SESSION['csrf_token'] = bin2hex(random_bytes(16));

    show_user.php

    Spoiler anzeigen

    So zeigt er mir wie im video jedes mal ungültiger Token

    connect.php

    Spoiler anzeigen

    index.php

    Spoiler anzeigen

    show_user.php

    Spoiler anzeigen

    Ich habe jetzt paar Funktionen weggelassen weil sonst alles zu lang und übersichtlich wäre. Sind ja auch egal, es geht ja auch eig nur um den obigen SQL Code denk ich mal. Danke für die Hilfe möchte dir jetzt nicht große Umstände machen

    Was genau ist Dir neu dabei? Ein Ajax-Request ist nichts anderes, wie ein "normaler" Request, nur dass er asynchron läuft, also im Hintergrund. Ein HTTP-Request bleibt es dennoch immer.

    Hab das dann falsch verstanden sorry.

    Aber was ist denn jetzt in meinem Skript falsch ? bzw wie sollte es aussehen dass er den Token jedes mal "übernimmt"

    Spoiler anzeigen

    OK, aber warum mit JS?

    Weil es ja mit PHP nicht klappt bei mir, da steht ja immer ungültiger Token.


    Über Ajax wird die Session gehalten, bzw. bleibt diese bekannt.

    Das Vorhaben wird i.d.R. eigentlich alternativ zu Ajax mit einem lokalen JS-Array umgesetzt.

    Bei der Variante wird halt in dem Array nach Treffern gesucht.

    Die Ajax-Variante ist natürlich aber auch möglich. Man muss dann nur bedenken, dass für jede Treffersuche ein HTTP Request durchgeführt wird.

    Aber ein session_start() in der Ziel-PHP-Datei des Ajax-Request erkennt die Session und verfügt damit auch über alle darin enthaltenen Werte.

    Ich habe in der Ziel-PHP Datei "session_start();" angewendet. Aber das mit dem HTTP-Request ist mir jetzt neu.

    selection Erklär bitte mal genauer, was du vorhast. Sehe aktuell noch nicht wirklich den Sinn hinter deinem Vorhaben.

    https://www.php-einfach.de/experte/php-si…t-forgery-csrf/

    Dieses Verfahren in Javascript. Soll halt ein CSRF Schutz sein sobald man das POST-Verfahren anwendet. (Oder halt das GET verfahren)

    Ich könnte es so wie Basti es beschrieben hat machen, problem seht ihr aber dann hier im Video:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Zu meinem Skript im Video:

    Bei jedem eingegebenen Buchstaben zeigt er mir alle User an mit den folgenden Suchbegriff den ich eintippe.

    Wenn ich jetzt ein Buchstabe eingebe erscheint ja das Post-Verfahren. Sollte ich jedoch einen weiteren Buchstaben eingeben steht da ungültiger Token. Wenn ich es z.b wie oben mache mit einem INSERT, dann passiert das gleiche.


    token.php

    Spoiler anzeigen

    Data.php

    Spoiler anzeigen
    PHP
    <?php
    $stmt = $pdo->prepare("INSERT INTO user (name) VALUES (:name);");
    $stmt->BindParam(':name', $_POST['name']);
    if(!$stmt->execute()) {
        print_r($stmt->errorInfo());
    } else {
    echo 'Name hinzugefügt';
    }   
    ?>

    Index.php

    Spoiler anzeigen