probeme pour supprimer un mot censuré

Eléphanteau du PHP | 45 Messages

13 sept. 2005, 15:03

bonjour,

j'ai ma forme des mots censurés ainsi:
<form action="index.php?menu=VerifyGBookCensure" 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>
</form>
<br>
<?php
$connection = mysql_connect($host, $user, $pass) or die(mysql_error());
$db = mysql_select_db($db_name, $connection) or die(mysql_error());
$sql = "select * from $table_gbook_censure order by id DESC";
$result = mysql_query($sql,$connection) or die(mysql_error());
?>
<table width="100%" class="DivStyle2" border="1" style="border-collapse:collapse">
  <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"><?php echo "$word"; ?></td>
<td width="20%" align="left"><?php echo "$replacement"; ?></td>
<td width="40%" align="right">
Update 
&nbsp; 
<?php
echo "<a href=\"index.php?menu=GuestBookCensure&action=del&id=$censure[id]\">Delete</a>";
?>
</td>
</tr>
<?php
}
?>
</table>
et la page de verification est comme suite:

<?php

if(isset($_GET['action'])) $mcenu = $_GET['action'];
else $action = '';    
	
	
	
$word = $_POST['word']; // post city as var
$replacement = $_POST['replacement']; // post city as var
$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')
//{
//$sql = "INSERT INTO $table_gbook_censure VALUES ('','$word','$replacement','$date','$hour')";
//$result = mysql_query($sql,$connection) or die(mysql_error());
//echo 'insert done';
//}
if ($action == 'del')
{
$sql2 = mysql_query("DELETE FROM censure WHERE id='$_GET[id]'");
$result2 = mysql_query($sql2,$connection) or die(mysql_error());
echo 'delete done';
}

?>

mais quand je click sur Delete, lot censuré ne se supprime pas

merci pour votre aide

Mammouth du PHP | 19672 Messages

13 sept. 2005, 16:36

Je saisis mal le début de ton second script: proposition de correction :
<?php

$action = (isset($_GET['action'])) ? $_GET['action'] : '';
$id     = (isset($_GET['id']))     ? $_GET['id']     : '';


$word = $_POST['word']; // post city as var
$replacement = $_POST['replacement']; // post city as var
$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')
{
    $sql = "INSERT INTO $table_gbook_censure VALUES ('','$word','$replacement','$date','$hour')";
    $result = mysql_query($sql,$connection) or die(mysql_error());
    echo 'insert done';
}
*/
if($action == 'del')
{
    $sql2 = mysql_query("DELETE FROM censure WHERE id='". $id ."");
    $result2 = mysql_query($sql2,$connection) or die(mysql_error());
    echo 'delete done';
}
?>
Et encore, je n'ai pas tout corrigé : en effet, soit tu cliques sur le lien, soit tu valides le formulaire: dans le premier cas, tu vas faire générer des erreurs en assignant des valeurs provenant de $_POST inexistantes.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

14 sept. 2005, 13:54

j'ai modifié un peu pour supprimer un mot et ca me donne ca:
Query est vide
<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'test';

$action = (isset($_GET['action'])) ? $_GET['action'] : ''; 
$id     = (isset($_GET['id']))     ? $_GET['id'] : ''; 


$word = (isset($_GET['word'])) ? $_GET['word'] : ''; 
$replacement = (isset($_GET['replacement'])) ? $_GET['replacement']: ''; 	
	
	
//$word = $_POST['word']; // post city as var
//$replacement = $_POST['replacement']; // post city as var
$date=date("d/m/Y");
$hour=date("H:i");

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

if ($action == 'add')
{
$sql = "INSERT INTO censure VALUES ('','$word','$replacement','$date','$hour')";
$result = mysql_query($sql,$connection) or die(mysql_error());
echo 'insert done';
}

elseif($action == 'del')
   {
$sql2 = mysql_query("DELETE FROM censure WHERE id='". $id ."");
$result2 = mysql_query($sql2,$connection) or die(mysql_error()); 
echo 'delete done'; 
} 
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>
</form>
<br>
<?php
$sql = "select * from $table_gbook_censure order by id DESC";
$result = mysql_query($sql,$connection) or die(mysql_error());
?>
<table width="100%" class="DivStyle2" border="1" style="border-collapse:collapse">
  <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"><?php echo "$word"; ?></td>
<td width="20%" align="left"><?php echo "$replacement"; ?></td>
<td width="40%" align="right">
Update 
&nbsp; 
<?php
echo "<a href=\"index.php?menu=GuestBookCensure&action=del&id=$censure[id]\">Delete</a>";
?>
</td>
</tr>
<?php
}
}
?>
</table>