Foros del Web » Programando para Internet » PHP »

Porque No funciona???

Estas en el tema de Porque No funciona??? en el foro de PHP en Foros del Web. Hola Amigos... pues de nuevo soy yo... molestandolos.. pero tengo un problema.. y quisiera saber como solucionarlo... el problema es el siguiente.. tengo una base ...
  #1 (permalink)  
Antiguo 11/10/2004, 09:14
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Porque No funciona???

Hola Amigos... pues de nuevo soy yo... molestandolos..
pero tengo un problema.. y quisiera saber como solucionarlo...
el problema es el siguiente..
tengo una base de datos llamada sersaprosa con una tabla llamada usuarios donde tengo almacenado a todos los usuarios de sesiones
el problema es el siguiente quiero hacer una pagina que al momento de logearse alguien... lo indentifique para poder almacenar el usuario junto con otros datos... bueno lo que tengo es lo siguiente


este es mi formulario de identificacion (quiero aclarar que este formulario me funciona perfectamente cuando quiero simplemente hacer uso de una sesion) por otra parte este codigo me lo proporciono muy generosamente CLUSTER

<html>
<title>Gesti&oacute;n Usuarios -</title>
<style type="text/css">
<!--
.botones { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9pt; color: #FFFFFF; background-color: #0099FF; border-color: #000000 ; border-top-width: 1pix; border-right-width: 1pix; border-bottom-width: 1pix; border-left-width: 1pix}
.imputbox { font-size: 10pt; color: #000099; background-color: #CCFFCC; font-family: Verdana, Arial, Helvetica, sans-serif; border: 1pix #000000 solid; border-color: #000000 solid; font-weight: normal}
.Estilo1 {
font-family: "Times New Roman", Times, serif;
font-size: 12px;
}
.Estilo2 {
color: #FFFFFF;
font-size: 24px;
}
.Estilo3 {
font-size: 16px;
font-weight: bold;
color: #999999;
}
.Estilo5 {color: #999999}
.Estilo6 {color: #999999; font-size: 24px; }
-->
</style>

<body bgcolor="#FFFFFF">
<p align="center">&nbsp;</p>
<table width="339" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#0099FF">
<tr>
<td width="335" bgcolor="#000066">
<table width=100% border=0 align="center" cellpadding="0" cellspacing="0" bordercolor="#009999" bgcolor="#CCFFCC">
<form action="sol_val_sup1.php" method="post">
<tr bgcolor="#0099FF">
<td height="45" colspan="2" bgcolor="#000033">
<div align="center" class="Estilo1">
<h5 class="Estilo3">Identificaci&oacute;n Usuarios</h5>
<h5><strong><span class="Estilo2"><img src="logosersa270.bmp" width="71" height="57"></span><font color="#FFFFFF"><br>
</font><span class="Estilo6">www.sersaprosa.com </span></strong></h5>
</div></td>
</tr>
<tr>
<td colspan="2">
<div align="center">
<table width="100%" border="0" cellpadding="5" cellspacing="0" bordercolor="#333333" bgcolor="#000066">
<tr valign="middle">
<td colspan="2" height="30">
<div align="center">
<?
// Mostrar error de Autentificación.
include ("aut_mensaje_error.inc.php");
if (isset($_GET['error_login'])){
$error=$_GET['error_login'];
echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Error: $error_login_ms[$error]";
}
?>
</div></td>
</tr>
<tr bgcolor="#000066">
<td width="39%">
<div align="right" class="Estilo5"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Usuario : </font></strong></div></td>
<td width="61%">
<div align="left">
<input type="text" name="user" size="15" class="imputbox">
</div></td>
</tr>
<tr bgcolor="#000066">
<td width="39%">
<div align="right"><strong><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><span class="Estilo5">Password </span>: </font></strong></div></td>
<td width="61%">
<div align="left">
<input type="password" name="pass" size="15" class="imputbox">
</div></td>
</tr>
</table>
</div></td>
</tr>
<tr valign="middle">
<td height="50" colspan="2" bgcolor="#000066">
<div align="center"><font face="Arial" color=black size=2>
<input name=submit type=submit value=" Entrar " class="botones">
</font></div></td>
</tr>
</form>
</table></td>
</tr>
</table>
</body>
</html>


y en esta pagina le solicito el resultado

html><title>Resultado Busqueda por Departamento</title>


<body>

<div align="center">
<p><img src="logosersa270.gif" width="137" height="134"></p>
<p><strong>SERVICIO SALVADORE&Ntilde;O DE PROTECCION</strong></p>
<p><strong>SITIO DE CONSULTA DE EXTENCIONES TELEFONICAS INTERNAS</strong></p>
<table width="739" border="1" cellpadding="1">
<tr>
<th width="26" bgcolor="#000033" scope="col">&nbsp;</th>
<th width="671" bgcolor="#CCCCCC" scope="col"><p align="center"><strong>RESULTADO DE LA BÚSQUEDA </strong></p>
<p align="center">
<?
require("aut_verifica.inc.php");
$nivel_acceso=0;
if ($nivel_acceso < $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}

if (!isset($buscar)){
echo "Debe especificar un parámetro de búsqueda de una extensión telefónica";
echo "</html></body> \n";
exit;
}
$link = mysql_connect("websersaprosa", "root", "90210210");
mysql_select_db("sersaprosa", $link);
$result = mysql_query("SELECT usuario FROM usuarios WHERE usuario = '$user'", $link) or die (msyql_error());
if ($row = mysql_num_rows($result)){
echo "<table border = '1'> \n";
//Mostramos los nombres de las tablas
echo "<tr> \n";
while ($field = mysql_fetch_field($result)){
echo "<td><strong>$field->name</strong></td> \n";
}
echo "</tr> \n";
do {
echo "<tr> \n";
echo "<td>".$row["usuario"]."</td><br> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ninguna extensión telefónica con los parámetros solicitados !";
}
?>
</p></th>
<th width="20" bgcolor="#000033" scope="col">&nbsp;</th>
</tr>
</table>
<p align="left"><em><strong>Que desea hacer </strong></em></p>
<p align="left"><a href="cons_ext_ext.php">Realizar Nueve busqueda</a> </p>
</div>
<p><a href="http://websersaprosa">Ir al inicio </a></p>
</body>
</html>

pero al ejecutarlo me muestra el mensaje que dice ... que no existe ningun usuario... (que de hecho si existe puesto que logicamente lo nesecita para iniciar la sesion)..
se que soy un poco confuso para explicarme pero creo que el codigo dice exactamente que es lo que quiero hacer

gracias de antemano

William
  #2 (permalink)  
Antiguo 11/10/2004, 13:42
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
El autenticator, te facilita variables de sesion, las cuales son:

$_SESSION['usuario_id'] es el id del usuario
$_SESSION['usuario_login'] es nombre del usuario
$_SESSION['usuario_nivel'] su nivel

Tu vuelves a realizar un consulta inecesaria, para verificar los mismos datos que te proporciona el autentificator.

En la linea de tu codigo hay un posible error.

("SELECT usuario FROM usuarios WHERE usuario = '$user'", $link)

Cambialo por este:

("SELECT usuario FROM usuarios WHERE (usuario = $user)", $link)

Espero haberte ayudado, aunque sea un poquito, por que no soy muy experto.
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
  #3 (permalink)  
Antiguo 11/10/2004, 14:51
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Gracias

Te agradesco mucho el interes en ayudarme...
pero hice lo que me dijiste... y queda igual

ahora... quiero que entiendas mi idea....
lo que quiero es poder mostrar en el usuario de sesion en la pagina sol_val_sup1.php osea.. si el usuario de inicio de sesion se llama Juan poder colocar un saludo.... algo asi como
Hola Juan ... no se si me doy a entender..
ahora me parece que dices que el autenticator tiene definido los
$_SESSION['usuario_id'] es el id del usuario
$_SESSION['usuario_login'] es nombre del usuario
$_SESSION['usuario_nivel'] su nivel
pero como los ubico en el codigo para que cuando cargue la pagina sol_val_sup1.php .... pueda ver el nombre, el usuario y el nivel de acceso...

espero que puedan ayudarme... gracias
  #4 (permalink)  
Antiguo 11/10/2004, 16:19
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
El autentificator maneja varibles de sesion ya definidas por el mismo y puedes llamarlas en cualquier momento, ya sea para introducirlas como nuevos datos o para dar un saludo como el que se presenta en este foro.

Para llamar estas variables de sesion puedes utilizar el ejemplo que ya trae el autentificator <<pag1_restringido>>:

Código HTML:
<html>
<head>
<title>Un ejemplo de las variables de sesion</title>
</head>
<body>
<p>Acceso Autorizado:</p>
Esto es una página con acceso restringido.<br><br>
Nombre de la sesion => <? echo session_name(); ?> <br>
El ID del usuario es => <? echo $_SESSION['usuario_id'] ?><br>
Hola,<? echo $_SESSION['usuario_login'] ?>¿como estas?<br>
Usuario Nivel de Acceso => <? echo $_SESSION['usuario_nivel'] ?><br><br>
<br>
<a href="aut_gestion_usuarios.php">Gestionar usuarios</a>
<br><br>
<a href="aut_logout.php">Salir zona restringida</a>
</body>
</html> 
Cada vez que insertas el codigo PHP de autentificacion, verificas si ya se ha iniciado sesion y si no la inicias. Ademas de tener disponibles estas variables.

Código PHP:
<?
//  Autentificator
//  Gestión de Usuarios PHP+Mysql+sesiones
//  by Pedro Noves V. (Cluster)
//  [email][email protected][/email]
// ------------------------------------------
require("aut_verifica.inc.php");
$nivel_acceso=10// Nivel de acceso para esta página.
// se chequea si el usuario tiene un nivel inferior
// al del nivel de acceso definido para esta página.
// Si no es correcto, se mada a la página que lo llamo con
// la variable de $error_login definida con el nº de error segun el array de
// aut_mensaje_error.inc.php
if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
Puedes aumentar las varibles de sesion que ya trae el autentificator, solo es cuaestion de ver el codigo e incrementar los campos que verifica.

En el archivo <<aut_verifica.inc.php>> puedes ver donde estan estas variables que se activan.

Aqui te señalo donde estan, claramente encerradas entre ##### ....je je je.

Código PHP:
if (isset($_POST['user']) && isset($_POST['pass'])) {

// Conexión base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.
$db_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die(header ("Location:  $redir?error_login=0"));
mysql_select_db("$sql_db");

// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta mysql_query("SELECT ID,usuario,pass,nivel_acceso FROM $sql_tabla WHERE usuario='".$_POST['user']."'") or die(header ("Location:  $redir?error_login=1"));

 
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
 
if (mysql_num_rows($usuario_consulta) != 0) {

    
// eliminamos barras invertidas y dobles en sencillas
    
$login stripslashes($_POST['user']);
    
// encriptamos el password en formato md5 irreversible.
    
$password md5($_POST['pass']);

    
// almacenamos datos del Usuario en un array para empezar a chequear.
     
$usuario_datos mysql_fetch_array($usuario_consulta);
  
    
// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
    
mysql_free_result($usuario_consulta);
    
// cerramos la Base de dtos.
    
mysql_close($db_conexion);
    
    
// chequeamos el nombre del usuario otra vez contrastandolo con la BD
    // esta vez sin barras invertidas, etc ...
    // si no es correcto, salimos del script con error 4 y redireccionamos a la
    // página de error.
    
if ($login != $usuario_datos['usuario']) {
           
Header ("Location: $redir?error_login=4");
        exit;}

    
// si el password no es correcto ..
    // salimos del script con error 3 y redireccinamos hacia la página de error
    
if ($password != $usuario_datos['pass']) {
        
Header ("Location: $redir?error_login=3");
        exit;}

    
// Paranoia: destruimos las variables login y password usadas
    
unset($login);
    unset (
$password);

    
// En este punto, el usuario ya esta validado.
    // Grabamos los datos del usuario en una sesion.
    
     // le damos un mobre a la sesion.
    
session_name($usuarios_sesion);
     
// incia sessiones
    
session_start();

    
// Paranoia: decimos al navegador que no "cachee" esta página.
    
session_cache_limiter('nocache,private');
    
    
// Asignamos variables de sesión con datos del Usuario para el uso en el
    // resto de páginas autentificadas.
#####################AQUI ESTAN LAS VARIABLES ###########
    // definimos usuarios_id como IDentificador del usuario en nuestra BD de usuarios
    
$_SESSION['usuario_id']=$usuario_datos['ID'];
    
    
// definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_nivel']=$usuario_datos['nivel_acceso'];
    
    
//definimos usuario_nivel con el Nivel de acceso del usuario de nuestra BD de usuarios
    
$_SESSION['usuario_login']=$usuario_datos['usuario'];

    
//definimos usuario_password con el password del usuario de la sesión actual (formato md5 encriptado)
    
$_SESSION['usuario_password']=$usuario_datos['pass'];

#####################AQUI TERMINAN LAS VARIABLES ###########
    // Hacemos una llamada a si mismo (scritp) para que queden disponibles
    // las variables de session en el array asociado $HTTP_...
    
$pag=$_SERVER['PHP_SELF'];
    
Header ("Location: $pag?");
    exit;
    
   } else {
      
// si no esta el nombre de usuario en la BD o el password ..
      // se devuelve a pagina q lo llamo con error
      
Header ("Location: $redir?error_login=2");
      exit;}

Bueno hice mi mejor esfuerzo, espero que sirva....
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
  #5 (permalink)  
Antiguo 11/10/2004, 17:15
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Gracias

Ahora todo esta bien......... te agradesco mucho tu ayuda... ahora solo nesecito un empujoncito mas.............

este como un ultimo favor.....

luego de haber hecho todo lo que ya me enseñaste... quiero guardar en una base de datos que ya tengo los datos que llena un usuario en un formulario el formulario que llena es el siguiente


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<?
require ("aut_verifica.inc.php");
$nivel_acceso=10;
if ($nivel_acceso < $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
<? echo $_SESSION['usuario_id'] ?><br>
<H1>BIEN VENIDO,<? echo $_SESSION['usuario_login'] ?></H1><br>

<head>
<script language="JavaScript">
<!--
function click() {
if (event.button==2) {
alert('No puedes usar el botón derecho.')
}
}
document.onmousedown=click
// -->
</script>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-image: url();
}
.Estilo1 {
color: #FF0000;
font-weight: bold;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>

<body onLoad="MM_preloadImages('../img_sersa/Logsertx.gif')">
<table width="1107" height="558" border="0">
<tr>
<td width="168" height="142" bgcolor="#CCCCCC"><div align="center"><a href="#" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image1','','../img_sersa/Logsertx.gif',1)"><img src="../img_sersa/logosersa270.gif" name="Image1" width="137" height="134" border="0"></a></div></td>
<td colspan="2"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="671" height="78">
<param name="BGCOLOR" value="">
<param name="movie" value="../img_sersa/text2.swf">
<param name="quality" value="high">
<embed src="../img_sersa/text2.swf" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="671" height="78" ></embed>
</object></td>
<td width="254" bgcolor="#CCCCCC">&nbsp;</td>
</tr>

<tr>
<form action="ejec_val_super.php" method="post">
<td rowspan="6" bgcolor="#CCCCCC">&nbsp;</td>
<td width="249" height="62">CANTIDAD SOLICITADA </td>
<td width="418"><input name="textfield" type="text" value="$0.0"></td>
<td rowspan="6" bgcolor="#CCCCCC">&nbsp;</td>
</tr>
<tr>
<td height="52">FECHA SOLICITUD </td>
<td width="418"> <select name="dia">
<option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="mes">
<option value="ene" selected>Enero</option>
<option value="feb">Febrero</option>
<option value="mar">Marzo</option>
<option value="abr">Abril</option>
<option value="may">Mayo</option>
<option value="jun">Junio</option>
<option value="jul">Julio</option>
<option value="ago">Agosto</option>
<option value="sep">Septiembre</option>
<option value="oct">Octubre</option>
<option value="nov">Noviembre</option>
<option value="dic">Diciembre</option>
</select>
<select name="año">
<option value="2004" selected>2004</option>
</select></td>
</tr>
<tr>
<td height="48">SUPERMERCADO</td>
<td width="418"><select name="present_a">
<option selected>SUPER SELECTOS</option>
<option>HIPER EUROPA</option>
<option>DESPENSA DE DON JUAN</option>
</select></td>
</tr>
<tr>
<td height="38">LUGAR DE ENTREGA </td>
<td width="418"><p>
<select name="lugar_entrega">
<option selected>RECURSOS HUMANOS</option>
<option>SUCURSAL SANTA ANA</option>
<option>SUCURSAL SAN MIGUEL</option>
<option>SUCURSAL SONSONATE</option>
<option>AEROFLASH SAN SALVADOR</option>
</select>
</p>
</td>
</tr>
<tr>
<td height="38">Fecha Actual </td>
<td width="418">&nbsp; </td>
</tr>
<tr>
<td height="89" colspan="2"><div align="center">

<input name="Submit" type="submit" class="Estilo1" value="Enviar">
</div>
<h2 align="center" class="Estilo1">IMPORTANTE</h2>
<p align="justify"><em><strong>Nota: te recordamos que la aprobaci&oacute;n de la presente solicitud esta sujeta a la correcta elaboraci&oacute;n de la misma.</strong></em></p> <p align="justify"><em><strong>Por otra parte esta solicitud esta validada por tu usuario y password que para el caso es equivalente a tu firma digital, por lo que sujerimos que no la compartas con nadie, puesto que es de uso personal y toda transacci&oacute;n solicitada sera cargada al usuario que la solicito.</strong></em></p></td></tr>
</table>
</body>
</html>


y lo quiero insertar en una tabla utilizando el siguiente codigo


<HTML>
<HEAD>
<TITLE>solicitud de descuento sersaprosa.com</TITLE>
</HEAD>
<BODY>
<?
require ("aut_verifica.inc.php");
$nivel_acceso=10;
if ($nivel_acceso < $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
<? echo $_SESSION['usuario_id'] ?><br>
Gracias,<? echo $_SESSION['usuario_login'] ?> Por utilizar el servicio de solicitudes en linea<br>
<?
//Conexion con la base
mysql_connect("websersaprosa","root","90210210");
//Ejecucion de la sentencia SQL
mysql_db_query("sersaprosa","insert into sol_val_sup (carnet, dia, mes, año, present_a, lugar_entrega, fcha_ingreso) values ('usuario_id', '$dia','$mes','$año','$present_a','$lugar_entrega' )") or die (mysql_error());?>
<h1><div align="center">La Solicitud de Descuento se a Insertado</div></h1>
<div align="center"><a href="lectura_demo.php">Ver el contenido de la base</a></div>
</BODY>
</HTML>

y me guarda en la base de datos ... todos lo datos ingresados menos el del Usuario_id

vale aclarar que el este Usuario_id es el mismo que me ayudaste a desplegar en la pagina ...

este es el ultimo favor que pido.... prometo no molestar mas con esto

agradesco nuevamente la ayuda proporcionada... que me a servido de mucho

William Lopez
  #6 (permalink)  
Antiguo 11/10/2004, 18:10
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
Cuando manejas las variables de sesion, estas deben de llamarse de la misma forma en que estan definidas, ya que si no especificas que es una variable de sesion, esta no funcionara correctamente.

$_SESSION['usuario_id'] , es el nombre completo de la variable de sesion, y asi debes de utilisarla para que te funcione.

Asi bien, el resultado es el siguiente (Cambie tu codigo por el mio, por que desconosco tu forma de utilizar el INSERT):

Código PHP:
mysql_db_query("INSERT sol_val_sup (carnet, dia, mes, año, present_a, lugar_entrega, fcha_ingreso) values ('$_SESSION['usuario_id']', '$dia','$mes','$año','$present_a','$lugar_entrega')",$tuconexion); 
Como tip, te digo que yo primero introdusco los valores en la base de datos y despues mando un mensaje de confirmacion, si se cumple o no (el codigo lo tome de otro codigo, el cual me enseño mucho, los comentarios son mios).

Código PHP:
if (mysql_errno($tuconexion)==0){echo "Perfecto todo ha salido bien <aqui va la confirmacion>"
             }else{ 
        if (
mysql_errno($conexion)==1062){echo "Todo va muy mal date un descanso y vuelve a ver tu codigo OK"
            }else{  
            
$numerror=mysql_errno($conexion); 
            
$descrerror=mysql_error($conexion); 
            echo 
"Este nº de error es desconocido para mi $numerror y corresponde a: $descrerror  <br>"
        } 


bueno con estas pistas, creo que ya puedes continuar desarrollando tu aplicacion... no vemos ...je je je
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
  #7 (permalink)  
Antiguo 12/10/2004, 07:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Gracias por las explicaciones sobre mi "Autentificator" ProgramadorMax, sólo un detallito que tal vez se te pasó:

Código PHP:
   mysql_db_query("INSERT sol_val_sup (carnet, dia, mes, año, present_a, lugar_entrega, fcha_ingreso) values ('".$_SESSION['usuario_id']."', '$dia','$mes','$año','$present_a','$lugar_entrega'  )",$tuconexion); 
El array de sesión .. mejor concatenarlo para evitar problemas de sintax o bien usar {$_SESSION['nombre_variable']} ...

Un saludo,
  #8 (permalink)  
Antiguo 12/10/2004, 09:00
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Gracias de nuevo

Quiero agradecer a ambos por tomarse el tiempo de enseñar a un principiante.. estoy aprendiendo mucho...

pero lastimosamente aun no me da resultados
el codigo que me dieron lo utilice de la siguiente manera:

<HEAD>
<TITLE>solicitud de descuento sersaprosa.com</TITLE>
</HEAD>
<BODY>
<?
require ("aut_verifica.inc.php");
$nivel_acceso=10;
if ($nivel_acceso < $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
<? echo $_SESSION['usuario_id'] ?><br>
Gracias,<? echo $_SESSION['usuario_login'] ?> Por utilizar el servicio de solicitudes en linea<br>
<?
//Conexion con la base
mysql_connect("websersaprosa","root","90210210");
//Ejecucion de la sentencia SQL
mysql_db_query("sersaprosa", "INSERT sol_val_sup (carnet, dia, mes, año, present_a, lugar_entrega, fcha_ingreso) values ('".$_SESSION['usuario_id']."', '$dia','$mes','$año','$present_a','$lugar_entrega' )" ,$tuconexion);
if (mysql_errno($tuconexion)==0){echo "Perfecto todo ha salido bien <aqui va la confirmacion>";
}else{
if (mysql_errno($conexion)==1062){echo "Todo va muy mal date un descanso y vuelve a ver tu codigo OK";
}else{
$numerror=mysql_errno($conexion);
$descrerror=mysql_error($conexion);
echo "Este nº de error es desconocido para mi $numerror y corresponde a: $descrerror <br>";
}
?>
</BODY>
</HTML>


y me manda el siguiente mensaje de error

Parse error: syntax error, unexpected $end in c:\AppServ\www\serv_sersa\servicios\ejec_val_super .php on line 32

realmente estoy desesperado porque tengo que hacer que esto funcione... se que pueden ayudarme y como siempre se los agradecere infinitamente

William Lopez
  #9 (permalink)  
Antiguo 12/10/2004, 09:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El código que presentas no tiene mucho sentido si te fijas como trabaja PHP, .. En principio ese código debería hacer la insercción del dato en tu BD (ejecutar la consulta SQL pertinente) para dar una respuesta según fué ejecutado .. No dar una frase de "gracias por usar el servicio" y luego ejecutar la consulta a la espera de algún tipo de error.

Por lo demás .. yo suelo usar las estructuras tipo:

Código PHP:
<?
// conexion a tu BD
mysql_connect("websersaprosa","root","90210210");
// selecciona la BD a trabajar
mysql_select_db("tu_bd");
// ejecuta tu consulta ..
mysql_query("tu SQL") or die (mysql_error());
// Si hay error .. muestro el mensaje "textual" del error no filtro el código del error o en su defecto ni muestro eso en "producción" simplemente un "Algo falló ...".

// Al terminar el proceso .. redirecciono automáticamente hacia otro sitio .. ya sea el script que haga un listado .. o donde sea.
header("Location: dondesea.php");
?>
Y .. listo . sin más HTML por médio en ese script que NO corresponde pues es un script de "proceso" eminentemente. Los mensajes de error no deberías mostrarlos ahí tampoco (ni los de existo) sino en la página/script que redirecionas .. para eso en el "header()" de Location .. en el URL que redireccionas podrías pasar una variable de control para identificarla en la página que redireccionas y mostrar el mensaje de error/exito en consecuencia. Esta forma de trabajar te evitará otros problemas como por ejemplo .. que recarge la página que muestras ese "gracias por usar los servicios .." y se ocasione un nuevo ingreso de esos datos (los mismos repetidos) en tu BD.


El error concreto que tienes . .no alcanzo a verlo .. pero si que se vé que haces referencia en el código várias vecesa a $tuconexion y $conexion cuando en nigún punto del código se vé donde las defines (además que debería ser una sola en tal caso).

wjlopez: intenta poner el código usando el botón "PHP" .. así se verá coloreado para mejor.

Un saludo,
  #10 (permalink)  
Antiguo 12/10/2004, 11:01
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias Cluster, solo devuelvo toda la ayuda que se me ha prestado en este foro, de donde he aprendido mucho.

Bueno wjlopez, hay que ponerse a estudiar he?... como Cluster dijo anteriormente, el script que estas realizando solamente es de proceso (insertar datos a la BD), por lo que es muy delicado mandar confirmaciones que indican al usuario que ya se ha realizado un proceso. Ya que existen personas que pueden recargar la pagina con la tecla F5 hasta que se les canse el dedo y generarte muchos registros. Es por eso que acostumbra redirecionar a otra pagina una vez terminado el proceso.

Aqui corrijo el codigo que realizaste, fijate que siempre hay que indicar los datos de conexion, la base de datos con la que quieres trabajar, la consulta que insertara tus datos, los errores y por ultimo redirecciono.

Código PHP:
<HEAD>
<TITLE>solicitud de descuento sersaprosa.com</TITLE>
</HEAD>
<BODY>
<?
require ("aut_verifica.inc.php");
$nivel_acceso=10;
if (
$nivel_acceso $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
<? 
echo $_SESSION['usuario_id'?><br>
Gracias,<? echo $_SESSION['usuario_login'?> Por utilizar el servicio de solicitudes en linea<br>
<?
$tutabla
="sol_val_sup"
//Tu conexion
$tuconexion mysql_connect("websersaprosa","root","90210210");
//Tu selecion de base de datos
mysql_select_db("sersaprosa",$tuconexion); 
mysql_db_query("INSERT $tutabla (carnet, dia, mes, año, present_a, lugar_entrega, fcha_ingreso) VALUES ('".$_SESSION['usuario_id']."', '$dia','$mes','$año','$present_a','$lugar_entrega',NOW())",$tuconexion)or die("No se pudo conectar a la Base de datos");

header ("Location: confirmacion.php"
exit;
?>
</BODY>
</HTML>
La actividad de filtrar mensajes en proceso de desarrollo es correcta, pero no cuando ya esta finalizada tu aplicacion (he ahi mi error). Es por eso que Cluster nos advierte de esto.

El script anterior solo realizara el proceso de insercion de datos y redireccion a otra pagina, la cual tu puedes realizar en HTML y ponerle toda tu imaginacion (es donde pondras tu confirmacion de proceso). Te recomiendo que evites que el usuario pueda volver hacia atras, caducando la pagina (la de proceso de insercion), por que se volveria a presentar el problema que ya te dije.

Bueno tu estructura deberia de ser asi

1.-Formulario (Procura verificar tus datos con Javascript)
2.-Vista previa de los datos insertados (opcional)
3.-Pagina de proceso de inserción(impedir acceso por peticion o sesion y caducar)
4.-pagina de confirmación (ha terminado todo, puedes pedirle a tu usuario que finalize sesion


Por ultimo, te recomiendo estudies mas sobre: sesiones, estructuras de conexion de SQL, Redirecion y Caducado, Cache y leer las FAQS; asi mejoras tu aplicacion y la entenderas mejor.

Espero que progreses mucho y nos vemos.... je je je.
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
  #11 (permalink)  
Antiguo 12/10/2004, 11:02
 
Fecha de Ingreso: marzo-2004
Mensajes: 109
Antigüedad: 20 años
Puntos: 0
Estoy preocupado

gracias a las personas que me han ayudado ... de gran manera....

pero tengo una pregunta mas... como puedo capturar la fecha actual ?
osea quiero que a la hora de hacer la captura de datos me grabe la hora y fecha en un campo.... como podria hacer esto?
puedo hacerlo a nivel de MySQL??? como??
  #12 (permalink)  
Antiguo 12/10/2004, 11:06
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
Puedes utilizar la funcion DATE, o utilizar NOW() a nivel de SQL para que guardes con la fecha del servidor...
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
  #13 (permalink)  
Antiguo 12/10/2004, 11:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Otro tema más para estudiar:

SQL (Lenguaje estructurado de consultas) própio del manejador (BD) que uses .. en tu caso: Mysql.

En Mysql tienes la función de fecha: NOW() que se aplica a campos de tipo fecha (DATE o DATETIME) .. si los usas veras que te facilita mucho la vida y el trabajo con BD y fechas.

Un saludo,
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 07:54.