Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO ERROR 500 con JSON_ENCODE (php)

Estas en el tema de ERROR 500 con JSON_ENCODE (php) en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 01/08/2013, 11:01
Avatar de dario_sanz  
Fecha de Ingreso: marzo-2010
Mensajes: 94
Antigüedad: 14 años, 1 mes
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);
	}


?>
  #2 (permalink)  
Antiguo 01/08/2013, 11:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ERROR 500 con JSON_ENCODE (php)

¿Sabes que ayudaría más?

Que actives el reporte de errores de tu instalación de PHP, y/o que revises el log de errores en busca de aquello que genera el error 500.

Como puedes apreciar mostrar código y decir que tienes un error 500 no sirve de mucho, o nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/08/2013, 11:26
Avatar de dario_sanz  
Fecha de Ingreso: marzo-2010
Mensajes: 94
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: ERROR 500 con JSON_ENCODE (php)

Entiendo, pero no estoy trabajando sobre un localhost y conozco las causas del error 500, tambien utilizo el FireBug de FireFox para ver los datos que salen de la peticion.
Pero me resulta muy extraño que no encuentro algun error en el codigo que genere ese error.
Revise los llamados a los archivos y apis JS en el footer, pero creo que esta todo bien...que no me hace falta otro JQUERY para que funciones jquery+ajax...

Código HTML:
<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> 
Saludos Gracias por Contestar
  #4 (permalink)  
Antiguo 01/08/2013, 11:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ERROR 500 con JSON_ENCODE (php)

Queda claro que no sabes lo que significa un error 500, que es un error interno del servidor.

Así que no se qué relación le ves de Javascript o así, definitivamente deberías revisar una referencia de HTTP.

Y bueno, si no puedes depurar el servidor entonces el error está oculto, es imposible adivinar no más de buena fé.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 01/08/2013, 11:39
Avatar de dario_sanz  
Fecha de Ingreso: marzo-2010
Mensajes: 94
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: ERROR 500 con JSON_ENCODE (php)

Cita:
Iniciado por pateketrueke Ver Mensaje
Queda claro que no sabes lo que significa un error 500, que es un error interno del servidor.

Así que no se qué relación le ves de Javascript o así, definitivamente deberías revisar una referencia de HTTP.

Y bueno, si no puedes depurar el servidor entonces el error está oculto, es imposible adivinar no más de buena fé.
Por mas que Javascript sea un lenguaje del lado del cliente, NO TE VA RESPONDER EL JQUERY si no le incluyes el archivo necesario y por ende tampoco el json_encode de php..... te va a causar el error 500.
  #6 (permalink)  
Antiguo 01/08/2013, 11:55
Avatar de dario_sanz  
Fecha de Ingreso: marzo-2010
Mensajes: 94
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: ERROR 500 con JSON_ENCODE (php)

Gente, estos problemas pasan por tantas horas de programación y mucho sueño jejeje...

El problema era tan simple....estaba haciendo un require_once() equivocado en el archivo donde se ejecuta la función json_encode....

Saludos ya esta solucionado....
  #7 (permalink)  
Antiguo 01/08/2013, 12:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ERROR 500 con JSON_ENCODE (php)

Cita:
Iniciado por dario_sanz Ver Mensaje
Por mas que Javascript sea un lenguaje del lado del cliente, NO TE VA RESPONDER EL JQUERY si no le incluyes el archivo necesario y por ende tampoco el json_encode de php..... te va a causar el error 500.
Estás equivocado, si no incluyes el Javascript necesario sencillamente te va a dar un error en el navegador, porque ahí es donde hace falta.

El error 500 es del servidor, no del navegador.

No digas falacias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: 500, formulario, html, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:42.