jQuery, ajax $_GET / $_POST an Php Senden

  • JavaScript

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von seby1302.

    jQuery, ajax $_GET / $_POST an Php Senden

    Hallo ich versuche mit jQuery, ajax Einem GET oder Gerne auch POST an PHP zu senden.
    Leider Kommt aber nix an.
    Button Chicken und Alert natürlich schon, nur kein GET oder POST.

    Was mache ich falsch?! :rolleyes:
    liebe grüße.

    HTML-Quellcode

    1. jQuery('#active').click(()=>{
    2. $.ajax({
    3. type: "GET",
    4. url: 'index.php',
    5. data: {active: 'active'},
    6. success: function(data){
    7. // alert(data);
    8. }
    9. });
    10. })



    PHP-Quellcode

    1. $active = $_GET['active'];
    2. <?php if(isset($_GET['active'])){
    3. echo 'aktivated';
    4. }?>
    Ist das denn dein tatsächlicher PHP-Code? Weil die erste Zeile außerhalb <?php steht. Das kann natürlich nicht gehen.

    Falls das JS das Problem ist: Heißt die Datei auch index.php? Mal in die Browserkonsole geschaut, was gesendet und empfangen wird?

    Möglicherweise muss man beim GET die Parameter an die URL anhängen, also index.php?param=wert.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Erstmal danke für deine schnelle Antwort.

    Den Php teil Außerhalb, ist nur ein Fehler was mir hier passiert ist, gehört natürlich im <?php mit rein..

    Das mit dem Index.Php passt schon, probiert habe ich auch # selbe Ergebnisse.

    Er zeigt mir in der Console an.

    Quellcode

    1. main.js?attr=CVzh9I575jK8cNqzOqP9CLaqDUqnMJoJVu5bf7_ep_yv-tlruCaiUItkl9BhgMUKH05K5CWvpBsy05PgObEKOQ:2776 XHR finished loading: GET "http://test/index.php?active=active".


    Demnach wurde der GET gesetzte index.php?active=active

    Möglicherweise muss man beim GET die Parameter an die URL anhängen, also index.php?param=wert.

    Ja deshalb Währe mir POST Lieber.

    Ok nun folgendes Gemacht.

    Quellcode

    1. jQuery('#active').click(()=>{
    2. $.ajax({
    3. type: "POST",
    4. url: '#',
    5. data: {name: 'active'},
    6. success: function(data, textStatus, jqXHR) {
    7. console.log(data)
    8. // alert(data);
    9. }
    10. });
    11. })


    Die Konsole Zeigt an:
    Welcome active

    PHP-Quellcode

    1. <?php
    2. if( $_POST["name"] ) {
    3. $name = $_POST['name'];
    4. echo "Welcome ". $name;
    5. }
    6. ?>


    Allerdings kann ich diesen ohne das Reladen der Seite, weder auswerten noch Anzeigen lasse? ?(
    Problem Liegt also An Php/Html das die... Mal wieder ohne Neu laden nix Auswerten kann?
    Wie kann ich das nun machen?

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „seby1302“ ()

    Hallo,
    wenn du mit POST arbeitest, kommen deine Daten im PHP Inputstream an. Diesen kannst du folgendermaßen abgreifen

    PHP-Quellcode

    1. $data = file_get_contents('php://input');
    2. dd($data);

    Eine Empfehlung von mir: vergiss jQuery und verwende einfach moderne Funktionen von JavaScript. Jeder Browser unterstützt inzwischen die Fetch-API.

    HTML-Quellcode

    1. document.querySelector('#active').addEventListener('click', async () => {
    2. const response = await fetch('index.php', {
    3. method: 'POST',
    4. headers: {
    5. 'Content-Type': 'application/json'
    6. },
    7. body: JSON.stringify({active: 'active'})
    8. });
    9. console.log(response);
    10. });

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ISliceUrPanties“ ()

    Hi,

    also GET und POST sind HTTP-Methoden, so wie z.B. auch DELETE, HEAD, FETCH oder PATCH. Wenn du mit HTML Formularen arbeitest (<form>), werden die entsprechenden Felder (Eingabefelder mit einem name Attribut (und die btw außerdem kein disabled Attribut besitzen)) beim Submit mit GET als request parameter in der URL übermittelt (im "Query String", z.B. https://example.com/?name=John+Doe).
    Wenn POST im Formular festgelegt ist, wird dabei der Content-Type Header automatisch auf "multipart/form-data" gesetzt sodass die Daten serverseitig wie du es bestimmt schon kennst über das superglobale $_POST array ausgelesen werden können.
    Du kannst natürlich genausogut einen raw body senden, zum Beispiel als JSON, also quasi dann {"name":"John Doe"}, und in dem Fall wie von @ISliceUrPanties bereits beschrieben über den php://input wrapper darauf zugreifen und dir die Daten nach Belieben in ein Array parsen oder wasauchimmer damit anstellen.

    Um fit zu werden im Thema Client-(Web-)Serverkommunikation empfehle ich, die Requests im Netzwerktraffic zu öffnen (im Browser F12 drücken und in den Tab "Netzwerkanalyse" reinschauen) um mal zu sehen wie die Daten verarbeitet und an den Server geschickt werden. Außerdem verwende ich gern postman.com/ als Client, sollte bei keinem Web Developer fehlen denke ich.

    Zeugs das vom Client an den Server geschickt wird, sollte niemals direkt ausgegeben werden (XSS Attacken). Bastel dir irgendwo eine Funktion um Strings XSS-safe auf deiner Seite auszugeben:

    PHP-Quellcode

    1. <?php
    2. function e($value) {
    3. return htmlentities($value, ENT_QUOTES, 'utf-8');
    4. }
    5. $name = $_POST['name'] ?? 'Unbekannt';
    6. echo "Welcome " . e($name);


    In deinem JavaScript kannst du dann bei success / complete entsprechend den response entgegennehmen und beispielsweise in einen HTML container laden.


    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Link“ ()

    Man sollte auch nie vergessen, Php Post Requests sind sehr unsicher und vor Man in the Middle Angriffe ausgeliefert. Wenn bei dir die Get Methoden nicht Funktionieren, hast du wohl ein Problem auf deinen Webserver. Du brauchst dafür Mindestens PHP4.0

    Bastle dir mal eine kleine Php

    PHP-Quellcode

    1. <?php
    2. echo 'Hallo ' . htmlspecialchars($_GET["name"]) . '!';
    3. ?>

    Und greif mit einen Webbrowser zu
    example.com/?name=Seby
    Die Antwort sollte dann lauten: Hallo Seby!
    Vielleicht bringt dich das weiter:
    php.net/manual/de/langref.php

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Andy2002“ ()

    @Andy2002 Wie kommst du darauf, dass ein POST in PHP unsicherer ist als ein GET? Ich würde eher sagen, es ist entweder beides gleich unsicher oder das GET ist unsicherer, denn das lässt sich problemlos ändern. Gibt's eine Quelle für deine Aussage? Habe ich noch nie von gehört. Ich nehme eigentlich für fast alles, was gesendet wird, ein POST. Dafür ist es ja da.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hi,

    @Marcus Gräfe @Andy2002 so gesehen ist beides gleichermaßen "unsicher" und beide Daten (request parameter und request data / body) lassen sich auf die gleiche Weise beliebigst manipulieren - aber das ist ja an sich auch kein Problem. Zum einen läuft kaum eine Webseite noch ohne SSL und zum anderen ist ja hauptsächlich die serverseitige Verarbeitung hinsichtlich sicherheitsrelevanter Aspekte maßgeblich. Wird Input aus externer Quelle (also z.B. vom Client gelieferte Daten) vor dem Eintragen in eine Datenbank escaped (prepared Statements erledigen das automatisch, manuelles quoten ist natürlich genauso sicher) und auch vor der Ausgabe entsprechend durch htmlentities durchgejagt, kann schon nicht mehr viel schief gehen.
    Alles unter PHP 7 oder 5.6 ist denke ich nahezu gänzlich irrelevant und keine weitere Berücksichtigung wert - wenn man sowas noch laufen hat, hat man eh ganz andere Probleme ;)

    Das einzig problematische das mir gerade einfällt wenn man Daten im Query-String über die URL transportiert, ist zum einen die Sichtbarkeit (Werte in der URL werden somit in der Browser-History oder bei Weitergabe der URL in der Adresszeile mit übergeben und angezeigt). Außerdem kann es eine potenzielle Schwachstelle darstellen für Browser in denen Cookies deaktiviert sind, sodass die PHPSESSID infolgedessen gezwungenermaßen über alle Requests hinweg im Query-String mitgeschleift wird. Und nur als Beispiel, niemand möchte gern seine Session ID versehentlich bei Besuch einer Webseite über den HTTP_REFERER mit Dritten teilen LUL

    @seby1302 Nochmal zurück zum eigentlich Thema, ich habe dir hier mal ein fiddle hingebastelt, das sollte die grundsätzliche Funktionsweise ganz gut veranschaulichen: jsfiddle.net/pa6qLu7v/


    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von „Link“ ()

    ISliceUrPanties schrieb:

    $data = file_get_contents('php://input');
    dd($data);

    Was ist dd($data); und wie Werte ich das dann aus?

    Link schrieb:



    function e($value) {
    return htmlentities($value, ENT_QUOTES, 'utf-8');
    }

    $name = $_POST['name'] ?? 'Unbekannt';
    echo "Welcome " . e($name);

    Leider Bekomme ich Welcome Unbekannt angezeigt.
    Jedoch in der Console, Welcome active...
    Es hat sich damit also überhaupt nix Verändert.

    Um Auf Nummerischer zu gehen habe ich eine Test.php und eine Test.js gemacht, die wirklich nur diese paar Zeilen enthalten.

    Quellcode

    1. jsfiddle.net/pa6qLu7v/

    Ja schön und gut, der funktioniert bei mir soweit, aber wie binde ich den ein das er mir mein $_Post aktualisiert?
    Wie gesagt Welcome ist unbekannt.
    Und wenn ich es abfrage, kommt immer null.
    z.b...

    Quellcode

    1. $data = file_get_contents('php://input');
    2. if($data=="name=active"){
    3. echo'ja';
    4. }else{
    5. echo'nein';
    6. }

    Joa Im Browser ist nein in der Console ja.....
    Siehe Bild im Anhang...
    P.s Php ist v8
    Bilder
    • Neue Bitmap.jpg

      88,69 kB, 879×457, 120 mal angesehen

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „seby1302“ ()

    Moin,

    Diggi du musst schon auch lesen was da steht, die Fragen die du da stellst sind schon beantwortet worden. Schau mal im Network Tab in den Entwicklertools deines Browsers wie die Daten übertragen werden.

    Nochmal: Wird ein raw body gesendet, kannst du die Daten mit PHP und file_get_contents('php://input') abholen. Wenn ein Formular gesendet wurde (Mit Content-Type "multipart/formdata"), findest du die an den Server übermittelten Daten im $_POST array.

    Am besten du spielst uns mal einen dump aus. Die Funktion dd() ist eine oft-verwendete kleine Funktion um Variablen zu dumpen und das Programm an der Stelle zu beenden (dd kommt von dump-and-die). Du kannst dafür gerne die hier nehmen die ich immer benutze:

    Du kannst noch eine Wrapper-Funktion dazu bauen sodass du eine dd() function hast, so in der Art:

    PHP-Quellcode

    1. /**
    2. * @param ...$data
    3. *
    4. * @return void
    5. */
    6. function dd(...$data){
    7. echo xdump(...$data);
    8. exit();
    9. }


    Die beiden Funktionen kannst du in deiner Anwendung wo auch immer hin platzieren, in eine functions.php oder sowas, hauptsache ist halt dass sie auch eingebunden ist.

    Wie auch immer, jedenfalls kannst du so dann eben mit PHP die Daten ausgeben, am besten so:

    PHP-Quellcode

    1. dd(file_get_contents('php://input'), $_POST);


    Dann wissen wir schonmal, wie die Daten bei dir ankommen. Wär trotzdem nice wenn wir mal den Code sehen könnten den du benutzt um die Daten zu senden.

    Für den Fall dass $_POST leer ist, musst halt schauen dass du den raw body liest und von mir aus kannst du wenn das valides JSON ist dir das auch in ein Array decoden und direkt in $_POST reinwurschten, etwa so:

    PHP-Quellcode

    1. $_POST = $_POST ?: json_decode(file_get_contents('php://input'));




    Link :thumbup:
    Hello World
    verstehe nur Bahnhof :rolleyes:

    Jetzt habe ich die xdump runter geladen und dann so...

    PHP-Quellcode

    1. <?php
    2. Include "xdump.php";
    3. //$data = $_POST ?: json_decode(file_get_contents('php://input'));
    4. //$data = file_get_contents('php://input');
    5. //dd($data);
    6. dd(file_get_contents('php://input'), $_POST);
    7. function dd(...$data){
    8. echo xdump(...$data);
    9. exit();
    10. }


    Er zeigt mir an.
    string(0) (~false)
    array(0) (~false)


    Verwende ich die

    Quellcode

    1. $data = $_POST ?: json_decode(file_get_contents('php://input'));

    Dann..
    null (~false)


    In der Konsole:....
    <!doctype html>
    <html>
    <head>

    </head>
    <body>
    <button type="button" name="Testbutton" id="Testbutton">Test</button>

    <script src="js/jquery.min.js"></script>
    <script src="js/main.js"></script>

    </body>
    </html>


    <div class='xdump xdump-1' style='text-align:left;display:block !important;position:relative !important;clear:both !important;box-sizing:border-box;background-color:#fd9f3e;border:4px solid rgba(255,255,255,0.5);border-radius:5px;padding:12px !important;margin:16px;font-family:Consolas,"Courier New", "Arial", sans-serif !important;font-size:13px;text-transform: none !important;line-height: initial !important;opacity:1.0 !important;float:none;'><div class='xdump-varinfo' style='box-sizing:border-box;background-color:rgba(255,255,255,0.4);border-radius:4px;padding:8px;margin:4px 0;color:rgba(0,0,0,0.72) !important;font-size:14px;'><span style='text-decoration: underline;font-weight:bold;font-family:Consolas,"Courier New", "Arial", sans-serif !important;color:rgba(0,0,0,0.72) !important;'>string</span><sup style='font-family:Calibri, Verdana, Helvetica, Arial, sans-serif !important;padding-left:2px;font-size:11px;'>(11)</sup> <span style='opacity:0.5;color:rgba(0,0,0,0.72) !important;font-weight:normal !important;font-family:Consolas,"Courier New", "Arial", sans-serif !important;font-size:11px;'>(~true)</span></div><pre style='box-sizing:border-box;background-color:rgba(255,255,255,0.96);color:rgba(0,0,0,0.9);padding:8px;margin:8px 0;max-height:512px;overflow:auto;border:none;border-radius:4px;'>name=active</pre><div class='xdump-trace' style='font-family:Consolas,Monospace,"Courier New",Calibri, Verdana, Helvetica, Arial, sans-serif !important;text-align:left;box-sizing:border-box;padding:4px;color:rgba(255,255,255,0.4);font-size:10px;font-weight:normal;font-weight:100;'>#0 /var/www/html/test.php(30): xdump()<br />
    #1 /var/www/html/test.php(27): dd()<br />
    #2 {main}</div></div><div class='xdump xdump-2' style='text-align:left;display:block !important;position:relative !important;clear:both !important;box-sizing:border-box;background-color:#4257b2;border:4px solid rgba(255,255,255,0.5);border-radius:5px;padding:12px !important;margin:16px;font-family:Consolas,"Courier New", "Arial", sans-serif !important;font-size:13px;text-transform: none !important;line-height: initial !important;opacity:1.0 !important;float:none;'><div class='xdump-varinfo' style='box-sizing:border-box;background-color:rgba(255,255,255,0.4);border-radius:4px;padding:8px;margin:4px 0;color:rgba(0,0,0,0.72) !important;font-size:14px;'><span style='text-decoration: underline;font-weight:bold;font-family:Consolas,"Courier New", "Arial", sans-serif !important;color:rgba(0,0,0,0.72) !important;'>array</span><sup style='font-family:Calibri, Verdana, Helvetica, Arial, sans-serif !important;padding-left:2px;font-size:11px;'>(1)</sup> <span style='opacity:0.5;color:rgba(0,0,0,0.72) !important;font-weight:normal !important;font-family:Consolas,"Courier New", "Arial", sans-serif !important;font-size:11px;'>(~true)</span></div><pre style='box-sizing:border-box;background-color:rgba(255,255,255,0.96);color:rgba(0,0,0,0.9);padding:8px;margin:8px 0;max-height:512px;overflow:auto;border:none;border-radius:4px;'>Array
    (
    [name] =&gt; active
    )
    </pre><div class='xdump-trace' style='font-family:Consolas,Monospace,"Courier New",Calibri, Verdana, Helvetica, Arial, sans-serif !important;text-align:left;box-sizing:border-box;padding:4px;color:rgba(255,255,255,0.4);font-size:10px;font-weight:normal;font-weight:100;'>#0 /var/www/html/test.php(30): xdump()<br />
    #1 /var/www/html/test.php(27): dd()<br />
    #2 {main}</div></div>
    main.js?attr=R-BbDeMiMf-qYvnNcrYTAoqCnCiN02G5Hrk72zTAQLLS0t1zvPcfSswG8Z7gV9328fnYlw41_nJmhfyKOF1AIA:2776 XHR finished loading: POST




    Zum Verssenden:

    Quellcode

    1. jQuery('#Testbutton').click(()=>{
    2. $.ajax({
    3. type: "POST",
    4. url: '#',
    5. data: {name: 'active'},
    6. success: function(data, textStatus, jqXHR) {
    7. console.log(data)
    8. // alert(data);
    9. }
    10. });
    11. })


    Oder

    Quellcode

    1. document.querySelector('#Testbutton').addEventListener('click', async () => {
    2. const response = await fetch('#', {
    3. method: 'POST',
    4. headers: {
    5. 'Content-Type': 'application/json'
    6. },
    7. body: JSON.stringify({name: 'active'})
    8. });
    9. console.log(response);
    10. });

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „seby1302“ ()

    @Marcus Gräfe Sorry hab mich da etwas "ungenau" ausgedrückt, es kommt darauf an, was man mit Post oder Get machen möchte.
    https://www.ionos.de/digitalguide/websites/web-entwicklung/get-vs-post/
    Zitat:

    GET für Einstellungen an einer Website (Filter, Sortierungen, Sucheingaben usw.)
    POST für das Übermitteln von Informationen und Daten des Anwenders


    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Andy2002“ ()

    Hi,

    verstehe nur Bahnhof


    naja gut das is dann dein Problem. Du kannst hier nicht im Forum irgendwas fragen und wenn ne Antwort kommt dich dann tot stellen und Gehirn auf Durchzug schalten, ein bissl mitdenken deinerseits darf ich voraussetzen.

    Also für php://input ist ein leerer String Standard wenn keine Daten über den Request Body an den Server gesendet wurden. Und ein leeres Array ist Standard wenn in $_POST nix drin ist. Und wenn für $data = $_POST ?: json_decode(file_get_contents('php://input')); dann NULL raus kommt liegt das daran, dass die an den Server geschickten Daten kein gültiges JSON sind.
    In der Konsole kriegst du ja offenbar ein Array mit ['name'=>'active'], was fehlt dann eigl noch?

    @Andy2002 naja, also das dort beschriebene ist im Kontext von normalen Webanwendungen und -Seiten einfach nur common practice. Davon abgesehen ist grundsätzlich keine der Request Methoden in irgendeiner Hinsicht per se "unsicherer" als eine andere, mit solchen Behauptungen macht man höchstens die Leute verrückt und verbreitet Halbwissen. Daten können in der http-Welt 1) über die URL, 2) als Header-Anweisung oder 3) via Body ausgetauscht werden. Ein Body kann auch bei GET requests übermittelt werden, so what's your point?^^


    Link :thumbup:
    Hello World
    Von dem was @seby1302 postet, glaube ich sein HTML/PHP steht in der gleichen Datei und der Post-Request geht ebenfalls zur selben Seite.
    Das musst du trennen und dann den Rückgabewert im Frontend anzeigen.

    Beispiel:
    index.html - liefert den HTML-Rahmen + JS (zb. include durch script-Tag)
    api.php - dein Endpunkt der nur den/die Werte für deine JS-Calls zurück gibt

    Dein JS Code macht dann den Request zu api.php und fügt das Ergebnis dann ins Frontend ein.

    ---

    Wenn meine Vermutung falsch ist, dann sag uns doch mal in welchen Dateien welche Codeblöcke vorkommen.
    Also Mein Beispiel Im Anhang gestellt, muss leider arbeiten gehen kann erst heute Abend wieder.
    Dann könnt ihr selber testen wenn ihr wollt, und habt ein besseres Überblick über den Code.

    In der Konsole kriegst du ja offenbar ein Array mit ['name'=>'active'], was fehlt dann eigl noch?

    Was soll den da Fehlen?
    Und wieso verarbeitet er das in der Console, aber nicht im Browser wen $_POST Leer ein soll'?
    Für mich sieht es so aus, als würde der Browser den $_POST nicht neu laden, also als würde der nicht erkennen das sich da etwas Verändert hat?
    Kann es sein das ich da eine schleife aufbauen muss um zu überprüfen ob $data ein neuen wert bekommen hat, damit der Browser das verarbeiten kann?
    Nur wie ich das probiert hatte, freezte der Browser und hat nix mehr geladen.

    Ich bedanke mich für alle Beispiele, sehr nett von euch
    Dateien
    • test.rar

      (31,52 kB, 93 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „seby1302“ ()

    Hallo und vielen dank für deine Mühe und Arbeit erst einmal.

    Nun habe ich den getestet und soweit auch verstanden, allerdings Löst es nicht mein Problem.
    Für den Dump ganz nett, soviel hatte ich aber per Console schon herausgefunden, wie die Informationen die dort stehen.
    Oder wen man den Innertext Ändern Möchte....
    <div class='request-target request-target-1'>Testbutton1 Response kommt hier rein</div>


    Allerdings kann ich damit immer noch nicht auswerten ob $_POST['name'] == 'active ist'
    Ich kann zwar das im Html innertext ausgeben lassen, ist aber nicht das was ich möchte.


    Ich Möchte per Ajax/Jquery oder sonstiges, eine Php Funktion ausführen, bei Bereits Geladene Seite.....

    Und genau hier hackt es.
    Eine Schleife läuft bereits beim laden der Seite, und ist dann ja nicht unendlich aktiv.
    Wenn doch Freezt es die Seite und es geht nicht weiter.

    Ich komme also nicht drum Herum die Seite neu zu laden mit dem Neuen $_POST Wert, oder bin ich jetzt komplett verblödet? :whistling:

    Wird also Darauf hinauslaufen das ich ein form aufbauen werde. etwa so...

    Quellcode

    1. <form action="#" method="POST">
    2. <input type="hidden" name="button1" id="button1" value="active"/>
    3. </form>


    Und dann diese per Jq ausführe? oder wiee soll ich das sonst machen.
    Problem ist hier wieder type=hidden wird kein post gesetzt, type=submit schon

    Sonst fehlt mir nur ein das ich den unsichtbar steilen könnte per css.....

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von „seby1302“ ()

    Andy2002 schrieb:

    Sorry hab mich da etwas "ungenau" ausgedrückt, es kommt darauf an, was man mit Post oder Get machen möchte.

    Auch wenn @Link es im Prinzip schon gesagt hat: Mal abgesehen davon, dass das verlinkte Buch von Mitte 2006 ist (in Webjahren quasi Steinzeit), kann ich da nichts von Sicherheitsbedenken speziell bei GET oder POST lesen. SQL Injections sind an vielen Stellen möglich, ich würde nicht sagen, dass das in irgendeiner Form speziell gegen POST (oder GET) spricht. Wie soll man denn auch sonst Daten vom User zum Server bringen? Auch ist für mich eine SQL Injection kein Man-in-the-middle-Angriff. Zudem vermute ich, dass kaum jemand, der sich auskennt, heute noch normale und damit anfällige SQL-Anweisungen benutzt, sondern Prepared Statements (hoffe ich zumindest ;) ).
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    @seby1302

    Nun habe ich den getestet und soweit auch verstanden, allerdings Löst es nicht mein Problem.


    Nein, wenn ich lese was du da jetzt geschrieben hast, hast du offenbar überhaupt nix verstanden.

    Allerdings kann ich damit immer noch nicht auswerten ob $_POST['name'] == 'active ist'


    Na sicher, bei dem jQuery AjAX Request werden die Daten (das Objekt {name:'active'}) als Type application/x-www-form-urlencoded an den Server geschickt und sind im $_POST array verfügbar, schau halt hin:




    In der api.php Datei kannst du ja unten noch deine Bedingungen dazu schreiben. Beispiel:


    PHP-Quellcode

    1. <?php
    2. # Loader einbinden
    3. require_once __DIR__ . '/load.php';
    4. echo 'Request parameter aus der URL:';
    5. echo xdump($_GET);
    6. echo "Inhalt von php://input (request body):";
    7. echo xdump(file_get_contents('php://input'));
    8. echo 'Inhalt von $_POST:';
    9. echo xdump($_POST);
    10. $name = $_POST['name'] ?? null;
    11. if ($name) {
    12. echo "Der Name ist " . e($name);
    13. } else {
    14. echo "Es wurde kein Name übermittelt :(";
    15. }


    Wird also Darauf hinauslaufen das ich ein form aufbauen werde.

    Wie gesagt, dein jQuery Ajax Code übermittelt das Objekt bereits als Formdata (wohingegen die Fetch-Variante einen raw body sendet).

    Ich kann zwar das im Html innertext ausgeben lassen, ist aber nicht das was ich möchte.

    Ja so langsam wird's vielleicht Zeit dass du mal erklärst was genau du überhaupt machen willst.

    Problem ist hier wieder type=hidden wird kein post gesetzt

    Doch, hidden inputs werden ganz normal ebenso an den Server geschickt beim Absenden von Forumularen.

    Eine Schleife läuft bereits beim laden der Seite, und ist dann ja nicht unendlich aktiv.

    Die Schleifengeschichte versteh ich jetzt komplett nicht ?(


    Link :thumbup:
    Hello World
    Dann habe ich es nur zur hälfte Verstanden

    PHP-Quellcode

    1. e($name);...

    Aber ja mit

    PHP-Quellcode

    1. echo "Der Name ist " . $name;

    Funktioniert es.

    Ok cool ich verstehe jetzt auch die andre hälfte, Heißt also das ich die Load.php einbinden muss, damit er das abgreifen kann.

    Nun aber das Problem, weshalb mir auch die Api.php nix bringt.

    Tue ich die anfrage im Index anstelle vom Api.php.
    Erhalte ich als aller erste und dauerhaft

    PHP-Quellcode

    1. echo "Es wurde kein Name übermittelt :(";

    Lasse ich den Else teil weg, habe ich dann eh das Problem wie bislang..
    ABER...

    HTML-Quellcode

    1. <div class='request-target request-target-1'>Testbutton1 Response kommt hier rein</div>

    Den teil Brauche ich nicht....

    wie mache ich dann das mit Php?

    PHP-Quellcode

    1. $namerecieved = 'request-target request-target-1';
    2. If &namerecieved == 'active';{
    3. Echo 'Das ist der ECHO welche die obere IF nicht ausgibt '. $namerecieved;
    4. }


    Denn If($name) Ist im Index.Php trotz Einbindung des Load.Php immer noch nicht auswertbar....

    Ja so langsam wird's vielleicht Zeit dass du mal erklärst was genau du überhaupt machen willst.


    Es Geht darum......
    Ich habe ein Button, der eigentlich ein Label ist.
    Also ohne From ohne <a href..
    Bein klicken wird ein checkbox auf checked gesetzt, und es öffnet sich mein wrapper mit Login/Registrierung etc..

    Ein anklicken des Label soll die

    HTML-Quellcode

    1. <script src="js/scrollReveal.min.js"></script>

    Deaktivieren.
    z.b...

    PHP-Quellcode

    1. <?php If (!$name){ ?>
    2. <script src="js/scrollReveal.min.js"></script>
    3. <?php } ?>


    Wegen der Aufbau, kann ich schlecht Reladen, sonst ist der checkbox wider inaktiv = Login unsichtbar....
    Ich könnte diesem natürlich nachträglich Triggern, aber sieht auch total misst aus etc.....

    Natürlich habe ich es auch schon Per Css Versucht....

    HTML-Quellcode

    1. <script>
    2. window.onload = function(){
    3. $('html, body').css({
    4. overflow: 'hidden'
    5. });
    6. }
    7. </script>


    Da aber der wrapper die ganze zeit Vorhanden(offen im Hintergrund) ist, Ist auch die Ganze zeit der style deaktiviert....
    Bis ich zur eine andre Seite Wechsel natürlich..


    Problem ist hier wieder type=hidden wird kein post gesetzt

    Du meinst nicht eventuell so?
    weil nur hidden macht bei mir nix!

    HTML-Quellcode

    1. <input type="hidden" name="button1" id="button1" value="active"/>
    2. <input type="submit" value="click"/>


    Die Schleifengeschichte versteh ich jetzt komplett nicht


    Ganz einfach kann eine Php schleife suchen? Obwohl die Seite Bereits Komplett Geladen wurde?
    OHNE ein Submit oder <a href auszuführen, eben bei bereits voll geladene Seite?
    Denn ich habe es so Probiert...

    PHP-Quellcode

    1. //er erkennt den Post nicht...
    2. forech($name as $value){
    3. echo '$value';
    4. }
    5. //Schleife läuft fast unendlich, und Browser lädt nix mehr..
    6. while ($name == "active") {
    7. echo 'active';
    8. }


    Lg seby


    EDIT2:
    Ok wohl ehr weniger aber habe es jetzt dennoch hinbekommen.
    Und dein Api werde ich sicherlich noch gebrauchen können.
    Habe jetzt mein checkbox ein Value= $_GET verpasst. und dann immer auswerten so.

    PHP-Quellcode

    1. <ul>
    2. <li><input type="checkbox" id="active" name="active" value="<?php echo $_GET['Login']='true';?>"><label for="active" class="menu-btn"><?php echo $lang['Login']; ?></label>
    3. <?php } ?>
    4. <div class="wrapper">
    5. <?php if($_GET['Login'] =='true' && $_GET['Signup'] !=='true' && !.........
    6. //Css deaktivierstyle
    7. //login Form
    8. <a href="?Signup=true">Signup</a>
    9. <?Php }elseif($_GET['Login'] =='true' && $_GET['Signup'] =='true' && !.........
    10. //Css deaktivierstyle
    11. //Signup Form
    12. <a href="?Opt=true">Password Vergessen</a>
    13. <?Php }elseif($_GET['Login'] =='true' && $_GET['Signup'] !=='true' && $_GET['Opt'] =='true' && !.........
    14. //Css deaktivierstyle
    15. //Opt Form
    16. //etc etc..
    17. </li>
    18. </ul>
    19. </div>


    Vielen dank für deine Arbeit und Aufklärung :thumbup:

    Dieser Beitrag wurde bereits 13 mal editiert, zuletzt von „seby1302“ ()