Foros del Web » Programando para Internet » PHP »

Porblema rarisimo...

Estas en el tema de Porblema rarisimo... en el foro de PHP en Foros del Web. Bueno veran tengo este codigo y el problema que tengo es que cuando accedo a e asi: urldelaweb/?p=mensajes nadamas acceder me muestra: Este usuario no ...
  #1 (permalink)  
Antiguo 19/11/2009, 13:53
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Porblema rarisimo...

Bueno veran tengo este codigo y el problema que tengo es que cuando accedo a e asi:

urldelaweb/?p=mensajes


nadamas acceder me muestra:

Este usuario no existe en la base de datos

muestra el echo no se porque, sin embargo cuando accedo asi: urldelaweb/mensajes.php no me lo muestra..

Alguien sabe porque?


Código:
<div id=box-center>
	<div id=top class=blue>Mis mensajes</div>
	<div id=middle>
<?
include("login.php") ;
?>
<?
if(!file_exists("mensajes")) { mkdir("mensajes", 0777); }
if($mensajes == "nuevo") {
echo "
<script>
function revisar() {
if(formulario.cndestinatario.value.length == 0) { alert('Debes escribir un destinatario') ; return false ; }
if(formulario.cnmensaje.value.length == 0) { alert('Debes escribir un mensaje') ; return false ; }
if(formulario.cnmensaje.value.length > 255) { alert('El mensaje supera los 255 caractéres') ; return false ; }
}
</script>
		<ul id=tabs-buttons class=blue>
			<li class=selected><a href=/?p=mensajes><span>Bandeja de entrada</span></a><i></i></li>
			<li><a href=#><span>Enviados</span></a><i></i></li>
			<li><a href=#><span>Papelera</span></a><i></i></li>

			<a href=/?p=mensajes&mensajes=nuevo action=new class=button style=margin-right: 5px; float: right;><b>Escribir</b><i></i></a>
			<br style=clear: both;><br>
		</ul>

<table align=center><tr><td>

<form name=formulario method=post action=?p=mensajes onsubmit=\"return revisar()\">
<b>Para:</b><br>
<input width=250 align=center type=text name=cndestinatario maxlength=20 class=field><br>
<b>Mensaje:</b><br>
<textarea width=70% align=center name=cnmensaje cols=30 rows=5 class=field></textarea><br><br>
<input align=center type=submit name=enviar value=Enviar class=field>

</form>
</td>
</tr>
</table>" ;
}
else {
echo "<ul id=tabs-buttons class=blue>
			<li class=selected><a href=/?p=mensajes><span>Bandeja de entrada</span></a><i></i></li>
			<li><a href=#><span>Enviados</span></a><i></i></li>
			<li><a href=#><span>Papelera</span></a><i></i></li>


			<a href=/?p=mensajes&mensajes=nuevo action=new class=button style=margin-right: 5px; float: right;><b>Escribir</b><i></i></a>
			<br style=clear: both;><br>
		</ul>" ;
}
if($responder) {
echo "<script>
function revisar() {
if(formulario.cndestinatario.value.length == 0) { alert('Debes escribir un destinatario') ; return false ; }
if(formulario.cnmensaje.value.length == 0) { alert('Debes escribir un mensaje') ; return false ; }
if(formulario.cnmensaje.value.length > 255) { alert('El mensaje supera los 255 caractéres') ; return false ; }
}
</script>

<table align=center><tr><td>
<form name=formulario method=post action=index.php?id=mensajes onsubmit=\"return revisar()\">
<b>Para:</b><br>
<input type=text name=cndestinatario maxlength=20 value=\"$responder\" class=field><br>
<b>Mensaje:</b><br>
<textarea name=cnmensaje cols=30 rows=5 class=field></textarea><br><br>
<input type=submit name=enviar value=Enviar class=field>
</form>
</td>
</tr>
</table>";
}
if($borrar) {
$_GET["borrar"];
@include("mensajes/$borrar.php");
// si el usuario borra un mensaje
if ($destinatario = $_COOKIE["ucnnick"]) {
@unlink("mensajes/$borrar.php") ;
echo "<p>El mensaje ha sido borrado con éxito. Haz click <a href=index.php?id=mensajes>aquí</a> para regresar." ;
}
// Si un usuario intenta borra un mensaje que no es suyo
if ($destinatario != $_COOKIE["ucnnick"]) {
echo "<p>El mensaje no ha sido borrado. Haz click <a href=index.php?id=mensajes>aquí</a> para regresar." ;
}
}
else {
if($enviar) {

if(!file_exists("usuarios/$cndestinatario.php")) {
echo "<p>Este usuario no existe en la base de datos. Haz click <a href=javascript:history.back()>aquí</a> para regresar.";
}
else {
$cnremitente = $_COOKIE["ucnnick"] ;

function quitar($texto) {
$texto = trim($texto) ;
$texto = htmlspecialchars($texto) ;
return $texto ;
}
$cnfecha = time() ;
$cndestinatario = quitar($cndestinatario) ;
$cnmensaje = quitar($cnmensaje) ;

$nuevo .= "<"."?\n";
$nuevo .="\$fecha = \"$cnfecha\";\n";
$nuevo .="\$remitente = \"$cnremitente\";\n";
$nuevo .="\$destinatario = \"$cndestinatario\";\n";
$nuevo .="\$mensaje = \"$cnmensaje\";\n";
$nuevo .= "?".">";

if(!file_exists("mensajes/contador.txt")) { $ncrea = fopen("mensajes/contador.txt","w"); fwrite($ncrea, "0"); fclose($ncrea); }
$file = "mensajes/contador.txt"; 
$nclicks = fopen($file,"r+");
$clicks = fgets($nclicks,1024); 
$clicks++; 
rewind($nclicks);
fwrite($nclicks,$clicks);
fclose($nclicks);


$crea = fopen("mensajes/$clicks.php","w");
fputs($crea,$nuevo);
fclose($crea);

echo "<p>El mensaje ha sido enviado con éxito. Haz click <a href=index.php?id=mensajes>aquí</a> para regresar." ;
}
}
else {
echo "<br><br>";
//definimos el path de acceso 
$path = "mensajes/"; 
//abrimos el directorio 
$dir = opendir($path); 
//Mostramos las informaciones 
while ($elemento = readdir($dir)) 
{ 
$elemento1 = strtolower($elemento); 
if (strpos ($elemento1, ".php") > 0){
include("mensajes/$elemento1");
// Asignamos el archivo sin extension
$elemento2 = str_replace(".php","",$elemento); 
if($destinatario == $ucnnick) {
// fecha

$mesesano = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto",
"Septiembre","Octubre","Noviembre","Diciembre") ;
$diames = date(j,$fecha) ; $mesano = date(n,$fecha) - 1 ; $ano = date(Y,$fecha) ; $hora = date("h:i A",$fecha) ;
$fecha = "$diames $mesesano[$mesano] $ano $hora" ;
echo "
<table width=100% border=0 cellpadding=1 cellspacing=3 class=tabla_mensaje>
<tr>
<td><b>$remitente</b></td>
<td><div align=right><b>$fecha</b></div></td>
</tr>
<tr>
<td colspan=2>$mensaje</td>
</tr>
<tr>
<td colspan=2>
<div align=right>
<a href=\"index.php?id=mensajes&responder=$remitente\">Responder</a> |
<a href=\"index.php?id=mensajes&borrar=$elemento2\">Borrar</a>
</div>
</td>
</tr>
</table><br>" ;
}
} 
} 
//Cerramos el directorio 
closedir($dir);
}
}
?> 
</div>
	<div id=bottom></div>
</div>
  #2 (permalink)  
Antiguo 19/11/2009, 14:30
Avatar de jenusys  
Fecha de Ingreso: diciembre-2008
Ubicación: Ahí mismo.
Mensajes: 216
Antigüedad: 15 años, 4 meses
Puntos: 11
Respuesta: Porblema rarisimo...

La verdad no me siento con ánimos de leer todo tu código pero sí te podría preguntar:

¿Qué estás condicionando con: if(!file_exists("usuarios/$cndestinatario.php")) { ?
A grosso modo veo que $cndestinatario.php no es una variable válida aquí. ¿No es el nombre del archivo lo que quieres poner, no le sobra el signo pesos?

¿El archivo cndestinatario qué trae?
  #3 (permalink)  
Antiguo 20/11/2009, 00:40
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Porblema rarisimo...

los datos del usuarios se almacenan en un php entonces cada usuario tiene un archivo php con su nombre:

nombredeusuario.php

entonces esto significa:

if(!file_exists("usuarios/$cndestinatario.php")) {

si el archivo usuarios/nombredeusuario.php existe muestra el echo
el destinatario es el campo que se rellena para quien va, en este caso el archivo del usuario

nombredeusuario.php


pero muestra el echo, antes no lo mostrava y la cosa es que si accedo sin incluirlo asi:
index.php?p=mensajes sale bien y no muestra el echo :S
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 08:20.