criei um formulário dinamico e gostaria de enviar para o arquivo rec.php, os aquivos adicionados pelo no formato file , já tentei colocar em
x.setAttribute("enctype" , "multipart/form-data");
também não funcionou segue o arquivo:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to create a FORM and an INPUT element.</p>
<button onclick="myFunction()">Try it</button>
<button onclick="enviar()">enviar</button>
<script>
function myFunction() {
var x = document.createElement("FORM");
x.setAttribute("action", "rec.php");
x.setAttribute("method", "post");
x.setAttribute("id", "myForm");
document.body.appendChild(x);
var y = document.createElement("INPUT");
y.setAttribute("type", "file");
y.setAttribute("name", "arquivo[]");
document.getElementById("myForm").appendChild(y);
}
function enviar(){
document.forms[0].submit();
}
</script>
</body>
</html>
consigo pegar no arquivo rec.php o valor de $_POST , mas de $_FILES não consigo pegar como um array, o que está dando errado ? segue o script PHP
Arquivo rec.php
<?php
foreach($_POST['arquivo'] as $value) {
echo $value."<br />";
}
foreach($_FILES['arquivo'] as $value) {
echo $value['arquivo']['name']."<br />";
}
Estou criando meu próprio mvc php para adquirir mais conhecimento.
Mas estou me deparando com uma coisa muita estranha, eu perco a $_SESSION de uma view para outra view
Fiz um codigo simples pra testar.a.php ----- view a.php
<?php
session_start();
$_SESSION['teste'] = 'Funcionou';
echo $_SESSION['teste'];
?>
<?php
session_start();
echo $_SESSION['teste'];
// Notice: Undefined variable: _SESSION in
var_dump($_SESSION);
// Notice: Undefined variable: _SESSION in NULL
?>
<?php
namespace Sis\Classes;
use App\Model\ClassLogin;
use Sis\Traits\TraitGetIp;
class ClassSession {
private $login;
private $timeSession = 1200;
private $timeCanary = 300;
public function __construct(){
if(session_id() == ''){
ini_set("session.save_handler", "files"); //Cabeçalhos somente atraves de arquivos
ini_set("session.use_cookies", 1); //Habilita o uso de cookies
ini_set("session.use_only_cookies", 1); //Só pode habilitar a seção atraves de coockies
ini_set("session.cookie_domain", DOMAIN); //Só aceita coockies vindo do nosso sistema
ini_set("session.cookie_httponly", 1); //Só aceita script php e não deixa o javascript alterar o sistema
if(DOMAIN != "localhost"){
ini_set("session.cookie_secure", 1); //Para trabalhar com o SSL do servidor ativo
}
/*Criptografia das nossas sessions*/
ini_set("session.entropy_length", 512); //
ini_set("session.entropy_file","/dev/urandom");
ini_set("session.hash_function", "sha256");
ini_set("session.hash_bits_per_character", 5);
session_start();
}
$this->login = new ClassLogin();
}
#Proteger contra roubo de sessão
public function setSessionCanary($par=null){
session_regenerate_id(true);
if($par == null){
$_SESSION['canary']=[
"birth" => time(),
"IP" => TraitGetIp::getUserIp() //Pega o ip do usuario
];
}else{
$_SESSION['canary']['birth']=time();
}
}
#Verificar a integridade da sessão
public function verifyIdSessions(){
if(!isset($_SESSION['canary'])){
$this->setSessionCanary();
}
if($_SESSION['canary']['IP'] !== TraitGetIp::getUserIp()){
$this->destructSessions();
$this->setSessionCanary();
}
if($_SESSION['canary']['birth'] < time() - $this->timeCanary){
$this->setSessionCanary("Time");
}
}
#Setar as sessões do nosso sistema
public function setSessions($Email){
$this->verifyIdSessions();
$_SESSION['Login'] = true;
$_SESSION['Time'] = time();
$_SESSION['Nome'] = $this->login->getIssetSession($Email)['data']['Nome'];
$_SESSION['Email'] = $this->login->getIssetSession($Email)['data']['Email'];
$_SESSION['Permissoes'] = $this->login->getIssetSession($Email)['data']['Permissoes'];
}
#Validar as páginas internas do sistema
public function verifyInsideSession(){
$this->verifyIdSessions();
if(!isset($_SESSION['Login']) || !isset($_SESSION['Permissoes']) || !isset($_SESSION['canary'])){
$this->destructSessions();
header("Location: ".DIRPAGE."NaoAutorizado");
}else{
if($_SESSION['Time'] >= time() - $this->timeSession){
$_SESSION['Time']=time();
}else{
$this->destructSessions();
header("Location: ".DIRPAGE."NaoAutorizado");
}
}
}
#Destruir as sessions existentes
public function destructSessions(){
foreach (array_keys($_SESSION) as $key) {
unset($_SESSION[$key]);
}
}
#testar
public function testarSessions(){
echo 'oiiiiiiiiiiiiiiiiiiiiiiooooooooooo';
}
}
Bom dia Pessoal, Gostaria de saber como Instalar e colocar pra rodar a versão do Zend PHP 1.11.11, tenho tido dificuldade de achar material na internet e se puderem ajudar, obrigado!