PHP : Supprimer la barre avant le ' sur tchat

Résolu
medic12345 Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
medic12345 Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   16
 
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   Statut Membre Dernière intervention   16
 
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   Statut Membre Dernière intervention   5
 
Ça fonctionne merci ! :D
0