Bonjours , je veut envoyé un formulaire en javascript pour inscrire les données sans une BDD . Bien sur je les ai projeter avec mysql_real_escape_string , mais je vient de voir que cela me retourne une chaîne vide. Comment protéger mes raquettes alors ?

5 réponses


djtec
Réponse acceptée

Tout ce que tu as dans ta première fonction tu le met dans ta deuxième puis tu fais un if pour voir si ta variable valid est à true si si oui ben tu fais ce que tu as dans ta 2eme fonction.

Et pour le ajax à la place de post regarde sur google y a des tuto.

Avec un peut de code on pourrait mieux t'aider donné nous ta fonction jquery ainsi que ta page php

Page avec le formulaire (add.php )

<script type="text/javascript" language="javascript" src="../scripts/jquery.js"> </script>
<?php include('../includes/haut.php'); ?>
<?php // On se connecte a la BDD
require "./config.php";  
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);   
mysql_select_db(DB_BDD);  
mysql_query ('SET NAMES \'UTF8\'') ;                      
?>  
<h1> Script de blog </h1>
<a href="../index.php"> Retour au site </a> </br>
<a href="./index.php"> Retour a la page d'administration </a>
<br/>
<script type="text/javascript">

$(function(){
    $("#envoyer").click(function(){
        valid = true;

        if($("#titre").val() == ""){
            $("#titre").next(".erreur-message").fadeIn(1000).text("Veuillez entrer le titre de l'article");
            valid = false;
        }
        else{
            $("#titre").next(".erreur-message").fadeOut();

        }
        if($("#contenu").val() == ""){
            $("#contenu").next(".erreur-message").fadeIn(1800).text("Veuillez entrer un contenu pour l'article");
            valid = false;
        }
        else{
            $("#contenu").next(".erreur-message").fadeOut();
        }

        if($("#categorie").val() == ""){
            $("#categorie").next(".erreur-message").fadeIn(1000).text("Veuillez entrer une catégorie pour l'article");
            valid = false;
        }
        else{
            $("#categorie").next(".erreur-message").fadeOut();
        }

        if($("#auteur").val() == ""){
            $("#auteur").next(".erreur-message").fadeIn(1000).text("Veuillez entrer un auteur pour l'article");
            valid = false;
        }
        else{
            $("#auteur").next(".erreur-message").fadeOut();
        }

        return valid;

    });

});
$(function(){
    $("#formpost").submit(function(){           
        titre= $(this).find("input[name=titre]").val();
        contenu= $(this).find("textarea[name=contenu]").val();
        categorie= $(this).find("select[name=categorie]").val();
        image= $(this).find("input[name=img]").val();
        auteur= $(this).find("input[name=auteur]").val();
        $.post("addPost.php",{titre: titre, contenu: contenu,auteur: auteur,categorie: categorie},function(data){

            $(".statut").fadeIn().text("Article bien posté");
            $("#formpost").fadeOut();
            });

        return false;

    });
});
</script>
<span class="statut">statut</span>
<form method="post" id="formpost" action="add.php" enctype="multipart/form-data">
<p>
Titre : <br/><input type="text" id="titre" name="titre" />
<span class="erreur-message">erreur</span>
<br/>
Contenu :<br/><textarea cols="100" rows="12" id="contenu" name="contenu"></textarea>
<span class="erreur-message">erreur</span>
<br/>
Ajouter une image :<br/><input type="file" id="img" name="img"/>
<span class="erreur-message">erreur</span>
<br/>
Catégorie: <br/>
<select id ="categorie" name="categorie">
<option value="">Choisir une catégorie</option>
<option value="Catégorie 1">Catégorie 1</option>
<option value="Autre">Autres</option>
</select>
<span class="erreur-message">erreur</span>
<br/>

Auteur : <br/><input type="text" style=" height: 20px; width:250px;" id="auteur" name="auteur" />
<span class="erreur-message">erreur</span>
<br/>

<input type="submit" id="envoyer" class="submit" name="envoyer" value="Envoyer"/><br/>
</p>
</form>

<?php include('../includes/bas.php'); ?>

Page pour l'insertion Mysql

<?php
    extract($_POST);
    echo $titre;
    $titre= strip_tags($titre);

    $contenu= strip_tags($contenu);
    $contenu=mysql_real_escape_string($contenu);

    $categorie= strip_tags($categorie);
    $categorie=mysql_real_escape_string($categorie);

    $auteur= strip_tags($auteur);
    $auteur=mysql_real_escape_string($auteur);

      // On se connecte a la BDD
    require "./config.php";  
    mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);   
    mysql_select_db(DB_BDD);  
    mysql_query ('SET NAMES \'UTF8\'') ;                      

    $sql ="INSERT INTO post (titre,contenu,auteur,categories) VALUES ('$titre','$contenu','$auteur','$categorie')";
    mysql_query ($sql) or die (mysql_error());

?>

<u>A noté que je débute en Javascript.</u>

Moi je pense que tu devrait fusionner tes 2 fonctions jquery car elles s'exécute en même donc autant les fusionner et essaye avec la fonction ajax plutôt que post

Comme je l'ai dit je débute en Javascript , tu peut m'expliquer plus en détail comment faire stp ?