Problem: Code per Formular in einer Datenbank speichern

Hey Yaslaw ;)

hier ist der Teil des Codes, der für den Speichervorgang zuständig ist:
PHP:
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());

Ich nehme übrigens absichtlich den Update-Befehl, damit der User seinen Facebook-Link jederzeit selbst aktualisieren kann.

Das mit den ' und " kannst du erstmal vergessen...hat blos mit der Datei zutun, die den Link aus der DB ausliest und dann anzeigt (ist somit unrelevant für den Speichervorgang, um dens hier grad hauptsächlich geht^^)

Hoffe du kannst was damit anfangen^^

Wenn du noch fragen hast, dann scheu dich nicht davor, sie zu stellen xD

Vielen Dank für eure Unterstützung ;)

LG Zneaf =)
 
Zuletzt bearbeitet:
Hey Leute,

Hat wirklich niemand eine Idee wo hier der Fehler sein könnte? ;(

Würde mich sehr über eure Hilfe freuen.

Gruß zneaf
 
Hey yaslaw,

Hab dir doch oben den Code gepostet der für das speichern zuständig ist.
Hast du was anderes gemeint?^^

Und was genau meinst du mit dem "generierten SQL Statement"? :)

Sry wenn ich so blöd fragen muss.

Gruß zneaf
 
Zuletzt bearbeitet:
Zum "generierten SQL Statement":
Du hast also das verlinkte Tutorial nicht gelesen. Ansonsten wüsstest du was ich mit "generierten SQL Statement" meine. Dort steht irgendwo
So haben wir eine Fehlermeldung die etwas aussagt und das SQL, wie es an die Datenbank abgesetzt wird.
Mit diesen Informationen können andere Programmierer in Foren etc. besser helfen als 'nur' mit der Meldung 'Es geht nicht'.
Genau das Resultat das in Schritt 2 des Tutorials erstellt wird, genau das will ich von dir.

Zum Code:
Und in deiner Datenbank steht anstelle eines Wertes das folgende Script?
PHP:
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());
Ich glaube nicht. Aber du schreibst das ein Script gespeichert wird.
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)
Das will ich sehen. nicht das Script das speichert, sondern das, welches gespeichert WIRD.
 
Hey Yaslaw,

sry...den Link hatte ich total übersehen.

Hier ist der Code, wie er in der DB eingetragen werden sollte:
Code:
<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/site " data-send="true" data-width="300" data-show-faces="false" data-colorscheme="dark"></div>

Und hier ist der Code, wie er letztendlich in der DB eingetragen wird:
Code:
(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 = &quot;//connect.facebook.net/de_DE/all.js#xfbml=1&quot;;   fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));

Ich hab mir inzwischen natürlich dein Tutorial durchgelesen und das gemacht, was du wolltest. Eine Fehlermeldung hab ich allerdings nicht erhalten.

Der SQL sieht wie folgt aus:
Code:
UPDATE resident_dj SET facebook = (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')); WHERE user_name = test

Ich hoffe das sagt dir irgendetwas.

Vielen Dank für die Hilfe =)

LG Zneaf
 
Achso, es soll Code eingetragen werden! Ich dachte immer es soll kein Code gespeichert werden.

Nun, als erstes fällt sicher auf, dass dein String nicht in ANführungszeichen gesetzt ist....

Was gibt denn ein var_dump($fb) aus?
 
Hey Yaslaw ;)

Ja, es soll Code in der DB eingetragen werden :D Hab mich vielleicht etwas unverständlich ausgedrückt^^ Sorry! :)

Der var_dumb($fb) gibt folgendes aus:
Code:
string(294) "(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'));"

Hoffe das sagt dir was ;)

Welche Stelle hast du gemeint, wo mein String nicht in Anführungszeichen steht?
*sorry wenn dir Frage blöd erscheint*

Vielen Dank für Deine Hilfe =)

Gruß Zneaf =)
 
Also, der update geht richtig. Denn es steht genau das drin was der var_dump() auch liefert.

$fb beinhaltet nur die Funktion. Das ganze HTML-Zeugs rundherum nicht. Naja, dann musst du das halt noch anfügen und erst dann in die DB eintragen
PHP:
$fb = '<div id="fb-root"></div>
<script>'.$fb.'</script>
 
<div class="fb-like" data-href=" http://www.facebook.com/site " data-send="true" data-width="300" data-show-faces="false" data-colorscheme="dark"></div>';
 
Hey Yaslaw ;)

Super Idee, aber einen Haken hat die Sache noch:
in dem unteren DIV-Container ist ein link (heißt data-href=""), der von Person zu Person unterschiedlich ist...wie genau könnte ich dieses Problem lösen? :)

Vielen Dank =)

Gruß Zneaf
 
Zurück