str_replace avec bd

Eléphanteau du PHP | 45 Messages

12 sept. 2005, 13:44

salut,

j'ai une forme pour remplacer les mots cebsurés avec un autre mot:

Code : Tout sélectionner

<input type="text' name="mot"...> <input type="text' name="remplacer"...>
je fais l'insertion dan la bd et je fais la recuperation comme si:
<?php
$message = str_replace($mot,$replacer, $message); 
?>
mais ca fonctionne pas, aucune erreur mais le mot reste le mem

merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 sept. 2005, 13:58

il faudrait en savoir un peu plus

à quoi ressemble tout ton formulaire ?
comment récupères-tu les valeurs de celui-ci dans le script ?

un de tes champs s'appelle "remplacer" et tu utilises ensuite une variable $replacer, cela vient peut-être de là

Eléphanteau du PHP | 45 Messages

12 sept. 2005, 14:28

form.php
<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($row = mysql_fetch_array($result)) {
	
$date = $row['date'];
$hour = $row['hour'];
$word = $row['word'];
$replacement = $row['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; Delete</td>
</tr>
<?php
}
?>
</table>
view.php:

if(isset($_POST['word'])) $word = $_POST['word'];
else $word = '';
if(isset($_POST['replacement'])) $replacement = $_POST['replacement'];
else $replacement = '';

.
.
.

$message = str_replace($word,$replacement,$message); 

?>



Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 sept. 2005, 14:42

avant de faire le str_replace, est-ce que déjà tu récupères bien les 2 valeurs du formulaire ?
fais des echo de contrôle

Eléphanteau du PHP | 45 Messages

12 sept. 2005, 14:46

non je les recupere pa

Eléphanteau du PHP | 45 Messages

12 sept. 2005, 22:04

ca me parait que tout est bon mais je sais pas pourquoi ca marche pas

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

12 sept. 2005, 22:13

il est marqué dans ton code : view.php
qu'est-ce que c'est ? le nom du fichier qui récupère le formulaire ?

car le formulaire pointe sur "index.php?menu=VerifyGBookCensure"

de plus, pour être sûr, ne mélange pas méthode POST et GET
si tu fais passer ton formulaire en POST, rajoute un champ caché pour passer le menu :

Code : Tout sélectionner

<input type="hidden" name="menu" value="VerifyGBookCensure">

Eléphanteau du PHP | 45 Messages

12 sept. 2005, 22:18

"index.php?menu=VerifyGBookCensure"
c'est les pseudo frames

Eléphanteau du PHP | 45 Messages

13 sept. 2005, 13:04

quand je fais ca:
$message = str_replace("con","***",$message); 
la methode marche, j'ai essayé de faire ca, mais je pense que quelque chose cloche en mon $sqlcensure
$sqlcensure = 'SELECT * FROM $table_gbook_censure where $word = $remplacement ORDER BY id DESC';

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 sept. 2005, 18:49

salut, c'est peut etre le nom de ta table qui cloche:
$table_gbook_censure
:arrow: avec un $ ?!?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

13 sept. 2005, 21:34

quel est le problème exactement ?

le str_replace ? quel rapport avec la requête ?
à un moment tu m'as dit ne pas récupérer les variables du formulaire, ça marche maintenant ??

je te donne une piste pour ne pas mélanger POST et GET, et tu réponds "c'est les pseudos frames", ça ne nous avance pas et je ne vois pas le rapport

et pourquoi ce post est-il marqué Résolu alors qu'il ne l'est pas ?
bref, tu peux repréciser un peu là ?