Probleme pour enregister et afficher un texte

Fermé
dimi26a Messages postés 3 Date d'inscription mercredi 16 juin 2010 Statut Membre Dernière intervention 18 avril 2016 - 18 avril 2016 à 16:30
dimi40a Messages postés 10 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 5 mai 2016 - 23 avril 2016 à 10:44
Bonjour, voila plusieurs jours que je relis le script et que je cherche d autre solutions sur le net mais je ne trouve rien
En fait quand je valide mon texte je reviens sur le cadre du texte vide et rien ne s est enregistre dans ma page rule
page rule.php

<?php include 'components/authentication.php' ?>
<?php include 'components/session-check.php' ?>
<?php include 'controllers/base/head.php' ?>
<?php include 'controllers/navigation/first-navigation.php' ?>
<div class="container" style="padding-top:50px;">
<h1 class="text-center profile-name" style="margin-top:35;">Rules <br /><small> use them to be the best!</small></h1>
<div class="col-md-12 panel" style="border-radius: 20px; margin-top:20px; margin-bottom:20px; padding-bottom:20px; padding-top:20px;">

<?php
$rule = "SELECT * FROM rules ORDER BY rules_id DESC LIMIT 1";
$result = mysqli_query($database,$rule);
while($rule = mysqli_fetch_array($result,MYSQLI_BOTH)) {
?>
<P style="font-family:Verdana, Geneva, sans-serif">
<?php echo $rule['rule_txt'];?>
</p>
<br> <br> by <?php echo $rule['user_username'];?></address>
<?php
}
?>
</div>
</div>
</div>

edit-rule.php
 <?php include '_database/database.php' ?>
<?php include 'components/authentication.php' ?>
<?php include 'components/session-check.php' ?>
<?php include 'controllers/base/head.php' ?>
<?php include 'controllers/navigation/first-navigation.php' ?>
<div class="container" style="padding-top:50px;">
<h1 class="text-center profile-text profile-name">Edit Rule</h1>
<div class="no-gutter row">
<div class="col-md-12">
<div class="panel panel-default" id="sidebar">
<div class="panel-body">
<?php include 'controllers/form/edit-rules-form.php' ?>
</div>
</div>
</div>
</div>
</div>

et enfin
update-rules.php
 ?php
ini_set("display_errors",1);
session_start();
if(isset($_POST)){
require '../_database/database.php';
$user_username=$_REQUEST['user_username'];
$rule =htmlspecialchars($_REQUEST['rule_txt']);
$rule_txt = addslashes($rule);
$sql3="UPDATE rules SET user_username='$user_username',rule_txt='$rule_txt' WHERE rules_id=1";
mysqli_query($database,$sql3)or die(mysqli_error($database));
header("location:../edit-rules.php?status=success");
}
?>


j espere que vous allez m aider a corriger ou me diriger vers une autre methode .D avance merci





A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
19 avril 2016 à 11:40
Salut,

N'ayant pas le code html de ton formulaire, difficile de voir si l'erreur vient de là.

Plusieurs points à vérifier :
- as tu des messages d'erreurs ?
- l'attribut action de ton formulaire pointe bien sur le fichier update-rules.php ?
- l'attribut method de ton formulaire est bien définie en post ?
- ton formulaire possède t-il bien un input dont l'attribut name est égal à user_username ?
- as tu essayer d'exécuter ta requête avec des données fictives directement dans un client sql (PhpMyAdmin par exemple) afin de voir si la requête est valide ?

Quelques remarques facultatives au passage :
- il n'est pas nécessaire de fermer et réouvrir les balises PHP si il n'y a pas de code html entre deux instructions php :
<?php 
include 'components/authentication.php';
include 'components/session-check.php';
include 'controllers/base/head.php';
include 'controllers/navigation/first-navigation.php';
?>

- le session_start() dans le fichier update-rules.txt n'est pas utile si tu n'utilise pas de variable de session dans ce script
- htmlspecialchars() ou addslaches() ne devraient pas être utilisées avant l'insertion en bdd. Pour éviter les injections sql avec l'API Mysqli il faut utiliser la fonction mysqli_real_escape_string(). Il faut néanmoins utiliser htmlspecialchars() lors de l'affichage des données dans le document html pour éviter les injections xss.

Bonne journée,
0
dimi40a Messages postés 10 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 5 mai 2016 2
Modifié par dimi40a le 21/04/2016 à 17:54
d abord merci de m aider voila le script edit-rules-form.php
<?php          
$sql = "SELECT * FROM rules";
$result = mysqli_query($database,$sql) or die(mysqli_error($database));
$rules = mysqli_fetch_array($result);
?>
<!-- Tab panes -->
<div class="tab-content">
<div class="tab-pane fade in active" id="general">
<div class="col-md-12">

<form action="components/update-rules.php" method="post" enctype="multipart/form-data" id="UploadForm">
<input type="hidden" name="rules_id" value="<?php echo $rules['rules_id'];?>"/>
<input type="hidden" name="user_username" value="<?php echo $current_user;?>"/>
<textarea id="post_body" class="form-control" name="rule_txt" value="" style="height:300px;"><?php echo $rules['rule_txt'];?></textarea>



je n ai aucune erreur je reviens sur ma page pour editer comme si rien ne s est passe et j ai rien dans la base de donnees ma table est bien la etc mais rien n est enregistre.
tu voudrais que je teste quel requetes sur phpdamin?

D avance merci
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
22 avril 2016 à 09:14
Il faudrait essayer d’exécuter la requête d'insertion.
Tu peux modifier ton script d'insertion comme ceci pour afficher la requête (on désactive aussi temporairement la redirection pour voir la requête) :
    // ...
    $sql3="UPDATE rules SET user_username='$user_username',rule_txt='$rule_txt' WHERE rules_id=1";
    echo $sql3;
    mysqli_query($database,$sql3)or die(mysqli_error($database));
    //header("location:../edit-rules.php?status=success");
0
dimi40a Messages postés 10 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 5 mai 2016 2
22 avril 2016 à 10:45
voila ce que j obtiens

UPDATE rules SET user_username='dimi26a',rule_txt='<p>kkk</p>' WHERE rules_id=1
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
22 avril 2016 à 12:51
Parfait, cette requête semble correcte.
Arrives tu à l'exécuter dans PhpMyAdmin ?
0
dimi40a Messages postés 10 Date d'inscription vendredi 15 avril 2016 Statut Membre Dernière intervention 5 mai 2016 2
23 avril 2016 à 10:44
salut alors quand je mets cette requête sur phpadmin ça s exécute sans renvoyer de message d erreur.
0