Boa tarde, não sei por qual motivo porém o php não cria uma session na primeira vez que faço o submit.
Tenho um fonte que faz upload de imagem via ajax e em caso de sucesso grava um valor no session para ser utilizado mais tarde, por algum motivo estranho, dá primeira vez que executo submit(estou usando slim, então o submit vai como post) a session não existe só que ao executar pela segunda vez sem fechar o navegador, tudo funciona. Tentei usar um cookie porém só tive problemas então parti para session mesmo.
Fontes:
Upload.pgp
session_start();
if(isset($_FILES['fileImagem'])){
$errors = array();
$file_name = $_FILES['fileImagem']['name'];
$file_size = $_FILES['fileImagem']['size'];
$file_tmp = $_FILES['fileImagem']['tmp_name'];
$file_type=$_FILES['fileImagem']['type'];
//$file_ext=strtolower(end(explode('.',$_FILES['fileImagem']['name'])));
$file_ext=pathinfo($file_name);
$file_ext = $file_ext['extension'];
$expensions= array("jpeg","jpg","png");
if(in_array($file_ext,$expensions)=== false){
$errors[] = "Extensão não permitida";
}
if($file_size > 2097152){
$errors[]='Tamanho máximo 2 MB';
}
if(empty($errors)==true){
$_SESSION["statusUP"] = $file_name;
move_uploaded_file($file_tmp,"pictures/".$file_name);
echo "ok";
}else{
print_r($errors);
}
}
Fonte onde pego o valor do session ao salvar o form
<?php
session_start();
require_once 'app\controllers\model\UsersModel.php';
require_once 'app\controllers\DAL\UsersDAL.php';
class UsersController{
private $usersModel;
private $usersDAL;
function __construct(){
}
public static function newUser($data){
$usersModel = new UsersModel();
$data = json_decode($data);
$usersModel->setNome($data->txtNome);
$usersModel->setEmail($data->txtEmail);
$usersModel->setPassword($data->txtPass);
$usersModel->setSetor($data->slSetor);
$usersModel->setRole($data->slPapel);
//pega o valor na session, só funciona na segunda vez
if(isset($_SESSION['statusUP'])){
$usersModel->setPicture($_SESSION['statusUP']);
}
if(isset($data->ckAtivo)){
$usersModel->setActive(1);
}else{
$usersModel->setActive(0);
}
$usersDAL = new UsersDAL();
return $usersDAL->Cadastrar($usersModel);
}
}
Já tentei utilizar session_start em todos os lugares.