Foros del Web » Programando para Internet » PHP »

Modificar valores

Estas en el tema de Modificar valores en el foro de PHP en Foros del Web. Hola soy nueva aqui y necesito ayuda muy especificamente en la parte después del login de mi página. El codigo es el siguiente: loginamigos.php <?php ...
  #1 (permalink)  
Antiguo 25/05/2005, 10:39
 
Fecha de Ingreso: mayo-2005
Mensajes: 84
Antigüedad: 12 años, 6 meses
Puntos: 0
Modificar valores

Hola soy nueva aqui y necesito ayuda muy especificamente en la parte después del login de mi página.

El codigo es el siguiente:


loginamigos.php

<?php require_once('amigos.php'); ?>
<?php
session_start();
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
$GLOBALS['PrevUrl'] = $accesscheck;
session_register('PrevUrl');
}
if (isset($_POST['email'])) {
$loginUsername=$_POST['email'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "cuenta";
$MM_redirectLoginSuccess = "areadeamigos.php";
$MM_redirectLoginFailed = "loginamigos.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_amigos, $amigos);
$LoginRS__query=sprintf("SELECT email, password, cuenta FROM amigos WHERE email='%s' AND password='%s'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
$LoginRS = mysql_query($LoginRS__query, $amigos) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = mysql_result($LoginRS,0,'cuenta');
$GLOBALS['MM_Username'] = $loginUsername;
$GLOBALS['MM_UserGroup'] = $loginStrGroup;
session_register("MM_Username");
session_register("MM_UserGroup");
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
<h1>LOGIN DE AMIGOS</h1>
<br><br>
<form name="form1" action="<?php echo $loginFormAction; ?>" method="POST">
<table>
<tr><td class="textform">E-mail:</td><td> <input type="text" name="email" size=30></td></tr>
<tr><td class="textform">Password: </td><td> <input type="password" name="password" size=30></td></tr>
<tr><td></td><td><input type="submit" class="boton" value="Ingresar"></td></tr>
</table>
<input type="hidden" name="MM_insert" value="form1">
</form><br>
Si aun no estas registrado, registrate <a href="registrodeamigos.php"><b>aquí</b></a>.<br><br>



areadeamigos.php

<?php
session_start();
$MM_authorizedUsers = "amigo";
$MM_donotCheckaccess = "false";
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
$isValid = False;
if (!empty($UserName)) {
$arrUsers = Explode(",", $strUsers);
$arrGroups = Explode(",", $strGroups);
if (in_array($UserName, $arrUsers)) {
$isValid = true;
}
if (in_array($UserGroup, $arrGroups)) {
$isValid = true;
}
if (($strUsers == "") && false) {
$isValid = true;
}
}
return $isValid;
}
$MM_restrictGoTo = "loginamigos.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
$MM_qsChar = "?";
$MM_referrer = $_SERVER['PHP_SELF'];
if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
$MM_referrer .= "?" . $QUERY_STRING;
$MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
header("Location: ". $MM_restrictGoTo);
exit;
}
?>



Bien este login funciona perfectamente y me ayuda a definir en este caso el lugar a donde los mando y el privilegio, en este caso amigos, lo que quiero es saber como le hago en areadeamigos.php para poner lo clasico de Bienvenido (usuario aunque en este caso el login lo hago por medio del mail) y de paso también para que puedan modificar sus datos.

Gracias por su atencion.
  #2 (permalink)  
Antiguo 25/05/2005, 11:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Teóricamente . .la variable de sesión:
$_SESSION['MM_Username']

contiene tu nombre del usuario ..

En principio .. en las páginas que componen tu sitio (donde redireccionas a ellas desde ese validador/login) .. deben hacer una validación de existencia de esa variable de sesión (u otras) .. por qué sino, no tiene sentido el sistema (entrando directamente sin pasar por el login accederías). No sé si esa validación ya lo haces con otro código .. pero si no es así .. deberías hacer algo tipo:

Código PHP:
<?
session_start
();
if (!isset(
$_SESSION['MM_Username'])) {
// si no existe la variable de sesión ... redirecciona a tu login ...
  
header("Location: login.php");
  exit;
}

echo 
"Bienvenido: ".$_SESSION['MM_Username'];

?>
Un saludo,
  #3 (permalink)  
Antiguo 25/05/2005, 11:57
 
Fecha de Ingreso: mayo-2005
Mensajes: 84
Antigüedad: 12 años, 6 meses
Puntos: 0
Gracias, en si la validacion es la que puse ahí, esta limita la entrada por amigo, password y privilegio, ya vi porque me salía mal lo de bienvenido, ahora solo me hace falta saber como le hago para modificar los datos de quien se registra.
  #4 (permalink)  
Antiguo 25/05/2005, 13:55
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
para modificar basicamente es lo mismo, solo cambian los tipos de consulta a la base de datos
  #5 (permalink)  
Antiguo 25/05/2005, 17:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 84
Antigüedad: 12 años, 6 meses
Puntos: 0
No te entiendo

No entendi bien, como le hago, bueno, lo que yo hago para modificar un dato por ejemplo desde una página maestra a una de detalle, mando el resultado de la maestra a un formulario de edicion el cual cargo con los valores de la maestra, mi duda sería como cargo los valores de la variable de session, en este caso la de $_SESSION['MM_Username'] para que cambie sus datos ese usuario.

Espero haberme explicado bien porque ando un poco confundida.
  #6 (permalink)  
Antiguo 25/05/2005, 22:48
 
Fecha de Ingreso: mayo-2005
Mensajes: 84
Antigüedad: 12 años, 6 meses
Puntos: 0
todavia no me sale
  #7 (permalink)  
Antiguo 26/05/2005, 10:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Deberías concretar mejor con el código que ya estás implementando .. por lo menos para que nos hagamos una idea de que estás haciendo ..

En principio .. si tu quieres generar el HTML de un tag de "input" cualquiera para "editar" un valor .. usa la opción o parámetro "value" del mismo:

Código PHP:
<input type="text" name="usuario" value="<? echo $_SESSION['MM_Username'?>">
(recuerda que para acceder a un valor de una variable de sesión .. antes de pretender accederla .. por algún lado debes haber hecho un:
session_start();)

Otro detalle .. ¿para que quieres colocar en tu formulario exactamente dicha variable que va en una sesión? .. Se supone que -en función- de esa variable de sesión (u otra) identificas a tu usuario como para lanzar una consulta SQL a tu BD tipo:

$sql="SELECT * FROM usuarios WHERE usuario='".$_SESSION['MM_Username'] ."'";

Y así obtener los datos de ese registro .. entre ellos estará tu "usuario" ($row['usuario'] .. así que es "redundate" y lioso que accedas al mismo valor de tu variable de sesión cuando ya lo has obtenido en tu consulta SQL ...)

más detalles:
NO puedes mezclar declaraciones de variables de sesión con: session_register() y con $_SESSION .. Debes USAR! sólo un método (los arrays superglobales: $_SESSION). En otros casos usas como global variables como $QUERY_STRING .. deberías accederla por $_SERVER['QUERY_STRING'] .. y en otros sitios haces $GLOBAL? .. (no se usa si usas $_GET, $_POST .. etc ..). En resumen lo que veo es un tremendo lio con el acceso a variables externas a tu script (variables que son de sesión, que llegan de otro script por el URL, formularios .. etc ..). Eso deberías arreglarlo .. por qué sino te dará otros problemas y fallos de seguridad en tu aplicación.

Revisa las FAQ's del foro de PHP para ver información sobre sesiones (de las primeras lo tienes). Y sobre el uso de los arrays superglobales.

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 23:33.