Foros del Web » Programando para Internet » PHP »

Archivo existente en directorio

Estas en el tema de Archivo existente en directorio en el foro de PHP en Foros del Web. Vereis, estoy creando un panel de logueo, y para poder ponerlo en mantenimiento cuando lo necesite puse <? if(@chdir('./directorio_a_testear')){ echo 'Si está deve mostrar el ...
  #1 (permalink)  
Antiguo 17/06/2009, 08:38
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Archivo existente en directorio

Vereis, estoy creando un panel de logueo, y para poder ponerlo en mantenimiento cuando lo necesite puse

<?

if(@chdir('./directorio_a_testear')){
echo 'Si está deve mostrar el contenido del mantenimiento';
}else{
echo 'Si no está mostrará el menu';
}?>

Si el archivo no esta me sale el menu hasta ahi todo bien, pero cuando añado el directorio Sale el contenido 2 segundos, sin acabar de cargar la página y luego vuelve a salir el menu de logueo envez de mostrar "panel en mantenimiento"

alguien sabe que pasa?

el codigo es este:

Código PHP:
<?
if($_COOKIE["ucnnick"]) {
// Incluimos la informacion sobre el usuario
if(file_exists("usuarios/$_COOKIE[ucnnick].php")) {
require (
"usuarios/$_COOKIE[ucnnick].php");
}
else
{
echo 
"" ;
}
?> 
<?
// Usuarios en linea
$path2 "mensajes/"
// Contar el total
$dir2 opendir($path2);
$i 0;
while (
$elemento readdir($dir2))
{
$elemento2 strtolower($elemento);
if (
strpos($elemento2".php") > 0) {
include(
"mensajes/$elemento2");
if(
$destinatario == $ucnnick) {
$i++;
}
}
}
if (
$i != "0") { 
echo 
"<script>
function BlinkTxt() {
texto = document.getElementsByTagName('blink');
for (i=0; i<texto.length; i++)
if (texto[i].style.visibility=='hidden') {
texto[i].style.visibility='visible';
} else {
texto[i].style.visibility='hidden';
}
setTimeout('BlinkTxt()',100);
}
onload=BlinkTxt;
</script><blink>($i) </blink>" 

}
closedir($dir2);
?>
<? 

if(@chdir('./directorio_a_testear')){ 
   echo 
'Panel en mantenimiento'
}else{ 
   echo 
'<br>
<a href="index.php?id=noticiasenviar">Enviar noticias</a><br>
<a href="index.php?id=enlacesenviar">Enviar enlaces</a><br>
<a href="index.php?id=descargasenviar">Enviar descargas</a><br>
<a href="index.php?id=modsenviar">Enviar mods</a><br>
<br>
<a href="salir.php">Salir</a>'

}
?> 
 
<?
}
else {
?>

<form method="post" action="entrar.php">
<a href="/?s=forgot"><span id="information">&iquest;Problemas con tu cuenta?</span></a>
<p align=center>Nk:<input type="text" name="cnnick" class="form"><br>
<p align=center>ps:<input type="password" name="cnpass" class="form"><br>
<p align=center><input type="submit" name="entrar" value="Entrar" class="form">
  <input type="hidden" name="id" value="<? echo $_SERVER['REQUEST_URI'?>">
</form>


<?
}
?>
  #2 (permalink)  
Antiguo 17/06/2009, 08:46
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Usa exit para que no siga ejecutando el script.
  #3 (permalink)  
Antiguo 17/06/2009, 08:49
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

perdona soy algo nuevo en esto xD donde lo coloco el exit? Podrias ponerlo tu por favor?
  #4 (permalink)  
Antiguo 17/06/2009, 08:52
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Pues antes de lo que no deseas que se ejecute.

Código PHP:
echo "Esto si se ejecuta";

exit;

echo 
"Esto no se ejecuta"
A parte de este foro tambien ayuda mucho la documentación oficial de PHP en Español y/o Inglés.

http://es.php.net/manual/es/function.exit.php

Saludos!
  #5 (permalink)  
Antiguo 17/06/2009, 08:55
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

pff pero hay un problema, si pongo el exit como ese script esta en un bloque, me deja de cargar el retro de la página y se queda la página a medias
  #6 (permalink)  
Antiguo 17/06/2009, 09:05
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Divide y venceras. No quieras hacer todo en el mismo script.
  #7 (permalink)  
Antiguo 17/06/2009, 09:07
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

Esque deve estar todo en el mimso script, ya que esta en un bloque al medio de la página y solo lo muestra cuando te logueas
  #8 (permalink)  
Antiguo 17/06/2009, 09:12
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Mete el menu de logueo dentro del ELSE

Código PHP:
<? 

if(@chdir('./directorio_a_testear')){ 
   echo 
'Panel en mantenimiento'
}else{ 
   echo 
'<br>
<a href="index.php?id=noticiasenviar">Enviar noticias</a><br>
<a href="index.php?id=enlacesenviar">Enviar enlaces</a><br>
<a href="index.php?id=descargasenviar">Enviar descargas</a><br>
<a href="index.php?id=modsenviar">Enviar mods</a><br>
<br>
<a href="salir.php">Salir</a>'


// AQUÍ MENU DE LOGUEO
}?>
Saludos!
  #9 (permalink)  
Antiguo 17/06/2009, 09:29
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

El menu de logueo ya esta incluido ahi que es

<a href="index.php?id=noticiasenviar">Enviar noticias</a><br>
<a href="index.php?id=enlacesenviar">Enviar enlaces</a><br>
<a href="index.php?id=descargasenviar">Enviar descargas</a><br>
<a href="index.php?id=modsenviar">Enviar mods</a><br>
  #10 (permalink)  
Antiguo 17/06/2009, 09:34
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Quise decir el formulario de LOGIN !
  #11 (permalink)  
Antiguo 17/06/2009, 09:51
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

Ok perdon...


Pero no me funciona...


<?
if($_COOKIE["ucnnick"]) {
// Incluimos la informacion sobre el usuario
if(file_exists("usuarios/$_COOKIE[ucnnick].php")) {
require ("usuarios/$_COOKIE[ucnnick].php");
}
else
{
echo "" ;
}
?>
<?
// Usuarios en linea
$path2 = "mensajes/";
// Contar el total
$dir2 = opendir($path2);
$i = 0;
while ($elemento = readdir($dir2))
{
$elemento2 = strtolower($elemento);
if (strpos($elemento2, ".php") > 0) {
include("mensajes/$elemento2");
if($destinatario == $ucnnick) {
$i++;
}
}
}
if ($i != "0") {
echo "<script>
function BlinkTxt() {
texto = document.getElementsByTagName('blink');
for (i=0; i<texto.length; i++)
if (texto[i].style.visibility=='hidden') {
texto[i].style.visibility='visible';
} else {
texto[i].style.visibility='hidden';
}
setTimeout('BlinkTxt()',100);
}
onload=BlinkTxt;
</script><blink>($i) </blink>" ;
}
closedir($dir2);
?>
<?

if(@chdir('./directorio_a_testear')){
echo 'Panel en mantenimiento';
}else{
echo '<br>
<a href="index.php?id=noticiasenviar">Enviar noticias</a><br>
<a href="index.php?id=enlacesenviar">Enviar enlaces</a><br>
<a href="index.php?id=descargasenviar">Enviar descargas</a><br>
<a href="index.php?id=modsenviar">Enviar mods</a><br>
<br>
<a href="salir.php">Salir</a>';

// AQUÍ MENU DE LOGUEO
<form method="post" action="entrar.php">
<a href="/?s=forgot"><span id="information">&iquest;Problemas con tu cuenta?</span></a>
<p align=center>Nk:<input type="text" name="cnnick" class="form"><br>
<p align=center>ps:<input type="password" name="cnpass" class="form"><br>
<p align=center><input type="submit" name="entrar" value="Entrar" class="form">
<input type="hidden" name="id" value="<? echo $_SERVER['REQUEST_URI'] ?>">
</form>
}?>

<?
}
else {
?>
<?
}
?>


Me tira
Parse error: syntax error, unexpected '<' in /home/webcindario/h/f/hfe/web/index.php on line 212

joeeerrr
  #12 (permalink)  
Antiguo 17/06/2009, 10:11
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Macho has metido el formulario de login a la brava! debes pintarlo con un echo....
  #13 (permalink)  
Antiguo 17/06/2009, 10:12
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

Joer perdona las molestias, pero como ya te dije antes no tengo ni idea de php, estoy intentando aprender

Puedes hacerlo tu y ya termino de una vez?

pff
  #14 (permalink)  
Antiguo 17/06/2009, 10:22
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

$·%%&$/&%$/&%(/&/%·$·%&/( /&&//(

Código PHP:
// AQUÍ MENU DE LOGUEO
echo '<form method="post" action="entrar.php">
<a href="/?s=forgot"><span id="information">&iquest;Problemas con tu cuenta?</span></a>
<p align=center>Nk:<input type="text" name="cnnick" class="form"><br>
<p align=center>ps:<input type="password" name="cnpass" class="form"><br>
<p align=center><input type="submit" name="entrar" value="Entrar" class="form">
<input type="hidden" name="id" value="'
.$_SERVER['REQUEST_URI'].'">
</form>'

  #15 (permalink)  
Antiguo 17/06/2009, 10:41
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

LO siento, pero poniendolo asi no sale el login no aparece por ningun lado, mira dejalo que te estoy molestando demasiado
  #16 (permalink)  
Antiguo 17/06/2009, 10:50
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Te he revisado el código mira a ver si te vale esto

Código PHP:
<?
if(@chdir('./directorio_a_testear'))
{
    echo 
'Panel en mantenimiento';
}
else
{
    if(
$_COOKIE["ucnnick"]) {
    
// Incluimos la informacion sobre el usuario
    
if(file_exists("usuarios/$_COOKIE[ucnnick].php")) {
    require (
"usuarios/$_COOKIE[ucnnick].php");
    }
    else
    {
    echo 
"" ;
    }
    
?>
    <?
    
// Usuarios en linea
    
$path2 "mensajes/";
    
// Contar el total
    
$dir2 opendir($path2);
    
$i 0;
    while (
$elemento readdir($dir2))
    {
    
$elemento2 strtolower($elemento);
    if (
strpos($elemento2".php") > 0) {
    include(
"mensajes/$elemento2");
    if(
$destinatario == $ucnnick) {
    
$i++;
    }
    }
    }
    if (
$i != "0") {
    echo 
"<script>
    function BlinkTxt() {
    texto = document.getElementsByTagName('blink');
    for (i=0; i<texto.length; i++)
    if (texto[i].style.visibility=='hidden') {
    texto[i].style.visibility='visible';
    } else {
    texto[i].style.visibility='hidden';
    }
    setTimeout('BlinkTxt()',100);
    }
    onload=BlinkTxt;
    </script><blink>($i) </blink>" 
;
    }
    
closedir($dir2);
    
?>
    <?
    
        
echo '<br>
        <a href="index.php?id=noticiasenviar">Enviar noticias</a><br>
        <a href="index.php?id=enlacesenviar">Enviar enlaces</a><br>
        <a href="index.php?id=descargasenviar">Enviar descargas</a><br>
        <a href="index.php?id=modsenviar">Enviar mods</a><br>
        <br>
        <a href="salir.php">Salir</a>'
;
    
    
?>
    
    <?
    
}
    else 
    {
    
?>
        <form method="post" action="entrar.php">
        <a href="/?s=forgot"><span id="information">&iquest;Problemas con tu cuenta?</span></a>
        <p align=center>Nk:<input type="text" name="cnnick" class="form"><br>
        <p align=center>ps:<input type="password" name="cnpass" class="form"><br>
        <p align=center><input type="submit" name="entrar" value="Entrar" class="form">
          <input type="hidden" name="id" value="<? echo $_SERVER['REQUEST_URI'?>">
        </form>
    <?
    
}
    
?>    
}
Lo que he hecho es ver si la web se encuentra en mantenimiento y en caso afirmativo mostrar el mensaje. En caso contrario todo lo demas.
  #17 (permalink)  
Antiguo 17/06/2009, 10:51
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Cita:
Iniciado por SeaPirates Ver Mensaje
LO siento, pero poniendolo asi no sale el login no aparece por ningun lado, mira dejalo que te estoy molestando demasiado
No es molestia, y si te he dado esa sensación no fue mi intención.

Saludos!
  #18 (permalink)  
Antiguo 17/06/2009, 11:17
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

jeorr que asco de php! xD mira:

Parse error: syntax error, unexpected $end in /home/webcindario/h/f/hfe/web/index.php on line 78
  #19 (permalink)  
Antiguo 17/06/2009, 11:19
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

Corregido, copiate todo el código y reemplazalo.

Código PHP:
<?
if(@chdir('./directorio_a_testear'))
{
    echo 
'Panel en mantenimiento';
}
else
{
    if(
$_COOKIE["ucnnick"]) {
    
// Incluimos la informacion sobre el usuario
    
if(file_exists("usuarios/$_COOKIE[ucnnick].php")) {
    require (
"usuarios/$_COOKIE[ucnnick].php");
    }
    else
    {
    echo 
"" ;
    }
    
?>
    <?
    
// Usuarios en linea
    
$path2 "mensajes/";
    
// Contar el total
    
$dir2 opendir($path2);
    
$i 0;
    while (
$elemento readdir($dir2))
    {
    
$elemento2 strtolower($elemento);
    if (
strpos($elemento2".php") > 0) {
    include(
"mensajes/$elemento2");
    if(
$destinatario == $ucnnick) {
    
$i++;
    }
    }
    }
    if (
$i != "0") {
    echo 
"<script>
    function BlinkTxt() {
    texto = document.getElementsByTagName('blink');
    for (i=0; i<texto.length; i++)
    if (texto[i].style.visibility=='hidden') {
    texto[i].style.visibility='visible';
    } else {
    texto[i].style.visibility='hidden';
    }
    setTimeout('BlinkTxt()',100);
    }
    onload=BlinkTxt;
    </script><blink>($i) </blink>" 
;
    }
    
closedir($dir2);
    
?>
    <?
    
        
echo '<br>
        <a href="index.php?id=noticiasenviar">Enviar noticias</a><br>
        <a href="index.php?id=enlacesenviar">Enviar enlaces</a><br>
        <a href="index.php?id=descargasenviar">Enviar descargas</a><br>
        <a href="index.php?id=modsenviar">Enviar mods</a><br>
        <br>
        <a href="salir.php">Salir</a>'
;
    
    
?>
    
    <?
    
}
    else 
    {
    
?>
        <form method="post" action="entrar.php">
        <a href="/?s=forgot"><span id="information">&iquest;Problemas con tu cuenta?</span></a>
        <p align=center>Nk:<input type="text" name="cnnick" class="form"><br>
        <p align=center>ps:<input type="password" name="cnpass" class="form"><br>
        <p align=center><input type="submit" name="entrar" value="Entrar" class="form">
          <input type="hidden" name="id" value="<? echo $_SERVER['REQUEST_URI'?>">
        </form>
    <?
    
}
}
?>
  #20 (permalink)  
Antiguo 17/06/2009, 11:24
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 10 meses
Puntos: 9
Respuesta: Archivo existente en directorio

siiiiiiiiii!! Ahora si!!! Muchisimas gracias por tu ayuda!! +99999999
  #21 (permalink)  
Antiguo 17/06/2009, 11:49
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 17 años, 1 mes
Puntos: 48
Respuesta: Archivo existente en directorio

De nada compañero, estamos para ayudarnos!

Saludos!
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 22:31.