AJAX – die neusten Beiträge

Meinung des Tages: Ausschreitungen nach Fußballspiel in Amsterdam – welche Konsequenzen sollten folgen?

Ein Aufschrei in den sozialen Medien – Videos von Schlägereien, Einbrüchen und anderer massiver Gewalt auf den Straßen Amsterdams versetzen die Menschen in Angst. Der Grund: Ausschreitungen zwischen propalästinischen Demonstranten und israelischen Fans nach einen Fußballspiel.

Das ist passiert

Das bekannte Team, ein niederländischer Erstligist, Ajax Amsterdam spielte in der Europa League gegen Maccabi Tel Aviv. Danach kam es zu gewaltsamen Zusammenstößen und Ausschreitungen zwischen propalästinensischen Demonstranten und israelischen Fans. In mehrerer Orten rund um das Amsterdamer Zentrum kam es nach Angaben der Polizei zu Unruhen. Allerdings äußerte sich die Polizei nicht dazu, von welcher Seite aus letztlich die Gewalt ausging. Insgesamt gab es 57 Festnahmen.

Weitere Informationen

Der Sender AT5 gibt an, dass es im Stadtzentrum zu Konfrontationen zwischen propalästinensischen Jugendlichen und Maccabi-Anhängern kam. Demonstranten sollen Maccabi-Fans mit Stühlen beworfen haben. Einsatzkräfte sollen die Israelis dann abgeschirmt und in deren Hotels begleitet haben.

Fans, die sich der israelischen Zeitung Ha’aretz gegenüber äußerten gaben an, dass es sich in einigen Fällen wohl um geplante Angriffe gehandelt habe. So sollen die Angreifer Israelis an mehreren Stellen in der Stadt aufgelauert haben, als diese mit dem Zug zurückfuhren.

Israel schickt Rettungsflieger für Fans

Netanjahu bezeichnet das Geschehen als „schrecklichen Vorfall“ und forderte die niederländische Regierung auf, schnell gegen die Randalierenden vorzugehen und die Sicherheit der Bürger zu gewährleisten.

Der niederländische Ministerpräsident, Dick Schoff, spricht von inakzeptablen antisemitischen Angriffen.

Steffen Seibert, der deutsche Botschafter in Israel, erklärte, es würde ihn als Europäer beschämen, derartige Szenen in einer der eigenen großen Städte zu sehen.

Am Freitagmorgen ordnete der israelische Ministerpräsident laut Nachrichtenagentur AFP an, dass zwei Flugzeuge nach Amsterdam geschickt werden, sodass die Fans in Sicherheit in ihre Heimat gebracht werden können.

Unsere Fragen an Euch:

  • Was denkt Ihr über die Geschehnisse?
  • Welche Konsequenzen sollten darauf folgen?
  • Kann/Muss künftig auf Großveranstaltungen dieser Art womöglich aufgrund politischer Hintergründe verzichtet werden?
  • Fürchtet Ihr, dass derartige Ausschreitungen auch bald im DACH-Raum stattfinden könnten?

Wir freuen uns auf Eure Antworten – bitte bleibt aber auch bei diesem emotional sehr aufgeladenen Thema sachlich und haltet Euch an unsere Netiquette.

Viele Grüße
Euer gutefrage Team 

Bild zum Beitrag
Religion, Islam, Fußball, Geschichte, Polizei, Krieg, Demonstration, Gewalt, Niederlande, AJAX, Botschaft, Europa League, Gesellschaft, Gewaltprävention, Israel, Juden, Judentum, Konflikt, Menschenrechte, Naher Osten, Nahostkonflikt, Palästina, Ajax Amsterdam, Palästinenser, Unruhen, Meinung des Tages

Login verbessern mit AJAX/PHP?

Ich habe ein Login gebaut. Jenen sollen wir nun ausschließlich mit AJAX verbessern. (Wir dürfen dabei nicht sowas wie JQUERY verwenden. Das wissen fehlt uns aber dafür an meisten. Vielleicht kann jemand mir dabei helfen mein Login umzubauen und zu verstehen was ich mache.

Mein Login-Quelltext:

<?php
$pdo = new PDO('mysql:host=localhost;dbname=phptest', 'root', '');

if(isset($_GET['login'])) {
  $email = $_POST['Email'];
  $passwort = $_POST['Passwort'];

  $statement = $pdo->prepare("SELECT * FROM login WHERE Email = :Email");
  $result = $statement->execute(array('Email' => $email));
  $user = $statement->fetch();

  //Überprüfung des Passworts
  if ($user !== false && password_verify($passwort, $user['Passwort'])) {
    $_SESSION['userid'] = $user['ID'];
    die('Login erfolgreich. Weiter zu <a href="index.php?site=Startseite">internen Bereich</a>');
  } else {
    $errorMessage = "E-Mail oder Passwort war ungültig<br>";
  }

}
?>
<!DOCTYPE html>
<html>
<head>
  <title>Login</title>
</head>
<body>

<?php
if(isset($errorMessage)) {
  echo $errorMessage;
}
?>

<form action="Loginseite.php?login=1" method="post">
  E-Mail:<br>
  <input type="email" size="40" maxlength="250" name="Email" required><br><br>

  Dein Passwort:<br>
  <input type="password" size="40" maxlength="250" name="Passwort" required><br>

  <input type="submit" value="Login">
</form>
</body>
</html>
Computer, HTML, programmieren, JavaScript, AJAX, PHP, Webdesign

Warum ist $_POST hier leer?

Hi, arbeite gerade an nem Kontaktformular, welches mit JQuery und Ajax gesendet werden soll. Hier der Code:

let form = $(this);
let actionUrl = "assets/php/contact.php";

$.ajax({
    type: "POST",
    url: actionUrl,
    contentType: "application/json",
    data: form.serialize(),
    success: function (backendError) {
        console.log(backendError);
        errorHandler(backendError);
    },
    error: function () {
        console.log("failure");
        alert("Internal Error occured. Please try again later");
    }
});

hier der PHP Code zum senden:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    try {
        $errors = array();
        $name = "";
        $email = "";
        $human = "";
        $message = "";

        if (empty($_POST["name"])) {
            $errors[] = "name";
        } else {
            $name = $_POST["name"];
        }

        if (empty($_POST["email"])) {
            $errors[] = "email";
        } else {
            $email = $_POST["email"];
        }

        if (empty($_POST["human"])) {
            $errors[] = "human";
        }

        if (empty($_POST["message"])) {
            $errors[] = "message";
        } else {
            $message = $_POST["message"];
        }

        if (count($errors) === 0) {
            $to = "my@email.de";
            $subject = "Kontaktformular - " . $name;
            $message = "";
            $additional_headers = array(
                "From" => $email,
                "Reply-To" => $email,
                "X-Mailer" => phpversion()
            );

            mail($to, $subject, $message, $additional_headers);
            $response["error"] = false;
            echo json_encode($response);
            exit;
        } else {
            $response["error"] = $errors;
            echo json_encode($response);
            exit;
        }
    } catch (Exception $exception) {
        // in Log File Time + Error + IP
        exit;
    }
}

mein Problem: das POST Array is leer. Habs mir mal ganz oben ausgeben lassen, und stand nix drin, obwohl jquery die inputfelder per POST an das PHP File sendet. Ich denke, dass ich irgendwas bei der $ajax methode falsch gemacht habe, und es deshalb net funktioniert. bin am verzweifeln :) danke für jede Hilfe!

Computer, HTML, Webseite, programmieren, JavaScript, AJAX, JQuery, PHP

404 Fehler bei AJAX Request: PHP-Datei wird nicht gefunden?

Folgendes:

Der Code, den ich in dieser Frage gepostet habe, habe ich minimal geändert (das PHP jetzt auch in eine separate Datei gepackt) und jetzt scheint der Button zu reagieren. So weit, so gut. Jetzt habe ich mir gedacht, dass es nützlich sein könnte, Fehler in einem alert auszugeben. Da ich nicht wusste, wie ich das anstelle, habe ich auch danach online gesucht und wurde fündig.

Nun zum eigentlichen Problem:

Mir wird ein 404-Fehler zurückgegeben, obwohl die Datei, die im Request angegeben wurde, existiert.

Ich habe auch dazu bereits im Internet nach Beiträgen gesucht und im weitesten Sinn ähnliche Beiträge gefunden. Aber keiner der Tipps, die ich dort gefunden habe, von denen ich der Meinung war, dass sie vielleicht helfen würde, hat etwas gebracht.

In einem der Kommentare (auf bspw. Stackoverflow) hieß es, man solle sich mit Werkzeugen wie Fiddler die Requests ansehen. Das habe ich gemacht, aber wirklich schlau werde ich daraus auch nicht.

Hier das JavaScript des Buttons:

<script>
  $(document).on('click', '#removeButton', function() {
    $.ajax({
      // type: "GET",
      url: "removeProject.php",
      // data: [id: selectedProjectID],
      success: function() {
        alert("Success");
      },
      error: function(jqXHR, textStatus, errorThrown) {
        alert(jqXHR.status);
        alert(textStatus);
        alert(errorThrown);
      } // error
    }) // ajax
  }); // function
</script>

Hier der Inhalt der removeProject.php-Datei:

<?php
  require_once '../sqlGenerator.php';

  $dbh = new PDO("mysql:dbname=" . $db . ";host=localhost", $user, $pass);
  $query = "SELECT * FROM TABLE_SELECTED_PROJECT";
  $selectedProjectID = mysql_query($query);

  $sql = "DELETE FROM " . TABLE_PROJECT_NAME . " WHERE " . COL_PROJECT_ID . " = " . $selectedProjectID;

  try {
    $statement = $dbh->prepare($sql);
    $statement->execute();
  }
  catch (PDOException $e) {
    exit("Datenbank-Fehler: " . $e->getMessage());
  } // trycatch
?>

Am URL-Pfad kann es nicht liegen, da habe ich bereits alles Mögliche ausprobiert. Die Dateien befinden sich beide im gleichen Ordner.

Was könnte der Grund sein?

Computer, Technik, JavaScript, AJAX, PHP, Technologie

Like Button implementieren?

Schönen guten Abend allerseits,

Ich arbeite gerade an einer Website.

Auf dieser möchte ich gerne einen Like-Button implementieren und nicht auf irgendein fertiges Produkt zugreifen.

Ich frage mich bloß, wie ich das am geschicktesten anstellen kann.

Meine Herangehensweise:

Ich persönlich habe mir eine MySQL Tabelle namens likes erstellt, mit deren Hilfe ich ein erneutes Liken eines Nutzers (der den Like-Button schon einmal gedrückt hat) verhindern möchte.

Zur Identifizierung des Nutzers würde ich entweder eine Session-ID oder die IP-Adresse des Nutzers in der Tabelle speichern.

Das Problem bei der Session-ID ist, dass das Cookie nach einiger Zeit "verfällt" bzw. bei der nächsten Löschung der Cookies nicht mehr vorhanden ist und erneutes liken wieder möglich ist. Zudem ist das erneute Liken in einem anderen Browser möglich.

Das Problem bei der IP-Adresse ist, dass ich nicht weiß, ob das ganze legal ist und erneutes Liken spätestens bei einer neuen IP-Adresse möglich ist.

Beim Laden der Seite stelle ich dann eine Datenbank-Abfrage mittels PHP an die Tabelle, in dem ich nach der entsprechenden Session-ID bzw. IP-Adresse suche.

Das sieht bei mir dann (mittels PDO) etwa so aus:

$stmt = $database->prepare('SELECT * FROM `likes` WHERE `sessid` = :sessid');
$stmt->execute(['sessid' => session_id()]);
$like = $stmt->fetch();

Im späteren Programmablauf wird dann überprüft, ob $like nicht "leer" ist und dementsprechend der Like-Button ($like ist "leer") oder nur die Likes ($like ist nicht "leer") ausgegeben werden.

Wenn der Like-Button nun schließlich gedrückt wurde soll eine asynchrone Anfrage an ein PHP Skript mittels AJAX gestellt werden. Im PHP Skript selbst werden entsprechende Likes in einer anderen Tabelle um 1 hochgezählt. Das PHP Skript selbst stellt dann noch eine Datenbank-Abfrage, in dem die aktuellen Likes aus der Tabelle geholt werden. Diese werden dann auch vom PHP Skript an den Client weitergegeben und im HTML-Dokument mittels JavaScript aktualisiert.

Die ganze Sache kommt mir nur nicht sonderlich elegant vor. Darunter auch die bei jedem Seitenaufruf überprüfende Abfrage, ob von diesem Nutzer bereits geliked wurde.

Zudem frage ich mich immer noch, ob ich mit der IP-Adresse oder einer Session-ID arbeiten soll - hat ja beides Vor- und Nachteile.

Was haltet ihr von meinem Ansatz? Habt ihr selbst Vorschläge wie oder was man besser machen könnte?

Danke im Voraus!

LG

Webseite, programmieren, AJAX, Informatik, MySQL, implementierung, Likes

[jQuery AJAX] echo mit HTML Content von PHP Datei ausgeben?

Okay, die Frage ist evtl ein bisschen kompliziert. Deshalb beschreibe ich das anhand eines Beispiels. Zuerst meine Dateien:

PHP (submit.php)

<?php
 $mail = $_GET['mail']; if(filter_var($mail, FILTER_VALIDATE_EMAIL)) { echo "<div role=\"alert\">Ungültige E-Mail</div>"; } else { echo "<div role=\"alert\">Gültige E-Mail</div>"; }

?>

HTML (index.html)

<form id="myForm">
  <input type="email" name="mail" id="mail" placeholder="E-Mail Adresse"/>
  <input type="submit" name="check" id="check" value="Senden"/>
</form>
<script src="http://code.jquery.com/jquery-1.9.1.js"/> <script> $(function () { $('form').on('submit', function (e) { e.preventDefault(); $.ajax({ type: 'post', url: 'submit.php', data: $('form').serialize(),   success: function() {    //echo "Gültige E-Mail    } error: function() { //echo "Ungültige E-Mail" } }); }); }); </script>

Beschreibung:

Sobald das Formular abgesendet wurde, wird die E-Mail an die submit.php gesendet. In dieser wird überprüft, ob die E-Mail gültig ist und gibt dann das Ergebnis in Form von HTML-Code zurück.

Die Lösung mit alert will ich nicht. Es soll unterhalb der Form das Ergebnis stehen.

Wenn ich mit PHP

echo "<div role=\"alert\">Gültige E-Mail</div>";

ausgebe, dann steht das auch direkt in HTML dort (also nicht als PlainText).

Wie ist es also möglich, das Ergebnis der submit.php zu bekommen und in der index.html auszugeben?

Vielen Dank im Voraus!

Computer, Technik, HTML, Webseite, programmieren, JavaScript, AJAX, JQuery, PHP, Technologie

json Daten in JavaScript auslesen und an html Elemente weiterleiten?

Hi,

mehr schlecht als recht arbeite ich mich gerade durch json und habe tatsächlich mittlerweile herausfunden, dass man zum Laden einer json-Datei ohne jQuery folgenden Ansatz zu brauchen scheint:

function loadJSON(callback) {var xobj = new XMLHttpRequest();
xobj.overrideMimeType("application/json"); xobj.open('GET', 'data.json', true); // Replace 'my_data' with the path to your file xobj.onreadystatechange = function () { if (xobj.readyState == 4 && xobj.status == "200") { // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode callback(xobj.responseText); } }; xobj.send(null);

}

Wie ich damit dann allerdings Objekte und values auslese und weiterleite, ist mir schleierhaft.

Hier ist erst einmal der json Code

{"employees":
    [
        {
            "firstName": "John", 
            "lastName": "Doe"
        },
        {
            "firstName":"Anna", 
            "lastName":"Smith"
        },
        {
            "firstName":"Peter", 
            "lastName":"Jones"
        }
    ]
}

Meine Idee war ja etwas wie document.getElementbyID oder halt byClassName, um den Content im DOM zu verteilen. Aber irgendwas scheint mir zu fehlen.

Pseudocode mäßig wäre halt sowas schön: getElementbyID('title').data(firstName[0]) Irgendwie so halt ...

Was ich bisher gefunden habe, waren nur Kurzeinleitungen, wie ich den Code in der Konsole ausspucke, js Arrays erstelle (warum auch immer die Leute das in einem json Tutorial als Lösung anbieten) oder html Elemente in JavaScript mit dem json Inhalt erstelle. Wie gesagt, würde ich jedoch gerne den json Inhalt an meine bereits existierenden html Elemente weitergeben.

ps. Wenn ihr dazu eine jade-Lösung habt, wäre das natürlich noch um so prickelnder.

HTML, programmieren, JavaScript, AJAX, PHP, JSON

Meistgelesene Beiträge zum Thema AJAX