tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
Like Tree1Danke
ERLEDIGT
NEIN
ANTWORTEN
20
ZUGRIFFE
1109
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    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-Code:
    <div id="fb-root"></div>
    <
    script>(function(dsid) {
      var 
    jsfjs 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(jsfjs);
    }(
    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
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    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 ;-)

  3. #3
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    Hey Saftmeister,

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

    Gruß Zneaf
     

  4. #4
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    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 ;-)

  5. #5
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    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
     

  6. #6
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    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 ;-)

  7. #7
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    Hey Saftmeister,

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

    Gruß zneaf =)
     

  8. #8
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    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-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\">&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
     

  9. #9
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    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 =)
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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

  11. #11
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    Hey Yaslaw

    hier ist der Teil des Codes, der für den Speichervorgang zuständig ist:
    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()); 
    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 =)
    Geändert von Zneaf (18.01.12 um 22:46 Uhr) Grund: Ergänzung =)
     

  12. #12
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    Hey Leute,

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

    Würde mich sehr über eure Hilfe freuen.

    Gruß zneaf
     

  13. #13
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    item: Zeig doch mal diesen Script-Teil genauso wie er in der DB gespeichert wird

    item:
    Zitat Zitat von Yaslaw Beitrag anzeigen
    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

  14. #14
    Zneaf Zneaf ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    155
    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
    Geändert von Zneaf (24.01.12 um 12:49 Uhr) Grund: Hab mich verschrieben
     

  15. #15
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    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-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()); 
    Ich glaube nicht. Aber du schreibst das ein Script gespeichert wird.
    Zitat Zitat von Zneaf Beitrag anzeigen
    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.
     
    ---------------------------------------------------------------------------------------------------
    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

  1. Antworten: 20
    Letzter Beitrag: 22.10.07, 10:36
  2. Antworten: 1
    Letzter Beitrag: 19.09.07, 11:45
  3. Formular in Datenbank Speichern
    Von Anubia im Forum PHP
    Antworten: 3
    Letzter Beitrag: 30.10.06, 18:28
  4. Frontpage->Formular in Datenbank speichern
    Von ak-47 im Forum HTML-Editoren
    Antworten: 18
    Letzter Beitrag: 15.06.06, 17:28
  5. Antworten: 0
    Letzter Beitrag: 28.04.05, 09:36

Stichworte