Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Obrigado por ler o topico :]
O problema é o seguinte
Eu qeuro enviar o caractere # por um formulario , porém , ele é interpretado pelo php de forma como se fosse um comentario e cancela o resto do codigo.
método get
valeu!
Codigo do botão que envia o codigo (função ajax)
Code completo :
post2.php :
<? include '../incs/ext.class.php'; ?><style type="text/css">
<!--
.style1 {font-size: 12px; color:#000000;}
#pop{display:none;position:absolute;top:50%;left:50%;margin-left:-150px;margin-top:-100px; background-color:#000000;padding:10px;width:300px;height:200px;border:1px solid #d0d0d0;}
-->
</style>
<script language="javascript">
function Load(url, div, tipo)
{
var ajax = null;
if(window.ActiveXObject)
ajax = new ActiveXObject('Microsoft.XMLHTTP');
else if(window.XMLHttpRequest)
ajax = new XMLHttpRequest();
if(ajax != null)
{
var cache = new Date().getTime();
ajax.open(tipo, url + "&cache=" + cache , true);
ajax.onreadystatechange = function status()
{
if(ajax.readyState == 4)
{
if(ajax.status == 200)
{
document.getElementById(div).innerHTML = ajax.responseText;
var texto=unescape(ajax.responseText.replace(/\+/g," "));
}
}
else if(ajax.readyState == 0)
document.getElementById(div).innerHTML = '<img src="images/load.gif" alt="" />';
else if(ajax.readyState == 3)
document.getElementById(div).innerHTML = '<img src="images/load.gif" alt="" />';
else
document.getElementById(div).innerHTML = '<img src="images/load.gif" alt="" />';
}
ajax.send(null);
}
}
function checaCampos() {
var title = document.getElementById('title');
var mate = document.getElementById('materia');
var erro = "";
var count = 0;
if (title.value == ""){
erro += "\nDigite um Titulo";
document.getElementById('title').focus();
count = 1;
}
if (mate.value == ""){
erro += "\nEscreva a Materia.";
document.getElementById('materia').focus();
count = 1;
}
if (count > 0 ){
alert("Os seguintes erros foram encontrados:\n" + erro);
return false;
}
else
return true;
}
</script>
<div id="pop">
<a href="#" onclick="document.getElementById('pop').style.display='none';">[Fechar]</a>
<br />
<span style="color:#FFFFFF; font-size:12px;">Palavras chaves são usadas para melhorar o resultado da pesquisa.</span>
</div>
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0" class="style1">
<tr>
<td colspan="2" align="center">Postar Materia</td>
</tr>
<tr>
<td width="27%">Selecione a Categoria : </td>
<td width="73%"><label>
<select name="cat" id="cat" onchange="javascript : Load ('ext.php?exec=subcat'+
'&cat='+ document.getElementById ( 'cat' ).value,'subcata','get');">
<option value="">Selecione</option>
<?
for($i=0;$i<sizeof(configs::$categorias);$i++){
$cat = configs::$categorias[$i];
echo "<option value=\"".$cat[1]."\">".$cat[0]."</option>";
}
?>
</select>
</label></td>
</tr>
<tr>
<td>Subcategoria : </td>
<td><label>
<select name="subcat" id="subcat">
<div id="subcat"></div>
</select>
</label></td>
</tr>
<tr>
<td>Titulo : </td>
<td><label>
<input name="title" type="text" id="title" size="50" />
</label></td>
</tr>
<tr>
<td colspan="2"><div align="center">BARRA DE FERRAMENTAS EM JAVASCRIPT</div></td>
</tr>
<tr>
<td colspan="2"><textarea name="materia" id="materia" cols="94" rows="10"></textarea> </td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td height="29">Palavras Chave (<a href="#" onclick="document.getElementById('pop').style.display='block';">?</a>) : </td>
<td><label>
<input name="words" type="text" id="words" size="40" />
<br />
</label></td>
</tr>
<tr>
<td colspan="2" align="center"><label>
<input type="submit" name="vai" id="vai" value="Postar" onclick="javascript : if(checaCampos()) { Load ('exta.php?&code =' + document.getElementById('materia').value,'post_mat','get');
}
"/>
</label></td>
</tr>
</table>
<div id="post_mat">
</div>
<div id="subcata">
</div>
arquivo exta.php
<?
foreach($_POST as $var){
echo $var;
}
foreach($_GET as $var){
echo $var;
?><?
foreach($_POST as $var){
echo str_replace("[tralha]","#",$var);
}
foreach($_GET as $var){
echo str_replace("[tralha]","#",$var);
}
?>e desculpe , não é error de inserir no mysql , mas é o valor que o php reçebe do form.
Sil.Miranda, cadê a parte do MySQL meu filho? =) Cadê o ext.php referenciado pelo AJAX lá em cima?
De qualquer forma, a dica é simples. O insert abaixo é um exemplo de insert errado. Strings devem conter aspas para serem inseridas no banco.
INSERT INTO tabela (campo1, campo2, campo3) VALUES (#teste, #teste2, #outro_testE)
A forma correta seria assim:
INSERT INTO tabela (campo1, campo2, campo3) VALUES ('#teste', '#teste2', '#outro_testE')
[]s
O que eu postei não tem a parte do mysql , pois ela ta certa.
* eu sei ,
function postar_materia($cat,$subcat,$title,$user,$texto,$words){
if(empty($title) or empty($texto)){
echo $title;
echo " ".$texto;
$this->print_msg("Title,Text Null","RED");
exit(); }
$text = $this->bb_coda($texto);
if(!$this->execute("INSERT INTO materias (CAT,SCAT,TITLE,USER,TEXT) values ('".$cat."','".$subcat."','".$title."','".$user."','".$this->bb_coda ($text)."')","query"))
$this->print_msg(MSG_REG_FAIL,"RED");
else
$this->print_msg(MSG_REG_SUCESS,"BLUE");
}
mas pode trancar o topico , eu to usando str_replace , não posso enviar o # pelo form , mas envio [tralha] , e o str muda pra #
mesmo assim obrigado
se está passando por ajax, use a função escape, do javascript, para passar pela URL. Depois use urldecode, do PHP, para resgatar valor
valeu beraldo , funcionou :D
Se o sustenido estiver na string dentro de aspas, o MySQL não o interpretará como comentário.
Poste o código que está utilizando