8768 sujets

Développement web côté serveur, CMS

Bonjour
J'ai le problème suivant:
Quand je valide mon formulaire tinymce la page doAddContents.php me renvoit le message d'erreur suivant:

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /homez.714/reusites/www/doAddContents.php on line 8

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /homez.714/reusites/www/doAddContents.php on line 8

Quel est le problème? Je me débrouille très mal en php et là j'ai du mal à m'y retrouver...
Suis hébergé chez ovh...
Merci d'avance pour vos réponses!!

    <?php
    include("db.php");
    doDB();
     
    $h4_block = "Contents Saved!";
    $elm1 = $_POST['elm1'];
    $entity_elm1 = htmlentities($elm1);
    $entity_elm1 = mysql_real_escape_string($entity_elm1);
    $add_contents_sql = "UPDATE tinymce_contents SET `contents`=
    '$entity_elm1', `modified`=now()";
    $add_contents_res = mysqli_query($mysqli, $add_contents_sql)
    or die(mysqli_error($mysqli));
     
    //close connection to MySQL
    mysqli_close($mysqli);
     
    //create nice message for user
    $display_block = "<p>The page has been successfully updated.</p>";
     
    ?>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <body>
    <div>
    <h4><?php echo $h4_block; ?></h4>
    <?php echo $display_block; ?>
    <a href="view.php">View Page!</a>
    </div>
    </body>
    </html>

Modifié par philllou (27 May 2014 - 01:13)
merci je n'avais pas vu l'erreur!
Je n'ai plus de message d'erreur du serveur mais par contre mes données ne sont pas enregistrées dans la base tinymce_contents.
Quand je valide le formulaire il n'y a plus de message d'erreur il me dit comme prévu "Contents Saved! The page has been successfully updated.View Page!" mais aucune donnée n'apparait dans ma table tinymce_contents
J'ai pourtant bien crée ma table tinymce_contents avec 3 colonnes (id avec INT, contents avec text, modified avec datetime)
Je ne comprends pas pourquoi...c'est pénible quand on ne maitrise pas bien un langage...j'ai l'impression en étudiant la doc que j'en ai pour des années...
Si vous pouviez m'aiguiller un peu je vous en remercierai fortement...
je remets le code corrigé:

    <?php
    include("db.php");
    doDB();
     
    $h4_block = "Contents Saved!";
    $elm1 = $_POST['elm1'];
    $entity_elm1 = htmlentities($elm1);
    $entity_elm1 = mysqli_real_escape_string($mysqli, $entity_elm1);
    $add_contents_sql = "UPDATE tinymce_contents SET `contents`=
    '$entity_elm1', `modified`=now()";
    $add_contents_res = mysqli_query($mysqli, $add_contents_sql)
    or die(mysqli_error($mysqli));
     
    //close connection to MySQL
    mysqli_close($mysqli);
     
    //create nice message for user
    $display_block = "<p>The page has been successfully updated.</p>";
     
    ?>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <body>
    <div>
    <h4><?php echo $h4_block; ?></h4>
    <?php echo $display_block; ?>
    <a href="view.php">View Page!</a>
    </div>
    </body>
    </html>

Modifié par philllou (27 May 2014 - 13:38)
Bonjour,

La colonne "content" ne devrait pas être de type "text" mais plutôt "varchar", avec la prise en charge d'un nombre de caractères suffisant ainsi qu'un interclassement correctement configuré (personnellement je n'ai plus de problème depuis que j'utilise utf8_general_ci pour le francais).

Si le problème persiste il faut vérifier le contenu de chaque variable avant l'update.
merci pour ta réponse! c'est vrai que ça serait surement mieux. Cependant celà ne peut expliquer que les données ne soient pas enregistrées...d'ailleurs je viens de faire la modification et les données ne s'enregistrent toujours pas...
Bonjour,
Je vois que tu utilises une requête UPDATE, ce qui signifie que tu veux mettre à jour des données (d'ailleurs, il n'y a pas de clause WHERE, c'est normal?).
Or, toi tu parles d'insérer des données ("...mes données ne sont pas enregistrées en base). Est-ce que ta table contient déjà des données, ou est-ce qu'elle est vide? Si elle est vide, il faudrait peut-être plutôt utiliser une requête INSERT.
Dans le cas où ta table contient déjà des données, c'est que ta requête UPDATE est incorrecte, et dans ce cas, il faut vérifier ce qu'elle renvoie, comme l'a dit Soundboy39.
Essaie par exemple:
    <div>
    <h4><?php echo $h4_block; ?></h4>
    <?php echo $display_block; ?>
    <?php echo $add_contents_sql; ?>
    <a href="view.php">View Page!</a>
    </div>

et regarde ce que t'affiche ta requête.

Bon courage!
Merci pour ton explication!!
mince j'ai l'impression qu'une bonne partie du code est faux..
je pensais avoir trouvé le code rêvé pour installer sur mon petit site. Il me permettrait de mettre a jour un petit encart de news quand je ne serai pas chez moi via une page internet simple.
Ce code je l'ai tiré d'un article à cette adresse http://www.clonmelweb.net/tutorial_TinyMCE_1of2.php
Je n'y connais vraiment presque rien en php et je ne serai pas capable de corriger le code convenablement pour que ça marche.
Auriez vous un explicatif, un lien pour un code propre déjà écrit qui me permettrait de sauvegarder mes données de tinymce sur ma base sql pour que je puisse les récupérer de la base et les afficher sur ma page?