-
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:
Habt ihr vielleicht eine Idee, wie ich einen solchen Code mit Hilfe eines Formulars in einer Datenbank speichern könnte?PHP-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/meineseite " data-send="true" data-width="300" data-show-faces="false" data-colorscheme="dark"></div>
Ich hoffe ihr könnt mir aus der Patsche helfen.
Vielen Dank im Voraus =)
LG Zneaf
-
07.01.12 19:40 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
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.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Hey Saftmeister,
Der Spaltentyp ist "Text" und sollte daher genug Platz für den Code bieten.
Gruß Zneaf
-
07.01.12 20:40 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
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.Geändert von saftmeister (07.01.12 um 20:44 Uhr)
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
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
-
07.01.12 21:14 #6
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Zeig doch mal deinen Code, der das Einfügen vornimmt, und alles, was damit zu tun hat.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
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:
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).PHP-Code:<?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\"> </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;"> <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
}
}
?>
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---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hey Yaslaw

hier ist der Teil des Codes, der für den Speichervorgang zuständig ist:
Ich nehme übrigens absichtlich den Update-Befehl, damit der User seinen Facebook-Link jederzeit selbst aktualisieren kann.PHP-Code: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());
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 =)Geändert von Zneaf (18.01.12 um 22:46 Uhr) Grund: Ergänzung =)
-
Hey Leute,
Hat wirklich niemand eine Idee wo hier der Fehler sein könnte? ;(
Würde mich sehr über eure Hilfe freuen.
Gruß zneaf
-
---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
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ß zneafGeändert von Zneaf (24.01.12 um 12:49 Uhr) Grund: Hab mich verschrieben
-
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
Genau das Resultat das in Schritt 2 des Tutorials erstellt wird, genau das will ich von dir.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'.
Zum Code:
Und in deiner Datenbank steht anstelle eines Wertes das folgende Script?
Ich glaube nicht. Aber du schreibst das ein Script gespeichert wird.PHP-Code: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());
Das will ich sehen. nicht das Script das speichert, sondern das, welches gespeichert WIRD.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
Problem mit Formular, das Daten in einer Datenbank speichern soll
Von Naddl150 im Forum PHPAntworten: 20Letzter Beitrag: 22.10.07, 10:36 -
Beliebigen Text oder Code in Datenbank speichern
Von Thomas_Jung im Forum PHPAntworten: 1Letzter Beitrag: 19.09.07, 11:45 -
Formular in Datenbank Speichern
Von Anubia im Forum PHPAntworten: 3Letzter Beitrag: 30.10.06, 18:28 -
Frontpage->Formular in Datenbank speichern
Von ak-47 im Forum HTML-EditorenAntworten: 18Letzter Beitrag: 15.06.06, 17:28 -
Upload einer PDF Datei via PHP Formular , Daten in MySQL Datenbank speichern
Von Michelle85 im Forum PHPAntworten: 0Letzter Beitrag: 28.04.05, 09:36



1Danke

Zitieren



Login






[PHP][Snippet] Array zu XML konvertieren