Einfaches Suchefeld aus Datenbank (html/php)

maechi

Active member
Ich würde gerne ein Suchfeld machen das meine Datenbank nach titel oder Interpret durchsucht. Das ich entweder einen Filmtitel, Musiktitel, Serien titel eingeben kann und dann kommt ein Vorschlag.

Warum markerit er mir das Fettgedrckte?
Denn Rest findet er in Ordnung!
warum das????
was muss ich daran ändern damit er weiß was ich will?(table tag ist schon vor und nach php angefangen und aufgehört!)
Textfeld für Suchen ist auf einer anderen Seite!

Quelltext:

Spoiler:

<?php
$mServer = "localhost";
$mBenutzer = "root";
$mPasswort = "";
$mDatenbank = "provi";

@$dbVerbindung = new mysqli($mServer, $mBenutzer, $mPasswort, $mDatenbank);

if (mysqli_connect_errno() == 0)
{
$mSuche = $_POST["tfSuche"];
$mSQL = "SELECT * FROM musik, serien, spielfilme WHERE musik.titel = $mSuche OR WHERE musik.interpret = $mSuche OR WHERE serien.titel = $mSuche OR WHERE spielfilme.titel = $mSuche OR WHERE spielfilme.interpret = $mSuche;";
$mErgebnis = $dbVerbindung->query($mSQL);


while ($mAktuelles = $mErgebnis->fetch_object())
{
echo " <tr>
<td>$mAktuelles->Titel</td>
<td><video src='$mAktuelles->Pfad' width="300px" height="150px" controls>
<p>Ihr Browser unterstützt leider nicht das HTML5 video tag</p>
</video></td>

</tr>";
}
} else {
echo "<h2>Leider ist kein Zugriff auf die Datenbank möglich</h2>";
}
$dbVerbindung->close();
?>
 
Hallo maechi,

also so ganz habe ich deine Frage leider nicht verstanden. In den Zeilen ist aber was mit den ' und " durcheinander. Da solltest du vielleicht noch mal gucken.

Viele Grüße
Kaffeesuchti
 
durcheinander?

ich möchte ein Suchfeld in welches ich z.b. ein Liedtitel, Filmtitel, Serientitel eingebe und dann eine ausgabe von dem Titel kommt welchen ich eingegeben habe mitsamt dem Pfad bzw. dann dem Stream

da muss doch ein "OR" hin weil ich weiß doch gar nicht ob es ein Musiktitel ist ein Filmtitel oder ein Serietitel ist!
Deshalb kann da kein "AND" hinkommen!
 
Er meint die doppelten Anführungszeichen beim width und height Attribut. Sollte dir das nicht deine tolle PHP IDE direkt anzeigen?

Abgesehen davon ist der Code natürlich ein Musterbeispiel für eine SQL Injection. Schmeiss die Post-Variable erst mal in eine escape-Funktion, bevor du irgendwas mit der Datenbank damit machst:
 
Er meint die doppelten Anführungszeichen beim width und height Attribut. Sollte dir das nicht deine tolle PHP IDE direkt anzeigen?

Abgesehen davon ist der Code natürlich ein Musterbeispiel für eine SQL Injection. Schmeiss die Post-Variable erst mal in eine escape-Funktion, bevor du irgendwas mit der Datenbank damit machst:
Doch hat mir ja angezeigt aber ich wusste eben nicht was der Fehler ist bzw. wo er ist da der ganze Abschnitt markiert war!

mit ist das Zeug von dem du gepostet hast nicht schon etwas älter?
Mir lernen das in der Schule anders!

muss ich dann $mmysql_real_escape_String()=SELECT....
schreiben?
also im Prinzip $mSQL durch das mysql.... ersetzen?
 
Hast du dir die Seite überhaupt mal 10 Sekunden angeschaut? Damit werden kritische Zeichen aus der Eingabe gefiltert und unten gibts ein Beispiel wie die Funktion verwendet wird.

Für Anfänger sind erst mal nicht so "wichtig". Der Code sollte überhaupt erst mal laufen, bevor man sich darüber Gedanken macht. Aber spätestens wenn die Seite öffentlich verfügbar ist musst du dich darum kümmern. Andernfalls kann Hinz und Kunz deine Datenbank verändern wie er will.

Ein Beispiel für PHP wie´s falsch ist und wie´s richtig gemacht wird gibts hier auch:
 
Ja ich hab sie mir angesehen!
Nur wenn man das alles nicht versteht dann bringt mir das dennoch nichts!

Jetzt habe ich es aber geschnallt ;-)

Es geht gar nicht darum das meine Datenbank geschützt wird!
Diese Seite wird NIE veröffentlicht!

Ich will einfach nur dieses Suchfeld nicht mehr und nicht weniger!
 

Online-Statistiken

Zurzeit aktive Mitglieder
17
Zurzeit aktive Gäste
142
Besucher gesamt
159

Beliebte Forum-Themen

Zurück
Oben Unten