Problema al acceder a PHP en servidor local

  • Autor Autor adrianespasa
  • Fecha de inicio Fecha de inicio
A

adrianespasa

Dseda
SEO
Hola Beteanos, tengo un problema con PHP que me esta superando :banghead:

Diseñe un sitio simple, para realizar unas practicas de xhtml y php. La maquete y la pase a dreamweaver.

Después lo que hice, fue comenzar a aplicarle PHP, en donde al boton "Historia" le asigne la direccion index.php?content=historia, de manera que al presionar el ese boton, en el index apareciera el contenido de "Historia".

Todo bien hasta ahí, al presionar el botón, pasa eso, y se ve correctamente. Pero cuando accedo a index.php, me tira un error (el wamp, ya que todo esto lo hago en un servidor local).

Acá les adjunto el error:

http://3.bp.blogspot.com/-eVmfBQIeO...Uc/iXR7QdeE4tc/s1600/error+sitiotelemundo.png (copien y pegueen ese link, si no ven bien la imagen de abajo)

error sitiotelemundo.webp

y el codigo de la pagina:

Insertar CODE, HTML o PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Telemundo Satelital</title>
<link href="estilos.css" rel="stylesheet" type="text/css" />


[COLOR=#ff0000]<?php [/COLOR]
[COLOR=#ff0000]$content=$_GET['content'];[/COLOR]
[COLOR=#ff0000]?>[/COLOR]


</head>


<body>
<div id="pantalla">
  <div id="cuerpo_centro">
      <div id="cuerpo">
      
        <div id="left">
          <div id="left_top"></div>
          <div id="left_midlle">
            <h3>Contacto</h3>
            <div class="texto_contacto" id="left_middle_contacto_foto">Dirección: <br />
9 de julio 1912 - CP 5500<br />
telemundosatelital@hotmail.com<br />
Fono: 0054+261+4251774<br />
Mendoza, Argentina.</div>
            <h3>Equipos</h3>
            <ul>
              <li class="texto_contacto"><a href="#">ENLACE DE TELEVISION VIA MICROONDAS.</a></li>
              <li class="texto_contacto"><a href="#">TRANSMISOR DE TV EN UHF CHANNEL 14</a></li>
              <li class="texto_contacto"><a href="#">ANTENAS PARABOLICAS FOCO PRIMARIO Y OFFSET.</a></li>
              <li class="texto_contacto"><a href="#">ENLACE PORTATIL MICROONDAS PARA CAMARAS-MOVIL EXTERIORES.</a></li>
              <li class="texto_contacto"><a href="#">SISTEMA MONITOREO POR IMÁGENES ON LINE</a></li>
              <li class="texto_contacto"><a href="#">AMPLIFICADORES BOOSTER DE SEÑALES DE TV EN VHF Y UHF</a></li>
              <li class="texto_contacto"><a href="#">CABLE COAXIAL ESPECIAL</a></li>
              <li class="texto_contacto"><a href="#"> ANTENAS PARA WIFI PARABOLICAS</a></li>
              <li class="texto_contacto"><a href="#">CAMARAS DE IP SEGURIDAD</a></li>
              <li class="texto_contacto"><a href="#">TELEVISOR MONITOR LCD 7.7' MULTINORMA</a></li>
            </ul>
            <h3>Servicios</h3>
            <ul>
              <li class="texto_contacto"><a href="#">Instalacion de Transmisor de Televisión en UHF - CANAL 14</a></li>
              <li class="texto_contacto"><a href="#">Instalacion Enlace de Televisión Vía Microondas en 2400Mhz para traslado de Televisión</a></li>
              <li class="texto_contacto"><a href="#">Antena de Microondas de 2,4Ghz para enlace de TV</a></li>
            </ul>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
            <p>&nbsp;</p>
          </div>
          <div id="left_bottom"></div>
        </div>
        <div id="right">
          <div id="right_botonera">
            <div id="right_botonera_left"></div>
            <div id="right_botonera_midlle">
              <ul>
                <li><a href="index.php">Inicio</a></li>
                <li><a href="index.php?content=historia">Historia</a></li>
                <li><a href="#">Servicio</a></li>
                <li><a href="#">Ventas</a></li>
                <li style="background:none;"><a href="#">Contacto</a></li>
              </ul>
            </div>
            <div id="right_botonera_right"></div>
          </div>
          <div id="right_logo"></div>
          <div id="right_contenido">
            <div id="right_contenido_left"></div>
            <div id="right_contenido_middle">
              <div id="cuerpo_centro_titulo"> 
                <h2>ENLACE DE TELEVISIoN VIA MICROONDAS</h2>
              </div>
              <div id="cuerpo_centro_articulo">
                <div id="cuerpo_centro_foto"><img src="http://forobeta.com/images/equipo_1.jpg" width="160" height="175" />
                </div>
                <div id="cuerpo_centro_texto">
                  
[COLOR=#ff0000]                 <?php[/COLOR]

[COLOR=#ff0000]      switch($content){[/COLOR]

[COLOR=#ff0000]          case "historia":[/COLOR]
[COLOR=#ff0000]          include ("historia.php");[/COLOR]
[COLOR=#ff0000]          break;[/COLOR]

[COLOR=#ff0000]          default:[/COLOR]
[COLOR=#ff0000]          echo ("deafeasffrweg");[/COLOR]

[COLOR=#ff0000]          }[/COLOR]

[COLOR=#ff0000]      ?>[/COLOR]

</div>
              </div>
            </div>
            <div id="right_contenido_right"></div>
          </div>
        </div>
        
        
      </div>
  </div>
</div>
</body>
</html>


Porque piensan que pasa esto?

Gracias!:smile1:
 
Última edición:
Tendrías que imprimer que te trae [content], para tener una idea mas clara.
 
El error indica que no hay ninguna variable GET. En lugar que hagas un botón de formulario, prueba con la URL normal y prueba que funcione. Si es un botón de formulario, la tag form, debe tener como action el index.
 
tu variable debe estar vacia, puedes revisar el contenido de la variable así:

Insertar CODE, HTML o PHP:
var_dump($_GET['content']);

lo que puedes hacer es hacer algo como esto:

Insertar CODE, HTML o PHP:
if(isset($_GET['content'])){
$content = $_GET['content'];
}

Osea si es que existe esa variable, la asigna ...
ahora tienes que revisar tu codigo y ver en que parte se usa la variable $content para que sepas que parte la puede afectar tal medida.

si sabes que esa variable se define mediante la url:

http:/ /misitio.com/index.php?content=archivos

Saludos!
 
el error es el que comenta el compañero jackl007

en php 5.3 (creo que en realidad desde php5) el error de variable no definida aparece en la web como aviso de error.

en php 4 no era un error en sí..
La prueba es wordpress mismo.. si desactivan el error_reporting() que lleva en el config verán un montón de errores isset de los plugins principalmente...

así que básicamente al capturar variables get y post siempre tienes que hacer un isset()

así mismo si haces un echo de cualquier variable que no contenga un valor dará error..
así que es mejor inicializarlas aunque sea con valor vacío..

PHP:
$content = '';
if (isset($_GET['content']))
  $content = $_GET['content']

ahora.. si de ese $content haces un include o algo.. tendrás que comprobar que no esté vacia..
PHP:
if (strlen($content) > 0) {
  //do stuff
}
 
Por seguridad no se debe mostrar la estructura interna de la aplicación, de esa forma solo serás presa fácil para los hackers

Cambia esta URL:

HTML:
http://tusitio.com/index.php?content=historia

A esta URL

HTML:
http://tusitio.com/historia/

Debes reescribir tus URL mediante .htaccess

En otras palabras utiliza enlaces permanentes (permalinks) es muy bueno para el SEO el otro no sirve.

Salutes…
 
Gracias a todos por sus respuestas. La verdad es que ya termine el cursado de desarrollo web, pero justamente estoy haciendo estas practicas para poder terminarlo y eliminar este tipo de dudas.

Mucho no termine de entender algunas cosas. Pero por lo que entendi, el error viene xq a index.php, no le he asignado ningun valor.
La cosa es que no entiendo xq a index.php haya que asignarle un valor, ya que directamente con la funcion "default", de "switch", ya es suficiente.

Decidi probar esto en un servidor real online y funciona todo ok Enlace eliminado (si presionan "historia" funciona todo ok)

Porque en el servidor local de WAMP me tira un error?

En realidad la pregunta es, estaria bien que la dejase asi a la pagina, o en el futuro me va a afectar en algo?

Disculpen mi ignorancia, si ya contestaron esta pregunta.

Gracias :smile1:
 
Última edición:
Decidi probar esto en un servidor real online y funciona todo ok
...
Porque en el servidor local de WAMP me tira un error?

Posiblemente porque el "error_reporting" de PHP en tu servidor local de WAMP no está configurado como tu servidor real.
 
Atrás
Arriba