Probleme pour enregister et afficher un texte
dimi26a
Messages postés
4
Statut
Membre
-
dimi40a Messages postés 12 Statut Membre -
dimi40a Messages postés 12 Statut Membre -
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
edit-rule.php
et enfin
update-rules.php
j espere que vous allez m aider a corriger ou me diriger vers une autre methode .D avance merci
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
3 réponses
-
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, -
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-
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"); -
-
-
-
salut alors quand je mets cette requête sur phpadmin ça s exécute sans renvoyer de message d erreur.