Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Quando tento gravar os dados de um formulário no BD, retorna esse Warning:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0
Essa é a página q grava:
<?php
session_start();
include"config.php";
$qData = "select * from `users` where (`Uid` = '".$_SESSION["Uid"]."')";
$rData = mysql_query($qData) or die(mysql_error());
$aData = mysql_fetch_array($rData);
$Username = $_POST[username];
$Password = $_POST[Password];
$First_Name = $_POST[First_Name];
$Last_Name = $_POST[Last_Name];
$Email_Address = $_POST[Email_Address];
$Country = $_POST[Country];
$Titulo_portf = $_POST[Titulo_portf];
$Cor = $_POST[Cor];
$Avatar = $_FILES["avatar"]["name"];
$tmp_name = $_FILES["avatar"]["tmp_name"];
$Status = $_POST[status];
$t = time();
$pasta = 'avatar/';
$extensao = strtolower(end(explode('.', $Avatar)));
$nome = md5(uniqid()) . '.' . $extensao;
if(move_uploaded_file($tmp_name, $pasta . $nome)){
$q1 = "UPDATE users SET First_Name = '".$First_Name."', Last_Name = '".$Last_Name."',Email_Address = '".$Email_Address."', Titulo_portf = '".$Titulo_portf."', Cor = '".$Cor."', Avatar = '".$nome."', Country = '".$Country."'
WHERE `Uid` = '".$_SESSION["Uid"]."'";
mysql_query($q1);
header("location: myimages.php");
}
?>
O que está acontecendo?
"Bem de acordo com o erro (não estou afirmando) o codigo é um pouco ultrapassado" Ultrapassado como, não está tudo normal? :( Ativei o register_globals e uma página em branco é exibida no lugar do ero.
Tinha desativado por isso: http://forum.imasters.com.br/index.php?/topic/418466-deslogado-do-sistema-apos-gravar-dados-no-mysql/
O estranho é q tudo estava normal ontem oO
como eu disse nao estava afirmando, estava apenas lendo a msg de erro..
você ja olhou com o seu suporte??
sobre esse erro.
tenta assim:
coloca isso no seu htaccess:
php_flag session.bug_compat_42 1
php_flag session.bug_compat_warn 0
senao funcionar cria um arquivo chamado ini.php e coloca no seu public_html se o servidor for linux com cPanel
session.bug_compat_42 = 1
session.bug_compat_warn = 0
me diz se resolveu
Alterando o htaccess, dá Internal Server Error. Do outro jeito fica tudo igual, mostrando o erro ainda :(
Amigo então verifica com sua hospedagem se de ontem pra ca atualizaram o php ou apache, eu tenho um vps e estava com php5.2.13 atualizei para 5.3.4 e oq apareceu de deprecated e warning foi fora do normal..
Passe o erro pra eles, deve ter uma solução.
Me disseram isso "Não vejo o que possa causar isso no seu script. Ative e desative o register_globals para ver se faz diferença".
Veja o que eu achei: http://www.spiration.co.uk/post/1231/Your%20script%20possibly%20relies%20on%20a%20session%20side-effect
Alterei só o _SESSION[uid] (o que conecta o script acima) e mas não conectou, será que devo alterar todas as sessions?
login.php
<?php
session_start();
include"config.php";
if (isset($_POST[login]))
{
$Username = strip_tags($_POST[username]);
$Password = strip_tags($_POST[password]);
if(empty($Username) || empty($Password))
{
echo "<br><center>Todos os campos devem ser preenchidos!</center>";
require_once("loginform.php");
require_once("footer.php");
}
else
{
$password11 = $_POST[password];
$qlogin = "select * from `users` where `Username` = '$Username' and `Password` = '$password11' and `Status` = 'Active'";
$rlogin = mysql_query($qlogin) or die(mysql_error());
if(mysql_num_rows($rlogin) == '1')
{
if($alogin = mysql_fetch_array($rlogin))
{
$_SESSION[uid] = $alogin[uid];
$_SESSION[username] = $alogin[username];
$_SESSION[Email_Address] = $alogin[Email_Address];
$_SESSION[Name] = $alogin[First_Name];
$_SESSION[Last_Name] = $alogin[Last_Name];
$_SESSION[First_Name] = $alogin[First_name];
$_SESSION[Country] = $alogin[Country];
$timestamp = mktime(date("H")-3, date("i"), date("s"), date("m"), date("d"), date("Y"));
$hora=gmdate("H:i:s", $timestamp);
$data=date("d/m/y");
// Grava os dados no BD
$inserir = mysql_query("INSERT INTO logins (id, usuario, email, ip, data, hora) VALUES ('', '$alogin[username]', '$alogin[Email_Address]', '".$_SERVER['REMOTE_ADDR']."', '$data', '$hora')");
?>
<HTML>
<HEAD>
<script LANGUAGE="JavaScript">redirTime = "1000";
redirURL = "myimages.php";
function redirTimer() { self.setTimeout("self.location.href = redirURL;",redirTime); }</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</HEAD>
<BODY onLoad="redirTimer()">echo'<br><br><br>
<center><img border="0" src="/imagens/loading.gif"><br><br><b>Se você não ser redirecionado em cinco segundos <a href="index.php">Clique Aqui</a></b></center>';
}
}
else
{
require_once("loginform.php");
?>
<div id='aviso'><center style='background: #FCC; color: #A00; margin-top: 0; font-size: 14px; padding: 5px;'><?=USUARIO_INVALIDO?></center></div>
<?
require_once("footer.php");
}
}
}
?>eu to de saida agora e sem tempo pra olhar, mas a principio algo que ja via aos montes
$Username = strip_tags($_POST[username]);
$Password = strip_tags($_POST[password]);
//
coloca aspas em tudo
$Username = strip_tags($_POST["username"]);
$Password = strip_tags($_POST["password"]);
Traduzindo resumidamente:
ATENCAo: DESCONHECIDO: seu script esta tendo realizar uma funcao que existia antes do php 4.2.5 .
Nao consideram variaveis globais como dados a não ser que você ative a funcao register_Globals (nao recomendado e vai ser extinta no php6)
Bem de acordo com o erro (não estou afirmando) o codigo é um pouco ultrapassado e uma possibilidade de funcionar seria ativar a funcao register_Gloabals
em geral um arquivo php.ini com register_gloabals = ON na pasta onde esta o script...