Problem: Code per Formular in einer Datenbank speichern

Zneaf

Erfahrenes Mitglied
Hallo Leute ;)

Es geht um Folgendes:
Ich möchte es allen registrierten Usern meiner Website ermöglichen, einen Facebook-Button einzubinden, der zu ihrer Facebook-Website führt.

Das Problem besteht darin, dass ich es einfach nicht schaffe, den Code über mein Formular in der Datenbank zu speichern.
Wenn ich es mit mysql_real_escapce_string oder htmlentities versuche, wird nur ein Teil des Codes in der Datenbank abgespeichert.
Und wenn ich den Code mit keinem der Beiden behandle, wird er erst garnicht hochgeladen.

Hier hab ich mal ein Beispiel-Code für einen der Besagten Facebook-Buttons:
PHP:
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/de_DE/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

<div class="fb-like" data-href=" http://www.facebook.com/meineseite " data-send="true" data-width="300" data-show-faces="false" data-colorscheme="dark"></div>

Habt ihr vielleicht eine Idee, wie ich einen solchen Code mit Hilfe eines Formulars in einer Datenbank speichern könnte?

Ich hoffe ihr könnt mir aus der Patsche helfen.

Vielen Dank im Voraus =)

LG Zneaf :)
 
Hm, eigentlich sollte es mit mysql_real_escape_string() funktionieren. Bist du sicher, das die Spalte für den Code groß genug dimensioniert ist, char(100) dürften da ein bisschen knapp sein.
 
Hey Saftmeister,

Der Spaltentyp ist "Text" und sollte daher genug Platz für den Code bieten.

Gruß Zneaf
 
Hast du mal versucht, den Code über phpMyAdmin einzufügen und hat das geklappt?

EDIT: Ich habs mal mit pma getestet, er sagt tatsächlich, das da was truncated wurde, wenn ich aber den Inhalt wieder abhole, ist alles da. Sehr merkwürdig.
 
Zuletzt bearbeitet:
Hey Saftmeister,

Über phpMyAdmin kann ich den Code ohne Probleme einfügen.
Ich muss lediglich bei der Ausgabe alle " durch ' ersetzen lassen, damit das ganze normal angezeigt wird (warum weiß ich auch nicht).

Wenn ich den Code aber über mein Formular in der DB speichern möchte, speichert er mir immer nur den Script Teil (ohne den Script anfangs- und end-Tag).
D.h. Der erste Teil vor und nach dem Script-Teil in der Mitte fehlen.
Ich kann mir darauf aber keinen Reim machen :(

Hoffe du hast noch eine Idee woran das liegen könnte.

Vielen Dank für deine Hilfe ;)

Lg Zneaf
 
Hey Saftmeister,

Ich werde dir morgen den Code posten (kann vorher leider nicht an den PC).
Schreibe gerade von meinem Handy aus ;)

Gruß zneaf =)
 
Hallo ;)

tut mir leid, dass es etwas länger gedauert hat, aber hatte die letzten Tage keine Zeit um an den PC zu gehen.

Hier hab ich mal den Code, der für das ändern des Facebook-Links zuständig ist:
PHP:
<?php
if ($change == "fb"){
	if(isset($_POST['submit'])){
		// Formulardaten auslesen
		$fb1 = trim(strip_tags(stripslashes($_POST['fb1'])));
		$fb2 = trim(strip_tags(stripslashes($_POST['fb2'])));
		$password = md5(trim($_POST['password']));

		if($fb1 != $fb2){
			echo   "<table align=\"center\" width=\"500\" border=\"0\" cellpadding=\"0\" cellspacing=\"2\">
						<tr>
							<td><font face=\"Trebuchet MS\" color=\"#FFFFFF\">Die angegebenen Facebook-Links sind nicht identifbh!</font></td>
						</tr>
					</table>
					<br>
					<table align=\"center\" border=\"0\" width=\"500\" cellspacing=\"0\" cellpadding=\"0\">
						<tr valign=\"top\">
							<td><input type=\"button\" name=\"button\" value=\"\" style=\"background-image:url(buttons/zurueck.jpg); width:80px; height:25px; border:0px; padding:0px; margin:0px;\" onClick=\"history.back()\"></td>
						</tr>
					</table>";
		}else{
			include 'config.php';

			$sql_select = 	"SELECT
								password
							FROM         
								user
							WHERE
								userid = '".$_SESSION['userid']."'";

			$res_select = mysql_query($sql_select) or die( 'Error[SELECT|User]: <br /><pre>' . $sql_select . '</pre><br />MySQL-Error: ' . mysql_error() );

			$row_select = mysql_fetch_object($res_select);

			$password_selected = $row_select->password;

			if( $password != $password_selected ) {
				echo 	"<table align=\"center\" border=\"0\" width=\"527\" cellpadding=\"0\" cellspacing=\"0\">
							<tr>
								<td width=\"527\" height=\"1\" style=\"background-image: url(images/linie.jpg); background-repeat:non repeat;\"></td>
							</tr>
						</table>
						<br>
						<table align=\"center\" width=\"500\" border=\"0\" cellpadding=\"0\" cellspacing=\"2\">
							<tr>
								<td><font face=\"Trebuchet MS\" color=\"#FFFFFF\"><b>Das angegebene Passwort ist nicht korrekt!</b></font></td>
							</tr>
						</table>
						<br>
						<table align=\"center\" border=\"0\" width=\"500\" cellspacing=\"0\" cellpadding=\"0\">
							<tr valign=\"top\">
								<td><input type=\"button\" name=\"button\" value=\"\" style=\"background-image:url(buttons/zurueck.jpg); width:80px; height:25px; border:0px; padding:0px; margin:0px;\" onClick=\"history.back()\"></td>
							</tr>
						</table>
						<br>
						<table align=\"center\" border=\"0\" width=\"527\" cellpadding=\"0\" cellspacing=\"0\">
							<tr>
								<td width=\"527\" height=\"1\" style=\"background-image: url(images/linie.jpg); background-repeat:non repeat;\"></td>
							</tr>
						</table>";
			}else{
				include("config.php");

				$fb = htmlentities($fb1);

				$sql_update = 	"UPDATE
									resident_dj
								SET
									facebook = '". mysql_real_escape_string($fb) ."'
								WHERE
									user_name = '".$_SESSION['username']."'";

				$res_update = mysql_query($sql_update) or exit( __LINE__.', '.__FILE__.'<br />' .mysql_error());

				echo 	"<table align=\"center\" border=\"0\" width=\"527\" cellpadding=\"0\" cellspacing=\"0\">
							<tr>
								<td width=\"527\" height=\"1\" style=\"background-image: url(images/linie.jpg); background-repeat:non repeat;\"></td>
							</tr>
						</table>
						<br>
						<table align=\"center\" width=\"500\" border=\"0\" cellpadding=\"0\" cellspacing=\"2\">
							<tr>
								<td><font face=\"Trebuchet MS\" color=\"#FFFFFF\"><b>Dein Facebook-Link wurde erfolgreich geändert!</b></font></td>
							</tr>
							<tr>
								<td><font face=\"Trebuchet MS\" color=\"#FFFFFF\">&nbsp;</font></td>
							</tr>
							<tr>
								<td><font face=\"Trebuchet MS\" color=\"#FFFFFF\"><a href=\"index.php?site=profil\" style=\"text-decoration:none;\">> Zurück zum Profil</a></font></td>
							</tr>
						</table>
						<br>
						<table align=\"center\" border=\"0\" width=\"527\" cellpadding=\"0\" cellspacing=\"0\">
							<tr>
								<td width=\"527\" height=\"1\" style=\"background-image: url(images/linie.jpg); background-repeat:non repeat;\"></td>
							</tr>
						</table>";
			}
		}
	}else{
	?>
		<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
			<table align="center" border="0" bgcolor="262626" width="500" border="0" cellpadding="0" cellspacing="1">
				<tr bgcolor="#1c1c1c">
					<td width="45%"><font face="Trebuchet MS" color="#FFFFFF">Facebook:</font></td>
					<td><input type="text" size="30" name="fb1"></td>
				</tr>
				<tr bgcolor="#000000">
					<td width="45%"><font face="Trebuchet MS" color="#FFFFFF">Facebook wiederholen:</font></td>
					<td><input type="text" size="30" name="fb2"></td>
				</tr>
			</table>
			<br>
			<table align="center" border="0" bgcolor="262626" width="500" border="0" cellpadding="0" cellspacing="1">
				<tr bgcolor="#1c1c1c">
					<td width="45%"><font face="Trebuchet MS" color="#FFFFFF">Passwort:</font></td>
					<td><input type="password" size="30" name="password"></td>
				</tr>
			</table>
			<br>
			<table align="center" border="0" width="500" border="0" cellpadding="0" cellspacing="0">
				<tr>
					<td><input type="submit" name="submit" value="" style="background-image:url(buttons/senden.jpg); width:80px; height:25px; border:0px; padding:0px; margin:0px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset" value="" name="reset" style="background-image:url(buttons/abbrechen.jpg); width:80px; height:25px; border:0px; padding:0px; margin:0px;"></td>
				</tr>
			</table>
		</form>
	<?php
	}
}
?>

Falls der Code hier nicht so übersichtlich eingerückt ist, zieh ihn dir einfach in eine Datei rein...bei mir ist er nähmlich schön eingerückt (aber im Fenster könnte es sein, dass das nicht der Fall ist).

Sollte jemand eine Frage oder Idee haben, woran es liegen könnte, würde ich mich freuen, wenn er hier postet ;)

Vielen Dank für die Hilfe =)

LG Zneaf
 
Hey Leute,

Ich hab das Problem bisher leider noch nicht ausmachen können :(
Hat niemand eine Idee, warum das ganze nicht funktioniert?

Würde mich über eure Hilfe rießig freuen.

Vielen Dank

Lg Zneaf =)
 
Wo in deinem Code ist dieser Script-Teil den es speichert? Ich finde ihn grad nicht.
Wenn du beim SQL testen ' durch " ersetzen musst, dann ist da etwas falsch, Zeig doch mal dein generiertes SQL-Statement.
PHP MySQL Debug Queries
 
Zurück