Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/08/2013, 11:01
Avatar de dario_sanz
dario_sanz
 
Fecha de Ingreso: marzo-2010
Mensajes: 94
Antigüedad: 14 años, 8 meses
Puntos: 3
ERROR 500 con JSON_ENCODE (php)

Hola colegas, como estan? voy a ser claro y conciso, estoy creando un formulario de contacto, lo estoy validando con json_encode+ajax-jquery+php.
Esta web tiene una arquitectura definida con patrones de diseño, esta seccion donde tengo el problema, estoy usando el patron FACTORY.
Aclaro que la version de php es PHP/5.4.17.
Probe de muchas maneras, hasta crei que al devolverme el html por una clase seria el problema, pero copie el html y lo pegue en el index y segimos con el bendito error 500.


xcoraxapp.php en un archivo que incluye todas las librerias.

index.php
Código:
<?php
require_once('xcoraxapp.php');

$array = array('header','nav','content','footer');

foreach($array as $type){
	
echo  FactoryTemplate::createTemplate($type)->getHtml();

}
?>

xcontrolador.php
Código:
<?php
abstract class Template{
    protected $_html;

    public function getHtml()
    {
        return $this->_html;
    }
	
	
	
	public static function contactoSend(){
	
	
	
	
	
	}	

}

class Templateheader extends Template{
	
	protected $_html = '
	
	<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- CHANGE THIS TITLE TAG -->
<title>Dario Sanchez</title>
<meta charset="utf-8">



<META NAME="Keywords" CONTENT="Diseño, web, software, medida, tecnología, reparación, pc, Freelancer, freelance, programación">
<META NAME="Language" CONTENT="Spanish">
<META NAME="Revisit" CONTENT="1 day">
<META NAME="Distribution" CONTENT="Global">
<META NAME="Robots" CONTENT="All">

<!-- media-queries.js -->
<!--[if lt IE 9]>
	<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->
<!-- html5.js -->
<!--[if lt IE 9]>
	<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->


<link href="font/stylesheet.css" rel="stylesheet" type="text/css" />	
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="css/bootstrap-responsive.min.css" rel="stylesheet" type="text/css" />
<link href="css/styles.css" rel="stylesheet" type="text/css" />
<link href="css/media-queries.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.4.css" media="screen" />

<meta name="viewport" content="width=device-width" />
 
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">

<link href="http://fonts.googleapis.com/css?family=Exo:400,800" rel="stylesheet" type="text/css">

</head>
	
	';
	
	}

class Templatenav extends Template{
	
	protected $_html = '
	
	<body data-spy="scroll">

	<!-- TOP MENU NAVIGATION -->
<div class="navbar navbar-fixed-top">
	<div class="navbar-inner">
		<div class="container">
	
			<a class="brand pull-left" href="#">
	
			</a>
	
			<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
				<span class="icon-bar"></span>
				<span class="icon-bar"></span>
				<span class="icon-bar"></span>
			</a>
		
			<div class="nav-collapse collapse">
				<ul id="nav-list" class="nav pull-right btn-group">
					<li><a href="#home">Inicio</a></li>
					<li><a href="#about">Objetivos</a></li>
					<li><a href="#updates">Descargas</a></li>
					<li><a href="#screenshots">Servicios</a></li>
					<li><a href="#contact">Contacto</a></li>
				</ul>
			</div>
		
		</div>
	</div>
</div>
	
	';
	
	}
	

	
class Templatecontent extends Template{
	
	protected $_html = '
	
contenido html (me quedo largo el tema y tuve que acortarlo)
	
	';

	}
class Templatefooter extends Template{
	
	protected $_html = '
	
	
<!-- FOOTER -->

<div class="footer container container-fluid">



</div>

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/bootstrap-collapse.js"></script>
<script src="js/bootstrap-scrollspy.js"></script>
<script src="fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
<script src="fancybox/jquery.fancybox-1.3.4.pack.js"></script>
<script src="js/init.js"></script>
<script src="core/controller.js"></script>
</body>
</html>

	
	';
	
	}
patherfactory.php

Código:
<?php
require_once('xcontrolador.php');
	
	
class FactoryTemplate{
	
	
	public static function createTemplate($name){
		
		$baseclass = 'Template';
		$targetclass = $baseclass.$name;
		
		
		if(class_exists($targetclass) && is_subclass_of($targetclass,$baseclass)){
			
			return new $targetclass;
			
			}else{
				
				throw new Exception("El tipo de archivo '$name'.php no existe");
				
				}
		
		
		}
	
	
	}
	
	
	
	

?>


	
	
?>
xcontrolador.js

Código:
function send(){
	
	$.ajax({
		type:"POST",
		datatype:"json",
		url:"http://www.miweb.com/jscontroller.php",
		contentType: "application/json; charset=utf-8",
		async:false,
		data:{
			
			opt:"SEND"
			
			},
		success:function(data){ 
		if(data.sendEmail == "OK")
		{ 
		$("#formSend").attr({'style':'display:block'});
					
		}
				
				              }
		
		});
	
	
	
	}

jscontroller.php

Código:
<?php
require_once('core.php');
session_start();

if($_POST["opt"] == "SEND"){
	
$sendEmail = "OK";
$tabla = "HOLA SOY Json";



$result = array("tabla"=>$tabla,"sendEmail"=>$sendEmail);	
echo json_encode($result,JSON_FORCE_OBJECT);
exit(0);
	}


?>