PHP : Supprimer la barre avant le ' sur tchat

Résolu/Fermé
medic12345 Messages postés 55 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 12 octobre 2013 - Modifié par medic12345 le 3/06/2012 à 14:16
medic12345 Messages postés 55 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 12 octobre 2013 - 3 juin 2012 à 14:55
Bonjour, j'ai 12 ans, et je ne m'y connais pas trop en PHP :)

Dans le tchat de mon site http://adaben.net/chat , on écrit le pseudo, et on entre dans le tchat.
Quand on tape des messages, il s'affichent correctement, mais quand on tape un mot avec une apostrophe ', comme " J'ai ", ceci s'affiche comme " J/'ai"
J'aimerai supprimer la barre qui vient avant l'apostrophe du mot, s'il vous plait.

Le tchat est constitué d'un index.php, message.php, et msg.html pour marquer les messages.



Index.php :

<center>
<br>
<br>
<body bgcolor="#00FF00">
<div id="picture">
<img src="http://dl.dropbox.com/u/47470353/Sauvegarde%20de%20site/Adam%20Data/conan-detective.gif" style="width: 200px; height: 240px" width="200" /></div>
<style type="text/css">
#picture {
position:absolute;
top: 50px;
right: 0px;
} </style>
<div id="picture2">
<img src="http://dl.dropbox.com/u/47470353/Sauvegarde%20de%20site/Adam%20Data/conan-detective-mirror.png" style="width: 200px; height: 240px" width="200" /></div>
<style type="text/css">
#picture2 {
position:absolute;
top: 50px;
left: 0px;
} </style>
<div id="picture3">
<img src="http://dl.dropbox.com/u/47470353/Sauvegarde%20de%20site/Adam%20Data/conan-detective.gif" style="width: 200px; height: 240px" width="200" /></div>
<style type="text/css">
#picture3 {
position:absolute;
top: 300px;
right: 0px;
} </style>
<div id="picture4">
<img src="http://dl.dropbox.com/u/47470353/Sauvegarde%20de%20site/Adam%20Data/conan-detective-mirror.png" style="width: 200px; height: 240px" width="200" /></div>
<style type="text/css">
#picture4 {
position:absolute;
top: 300px;
left: 0px;
} </style>

<div align="center">
<?php
session_start();

function createForm(){
?>
</div>
<div align="center">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
</div>
<div align="center">

<table>
<div align="center">
<tr><td colspan="2">Merci de choisir un pseudonyme avant d'entrer sur le tchat Adam !</td></tr>
<tr><td>Votre pseudo: </td>
<td><input class="text" type="text" name="name" /></td></tr>
<tr><td colspan="2" align="center">
<script>
function keypressed(e){
if(e.keyCode=='13'){
doWork();
}
}
</script>
<input class="text" type="submit" name="submitBtn" value="Login" />
</td></tr>
</table>
</div>
<center>
</form>
<center>
<div align="center">
<?php
}

if (isset($_GET['u'])){
unset($_SESSION['nickname']);
}

// Process login info
if (isset($_POST['submitBtn'])){
$name = isset($_POST['name']) ? (get_magic_quotes_gpc() ? htmlspecialchars(stripslashes($_POST['name']), ENT_NOQUOTES,'UTF-8',true) : htmlspecialchars($_POST['name'], ENT_NOQUOTES,'UTF-8',true)) : 'Sans Nom';
$_SESSION['nickname'] = $name;
}

$nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden";
?>
</div>
<center>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html>
<head>
<center>
<title>Tchat - Adam</title>
<div align="center">
<link href="style/style.css" rel="stylesheet" type="text/css" />
</div>
<div align="center">
<script language="javascript" type="text/javascript">

<!--
var httpObject = null;
var link = "";
var timerID = 0;
var nickName = "<?php echo $nickname; ?>";

// Get the HTTP Object
function getHTTPObject(){
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
}

// Change the value of the outputText field
function setOutput(){
if(httpObject.readyState == 4){
var response = httpObject.responseText;
var objDiv = document.getElementById("result");
objDiv.innerHTML += response;
objDiv.scrollTop = objDiv.scrollHeight;
var inpObj = document.getElementById("msg");
inpObj.value = "";
inpObj.focus();
}
}

// Change the value of the outputText field
function setAll(){
if(httpObject.readyState == 4){
var response = httpObject.responseText;
var objDiv = document.getElementById("result");
objDiv.innerHTML = response;
objDiv.scrollTop = objDiv.scrollHeight;
}
}

// Implement business logic
function doWork(){
httpObject = getHTTPObject();
if (httpObject != null) {
link = "message.php?nick="+nickName+"&msg="+encodeURI(document.getElementById('msg').value);
httpObject.open("GET", link , true);
httpObject.onreadystatechange = setOutput;
httpObject.send(null);
}
}

// Implement business logic
function doReload(){
httpObject = getHTTPObject();
var randomnumber=Math.floor(Math.random()*10000);
if (httpObject != null) {
link = "message.php?all=1&rnd="+randomnumber;
httpObject.open("GET", link , true);
httpObject.onreadystatechange = setAll;
httpObject.send(null);
}
}

function UpdateTimer() {
doReload();
timerID = setTimeout("UpdateTimer()", 5000);
}


function keypressed(e){
if(e.keyCode=='13'){
doWork();
}
}
//-->
</script>
</div>
</head>
<center>
<div align="center">
<body onload="UpdateTimer();">
<center>
<div align="center" id="main">
<center>
<div id="caption"><img src="http://dl.dropbox.com/u/47470353/Sauvegarde%20de%20site/Adam%20Data/Capture11.PNG" height="50" width="200" >.</div>
</center>
<div id="icon"> </div>
<div align="center">
<?php

if (!isset($_SESSION['nickname']) ){
createForm();
} else {
$name = isset($_POST['name']) ? $_POST['name'] : "Unnamed";
$_SESSION['nickname'] = $name;
?>
<center>
<div align="center" id="result">
<center>
<?php
$data = file("msg.html");
foreach ($data as $line) {
echo $line;
}
?>
</div>
<center>
</div>
<div align="center" id="sender" onkeyup="keypressed(event);">
Votre message: <input type="text" name="msg" size="30" id="msg" />
<button onclick="doWork();">Send</button>
</div>
<div align="center">
<?php
}

?>
</div>
<center>
</div>
</center>
</body>






Message.php :



<?php
if (isset($_GET['msg'])){
if (file_exists('msg.html')) {
$f = fopen('msg.html',"a+");
} else {
$f = fopen('msg.html',"w+");
}
$nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
$msg = isset($_GET['msg']) ? urldecode(htmlspecialchars($_GET['msg'])) : ".";
$line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";
fwrite($f,$line."\r\n");
fclose($f);

echo $line;

} else if (isset($_GET['all'])) {
$flag = file('msg.html');
$content = "";
foreach ($flag as $value) {
$content .= $value;
}
echo $content;

}
?>



Merci d'avance.
Bonne journée/soirée :D
A voir également:

3 réponses

lili34500 Messages postés 178 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 17 août 2012 16
3 juin 2012 à 14:25
les slashs comme tu dit c'est ton serveur qui fait sa cela s'appelle le magicquoite cela empeche les injection sql !

ce que tu peut faire c'est au moment ou tu affiche le message (et pas l'or du traitement)
il y a une fonction ' stripcslashes ' qui supprime les anti slash !
1
lili34500 Messages postés 178 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 17 août 2012 16
3 juin 2012 à 14:50
d'après ce que j'ai compris de ton code c'est $content qui affiche les resiltats donc :

echo stripcslashes($content);
1
medic12345 Messages postés 55 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 12 octobre 2013 5
3 juin 2012 à 14:55
Ça fonctionne merci ! :D
0