Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gleyson Abreu

Meu codigo algo errado

Recommended Posts

<?php@$cidade_natal = $_POST['cidade_natal'];@$cidade_atual = $_POST['cidade_atual'];@$ensino_medio = $_POST['ensino_medio'];@$faculdade = $_POST['facu'];@$email = $_SESSION['email'];@$senha = $_SESSION['senha'];//Conexão com o Banco de Dados$user = 'root'; // Nome de Usuário$pass = ''; // Senha do banco de dados$con = new PDO('mysql:host=localhost;dbname=ibook',$user,$pass);$stmt = $con->prepare('UPDATE cadastro SET cidade_natal=:cidade_natal, cidade_atual = :cidade_atual, ensino_medio = :ensino_medio, faculdade = :faculdade WHERE :email = :email AND :senha = :senha');$stmt->bindValue(':cidade_natal', $cidade_natal, PDO::PARAM_STR);$stmt->bindValue(':cidade_atual', $cidade_atual, PDO::PARAM_STR);$stmt->bindValue(':ensino_medio', $ensino_medio, PDO::PARAM_STR);$stmt->bindValue(':faculdade', $faculdade, PDO::PARAM_STR);$stmt->bindValue(':email', $email, PDO::PARAM_STR);$stmt->bindValue(':senha', $senha, PDO::PARAM_STR);$stmt->execute();header('Location: steps2.php');?>

Esse e meu código, nele reparem que tem o header('Location: steps2.php');

bom ai esta o error quando esta sem ele o código funciona bem, quando o boto ele só redireciona para a página e não deixar eu executa o update do mesmo, queria pedir a vocês que ajudem a ajeitar o código do jeito certo e também botar uns ifs ai que e para preencher os campos necessários para poder continuar a execução. A gradecendo desde já a todos que responderem! :innocent: :skull:

 

 

 

 

Aguem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue

 

O resto é com você, joga no Google cada função que coloquei e estude as. =D

<?php
try {
	
	$options = array(
		PDO::ATTR_PERSISTENT => true,
		PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
		PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
	);
	
	//Conexão com o Banco de Dados
	$user = 'root'; // Nome de Usuário
	$pass = ''; // Senha do banco de dados
	$pdo = new PDO('mysql:host=localhost;dbname=ibook',$user,$pass, $options);


} catch (PDOException $e) {

	die('Houve um erro ao conectar com o DB: '.$e->getMessage());

}

try{

	if (empty($_POST['cidade_natal'])){
		throw new Exception("Informe a cidade natal", 1);
	}
	
	if (empty($_POST['cidade_atual'])){
		throw new Exception("Informe a cidade atual", 1);
	}
	
	if (empty($_POST['ensino_medio'])){
		throw new Exception("Informe o ensino medio", 1);
	}
	
	if (empty($_POST['facu'])){
		throw new Exception("Informe a facu", 1);
	}

	$email = $_SESSION['email'];
	$senha = $_SESSION['senha'];
	
	/** 
	 * Informa o erro na query caso exista
	 * vai cair na Exception
	 *
	 */
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		
	$stmt = $con->prepare('UPDATE cadastro SET cidade_natal=:cidade_natal, cidade_atual = :cidade_atual, ensino_medio = :ensino_medio, faculdade = :faculdade WHERE :email = :email AND :senha = :senha');

	$stmt->bindValue(':cidade_natal', $cidade_natal, PDO::PARAM_STR);
	$stmt->bindValue(':cidade_atual', $cidade_atual, PDO::PARAM_STR);
	$stmt->bindValue(':ensino_medio', $ensino_medio, PDO::PARAM_STR);
	$stmt->bindValue(':faculdade', $faculdade, PDO::PARAM_STR);
	$stmt->bindValue(':email', $email, PDO::PARAM_STR);
	$stmt->bindValue(':senha', $senha, PDO::PARAM_STR);
	
	$stmt->execute();
	
	if($stmt->rowCount() === true ){
		header('Location: steps2.php');
	}

} catch (Exception $e) {
	echo "Error: ". $e->getMessage();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem nada haver com a dúvida mais não seria melhor colocar tudo dentro de uma classe e instanciar as variáveis? Não lembro que artigo eu li, mais dizia que a utilização do @ nas variáveis a longo prazo se o sistema for grande pode ficar confuso.

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teve so uns erros e conseguir resolver, a variável e $con era para ser $pdo

:joia:

 

 

e também na rowsCount == true tinha um "=" a mais tirei e resolvi

http://www.php.net//manual/pt_BR/language.operators.comparison.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.