Wie vergleiche ich PHP Variablen mit unterschiedlicher Codierung?

Hallo liebe Community.

Ich suche die Lösung für ein Problem bei der Programmierung mit PHP und Variablen.

Ich möchte gerne einen Wert, den ich über mysqli abgerufen habe mit einer Variable aus einem Array vergleichen.

Das Problem dabei ist, dass bei Umlauten und Sonderzeichen das Programm nicht mitmacht. Die beiden verglichenen Werte müssten gleich sein, werden aber nicht als gleich erkannt.

Hier mein Beispiel:

Datenbank:

id --- vorname --- nachname

1 --- Sabrina --- Müller

PHP:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  

(Hier ein PHP Abschnitt zur Eintragung in die Datenbank, also demnach auch in UTF8 codiert)

$test = array("Sabrina","M&uuml;ller");

$result = mysqli_query($datenbank,"SELECT vorname, nachname FROM telefonbuch WHERE id='1'");

while($row=mysqli_fetch_array($result,MYSQLI_ASSOC)) {

if($row['nachname']==$test[1])

echo "Erfolg";

else

echo "Kein Erfolg";

}

Ergebnis:

Wenn ich die Seite so aufrufe, kommt "Kein Erfolg".

Die Datenbank umfasst mehr Einträge, also alles andere ist richtig programmiert. Alles hat "Erfolg", nur die Einträge mit ä,ö,ü,ß,@, etc. haben keinen Erfolg.

Auch if($row['nachname']=='Müller') → Kein Erfolg

Auch if($row['nachname']=='M&uuml;ller') → Kein Erfolg

Auch wenn ich beide Werte vorher in Variablen packe → Kein Erfolg

Ein Test mit:

echo mb_detect_encoding($str)

Ergibt bei:

$row['nachname'] → UTF-8

$test[1] → ASCII

Wieso kann ich diese beiden Variablen nicht miteinander vergleichen und was kann ich tun, um dieses Problem mit den Umlauten zu lösen?

Vielen Dank für jede Hilfe.

Liebe Grüße =)

HTML, Webseite, Datenbank, MySQL, PHP
Spotify API Get Methode Blocked?

Moin, hab mal ne Frage, da ich es einfach nicht hin bekomme. Ich habe vor sowas wie eine Musikwunsch Seite für ein Schul Projekt zu coden. Dafür will ich die Spotify API nutzen, damit man über diese Songs suchen kann. Es kommt aber immer in der Netzwerkanalyse der Fehler NS_BINDING_ABORTED, obwohl mein Access Token korrekt ist. Hier ist meine script.js

const API_ENDPOINT = "https://api.spotify.com/v1/search";
const ACCESS_TOKEN = "your_access_token";

function searchSong() {
    let songName = document.getElementById("song-name").value;

    fetch(`${API_ENDPOINT}?q=${songName}&type=track`, {
        headers: {
            "Authorization": `Bearer ${ACCESS_TOKEN}`
        }
    })
    .then(response => response.json())
    .then(data => {
        let songResults = data.tracks.items;

        if (songResults.length > 0) {
            let songList = document.createElement("ul");

            for (let i = 0; i < songResults.length; i++) {
                let song = songResults[i];

                let songItem = document.createElement("li");
                songItem.innerHTML = `<a href="javascript:void(0)" onclick="selectSong('${song.id}')">${song.name} by ${song.artists[0].name}</a>`;

                songList.appendChild(songItem);
            }

            let songResultsDiv = document.getElementById("song-results");
            songResultsDiv.innerHTML = "";
            songResultsDiv.appendChild(songList);
        } else {
            let songResultsDiv = document.getElementById("song-results");
            songResultsDiv.innerHTML = "Sorry, no songs found.";
        }
    })
    .catch(error => {
        const errorMessage = document.getElementById("error-message");
        errorMessage.innerText = error;
    });
}

function selectSong(songId) {
    fetch("db.php", {
        method: "POST",
        body: JSON.stringify({songId: songId}),
        headers: {
            "Content-Type": "application/json"
        }
    })
    .then(response => response.json())
    .then(data => {
        if (data.success) {
            alert("Song added to the list!");
        } else {
            alert("Error adding song to the list.");
        }
    })
    .catch(error => {
        console.log(error);
    });
}

Hier ist dann noch die Index.html:

 <!DOCTYPE html>
<html>
<head>
    <title>DJ Song Request</title>
    <script src="script.js"></script>
</head>
<body>
    <h1>DJ Song Request</h1>
    <form>
        <label for="song-name">Enter song name:</label>
        <input type="text" id="song-name" name="song-name">
        <button type="submit" onclick="searchSong()">Search</button>
    </form>
    <div id="song-results"></div>
</body>
</html>

Vielleicht kann mir ja jemand helfen, da ich echt nicht mehr weiter weiß, im vorraus schon mal Vielen Dank ;D

HTML, Webseite, JavaScript, PHP, Spotify

Meistgelesene Beiträge zum Thema PHP