Page 1 sur 1
str_replace avec bd
Posté : 12 sept. 2005, 13:44
par isitien
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
Posté : 12 sept. 2005, 13:58
par ouckileou
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à
Posté : 12 sept. 2005, 14:28
par isitien
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"; ?> <?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 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);
?>
Posté : 12 sept. 2005, 14:42
par ouckileou
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
Posté : 12 sept. 2005, 14:46
par isitien
non je les recupere pa
Posté : 12 sept. 2005, 22:04
par isitien
ca me parait que tout est bon mais je sais pas pourquoi ca marche pas
Posté : 12 sept. 2005, 22:13
par ouckileou
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 :
Posté : 12 sept. 2005, 22:18
par isitien
"index.php?menu=VerifyGBookCensure"
c'est les pseudo frames
Posté : 13 sept. 2005, 13:04
par isitien
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';
Posté : 13 sept. 2005, 18:49
par Truc
salut, c'est peut etre le nom de ta table qui cloche:
$table_gbook_censure

avec un $ ?!?
Posté : 13 sept. 2005, 21:34
par ouckileou
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à ?