PHP GEschriebender Script trägt Datensätze nicht in Datenbank ein

erixschueler

Cadet 1st Year
Registriert
Juni 2014
Beiträge
9
Hi. Ich sitze hier schon seit ein paar Stunden an einem Problem. Ich möchte Datensätze in die Datenbank eintragen lassen, so wie man es etwa bei einer Registrierung kennt. (user, passwort)
Nur hier geht es um Lieder. Ich habe für eine Suchfunktion folgende Tabelle in der Datenbank.
ID interpret song album url

die url soll aus interpret/album/song.php (je nach eingabe) bestehen. Es wird mir kein Fehler angezeigt doch trotzdem wird das geschriebene nicht in die Tabelle übernommen. Hier ist mein Script:

PHP:
<?php	
	$interpret = $_POST["interpret"];
	$album = $_POST["album"];
	$song = $_POST["song"];
	$interpret = str_replace(' ', '-', $interpret);
	$album = str_replace(' ', '-', $album);
	$song = str_replace(' ', '-', $song);
	
?>
<form action="" method="post">
	
    <table width="200" border="0">
  <tr>
    <td>Interpret:</td>
    <td><input  type="text" name="interpret" /></td>
  </tr>
  <tr>
    <td>Album:</td>
    <td><input  type="text" name="album" /></td>
  </tr>
  <tr>
    <td>Song:</td>
    <td><input  type="text" name="song" /></td>
  </tr>
</table>

 <br />
    <input type="submit" value="Speichern" />
</form>
<?php
$verbindung = mysql_connect ("localhost", "name", "passwort")
	or die ("Fehler im System");
	
	mysql_select_db ("name")
	or die ("Verbindung war nicht möglich.");
	
	$eintrag = "INSERT INTO Lieder
	(interpret, song, album, url)
	
	VALUES
	('$interpret', '$song', '$album', '/$interpret/$album/$song.php";
	
	$eintragen = mysql_query($eintrag);
	
	if ($eintragen == true) {
		echo "Vielen Dank.";}
?>

Ich bin mir nicht sicher ob ich die url so angeben kann.
Ich hoffe ihr könnt einen Fehler im Script finden. Ich bin vollkommen planlos :/
Danke im vorraus.
 
Hi, versuch mal bei "action" das noch reinzuschreiben:

PHP:
action="<?php echo $_SERVER["PHP_SELF"]; ?>">
 
Schau mal da stimmt was nich:
PHP:
('$interpret', '$song', '$album', '/$interpret/$album/$song.php";

Richtig:
PHP:
('$interpret', '$song', '$album', '/$interpret/$album/$song.php');
 
Hat sich leider nichts verändert. Immernoch keine Fehlermeldungen aber auch kein Erfolg.
Ergänzung ()

Danke :) ich sollte schlafen gehn ich bin scheinbar nicht mehr fähig solche bl**** fehler zu erkennen. Jetzt funktioniert es auch :)
 
Und gleich merken fürs nächste Mal.... Verwende NIE NIE NIE NIE ungefilterte User-Eingaben! Das, was du da geschrieben hast, ist hochgradig verwundbar für SQL Injections.

Insgesamt wäre dir eh viel erspart geblieben, wenn du statt der extrem veralteten prozeduralen "mysql_"-Notation die modernere objektorientierte Notation über DBO mit Prepared Statements verwendet hättest.
 
Zurück
Oben