probleme update

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme update

par isitien » 14 oct. 2005, 19:19

<a href="index.php?menu=GuestBookCensure&action=update&id=<?php echo($censure['id']); ?>" onClick="return conf();">Update</a>
meme resultat ca m'envoi des requetes vides

par Truc » 14 oct. 2005, 19:09

je me lance dans l'erreur possible:
<?php echo($censure['id']); ?>
manquait des quotes

sinon il y a deux fois les meme noms de champs dans le meme formulaire (erreur qui ta deja été signalée)

et tu ne peut pas faire de requete d'update puisque tu clique sur un lien pour ce faire hors tu récupère avec POST, il faut donc valider le formulaire sur clique (sur lien "update")(aussi signalé :wink: )

par isitien » 14 oct. 2005, 19:08

je m'explique:

il y a trois actions dans la form des censures:
* ajouter
* supprimer
* modifier

les 2 premieres marchent bien (ajouter + supprimer), ms celle de modifier, ca me redonne les champs vides, quand je modifie les valeurs (mot et son remplacement) ca me donne le resultat nul, des champs vides, meme dans la base de donnee

par Cyrano » 14 oct. 2005, 18:58

Est-ce que tu pourrais être plus explicite ? "Ça marche pas", ou "Ça marche toujours pas", ça nous aide pas des masses. Tu sembles oublier qu'on peut pas tester en local parce qu'on a pas la base de données qui va avec le code.

Explique ce que tu essayes de faire, ce que tu attends et ce que tu obtiens (Messages d'erreur ou autre) Et ce que tu as fait pour cibler l'origine du problème.

par isitien » 14 oct. 2005, 18:52

voila tout le code:
<?php
$date        = (isset($_POST['date']))        ? $_POST['date']        : "";
$hour        = (isset($_POST['hour']))        ? $_POST['hour']        : "";
$word        = (isset($_POST['word']))        ? $_POST['word']        : "";
$replacement = (isset($_POST['replacement'])) ? $_POST['replacement'] : "";
$action      = (isset($_GET['action']))       ? $_GET['action']       : "";
$id          = (isset($_GET['id']))           ? $_GET['id']           : "";

$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'test';

$date = date("d/m/Y");
$hour = date("H:i");

$connection = mysql_connect($host, $user, $pass) or die(mysql_error());
$db = mysql_select_db($db_name, $connection) or die(mysql_error());

if ($action == 'add')
{
    $sql1 = "INSERT INTO censure VALUES ('','". $word ."','". $replacement ."','". $date ."','". $hour ."')";
    $result1 = mysql_query($sql1,$connection) or die('Erreur SQL insertion: '.mysql_error());
    echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php?menu=GuestBookCensure\">\n ";
}

elseif($action == 'del')
{
    $sql2 = "DELETE FROM censure WHERE id='". $id ."'";
    $result2 = mysql_query($sql2,$connection) or die('Erreur SQL Delete: '.mysql_error());
    echo "<meta http-equiv=\"refresh\" content=\"0;url=index.php?menu=GuestBookCensure\">\n ";
}

elseif($action == 'update')
{

    $sql3 = "UPDATE censure SET word='". $word ."', replacement='". $replacement ."' WHERE id='". $id ."'";

    $result3 = mysql_query($sql3,$connection) or die('Erreur SQL Update: '.mysql_error());
    echo "<meta http-equiv=\"refresh\" content=\"10;url=index.php?menu=GuestBookCensure\">\n ";
}
else
{
?>
<form action="index.php?menu=GuestBookCensure&action=add" method="post" name="form">
  <table width="100%" class="DivStyle2">
    <tr>
      <td width="40%" align="right">Word:</td>
      <td width="60%"><input type="text" name="word" maxlength="30" size="20" value="" class="input01"></td>
    </tr>
    <tr>
      <td width="40%" align="right">Replace with:</td>
      <td width="60%"> <input type="text" name="replacement" maxlength="30" size="20" value="***" class="input01"></td>
    </tr>
    <tr>
      <td colspan="2" align="center">
        <input type="submit" value="Send" class="input02">
      </td>
    </tr>
  </table>
<?php
    $sql = "SELECT * FROM ". $table_gbook_censure ." ORDER BY id DESC";
    $result = mysql_query($sql,$connection) or die(mysql_error());
    $total = mysql_num_rows($result);
    if ($total == '')
    {
        echo "<p>No bad words</p>\n";
    }
    else
    {
        echo "<p style=\"color: #f00; text-align: center\">There is ". $total ." bad words</p>\n";
        //echo "There is $total Rows";
    }
?>
<script language="JavaScript" type="text/javascript">
<!--
function conf()
{
    return (confirm("Are you sure?"));
}
//-->
</script>
<table width="100%" class="DivStyle2">
  <tr>
    <td width="20%" align="left">Date</td>
    <td width="20%" align="left">Word</td>
    <td width="20%" align="left">Replacement</td>
    <td width="40%" align="center">Actions</td>
  </tr>
<?php
    while($censure = mysql_fetch_array($result))
    {
        $date        = $censure['date'];
        $hour        = $censure['hour'];
        $word        = $censure['word'];
        $replacement = $censure['replacement'];
?>
  <tr>
    <td width="20%" align="left"><?php echo "$date"; ?> &nbsp; <?php echo "$hour"; ?></td>
    <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$word"; ?>" class="input01"></td>
    <td width="20%" align="left"><input type="text" name="replacement" maxlength="30" size="20" value="<?php echo "$replacement"; ?>" class="input01"></td>
    <td width="40%" align="right">
      <a href="index.php?menu=GuestBookCensure&action=update&id=<?php echo($censure[id]); ?>" onClick="return conf();">Update</a>&nbsp;&nbsp;
      <a href="index.php?menu=GuestBookCensure&action=del&id=<?php echo($censure[id]); ?>" onClick="return conf();">Delete</a>
    </td>
  </tr>
<?php
    }
}
?>
</table>
</form>

par isitien » 13 oct. 2005, 05:02

Je vais refaire par une autre methode et voir si ca marche

par Truc » 12 oct. 2005, 22:59

Montre nous ton code tel qu'il est maintenant, apres les modifications (histoire de repartir sur des "bonnes" bases :wink: )

par isitien » 12 oct. 2005, 21:55

ca fonctionne pas comme toujours

par Truc » 11 oct. 2005, 19:59

C'est logique puisque tu veut valide le formulaire avec un lien:
<a href="index.php?menu=GuestBookCensure&action=update&id=<?php echo($censure[id]); ?>" onClick="return conf();">Update</a>
tu ne peut donc pas récupèrer les variables POST
ajoute un id dans la balise <form id="form"> et remplace la fonction javascript par celle-ci
function conf()
{
    if(confirm("Are you sure?"))
       document.getElementById('form').submit();
}

par isitien » 11 oct. 2005, 19:34

toujours ne marche pa

par Truc » 11 oct. 2005, 19:16

  <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$word"; ?>" class="input01"></td> 
    <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$replacement"; ?>" class="input01"></td> 
SAlut, ce code est en dehors des balises <form> et </form>

c'est pas pas les bon input pour faire l'affichage ! (a faire dans le formulaire :wink:

par Invité » 11 oct. 2005, 18:45

  <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$word"; ?>" class="input01"></td> 
    <td width="20%" align="left"><input type="text" name="word" maxlength="30" size="20" value="<?php echo "$replacement"; ?>" class="input01"></td> 
J ai corrige et quand je lance l update ca me laisse les champs vides

par Cyrano » 11 oct. 2005, 18:25

Bon, je viens de parcourir le code: il y a deux fois l'attribut name avec la valeur word dans le formulaire, corrige déjà ce point.

par isitien » 11 oct. 2005, 18:23

juste apres result3 et ca donne:

Code : Tout sélectionner

UPDATE censure SET word='', replacement='' WHERE id='7'les donnees ont ete modifie

par Cyrano » 11 oct. 2005, 18:20

Tu l'as mis où le echo($sql3) au juste ?