Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - den_22

#51
PHP / Problema con estos códigos
1 Marzo 2010, 17:00 PM
Hola ! que tal, estoy con un "pequeño problemita" la cuestión es la siguiente. Quiero hacer un apartado de un panel de control para modificar un perfil.
Tengo los siguientes códigos:
El modificarperfil.php

Código (php) [Seleccionar]
<?php
session_start
();
include(
"function.php");
include(
"getdata.php");
include(
"connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
 
if(!isset($_GET['usuario'])){
echo 
'No se ha seleccionado ningun usuario.'//no ha seleccionado usuario,
}else{
 
//comprobamos si esa id existe
$query=mysql_query("SELECT * FROM prueba WHERE usuario=$usuario ");
if(
mysql_num_rows($usuario)>0){
$query=mysql_fetch_array($usuario);
 
//todo comprobado, ahora solo falta mostrar los datos
echo 'Bienvenid@ <b>'.$usuario[usuario].'</b><br>';
 
 
}else{
 
echo 
'El usuario seleccionado no existe';
}
}
?>




A su vez en la tabla de modificar perfil pongo lo siguiente para obtener los datos de la bd:
Código (php) [Seleccionar]
<td width="292"><input name="firstname" type="text" id="firstname" value="<?php echo $firstname;?>"></td>

El function.php:
Código (php) [Seleccionar]
<?php
session_start
();
function 
getfname($id)
{
$query mysql_query("select * from prueba where id=$id");
$getnamemysql_fetch_array($query);
$firstname$getname["firstname"];
return $firstname;
}

function 
getlname($id)
{
$query =mysql_query("select * from prueba where id=$id");
$getnamemysql_fetch_array($query);
$lastname=$getname["lastname"];
return $lastname;
}


function 
getusuario($id)
{
$query=mysql_query("select * from prueba where id=$id");
$getname=mysql_fetch_array($query);
$usuario=$getname["usuario"];
return $usuario;
}

function 
getgender ($id)
{
$query=mysql_query("select * from prueba where id=$id");
$getname=mysql_fetch_array($query);
$gender=$getname["Genero"];
return $gender;
}




?>



El getdata.php:

Código (php) [Seleccionar]
<?php
session_start
();
include 
"connect.php";

$query=mysql_query("select * from prueba where id=$id");
$getname=mysql_fetch_array($query);

$firstname=$getname["firstname"];
$lastname=$getname["lastname"];
$usuario=$getname["usuario"];
$gender=$getname["genero"];


?>



El connect.php:
Código (php) [Seleccionar]
<?php

if(!defined('INCLUDE_CHECK')) die('No estás autorizado a ejecutar este archivo directamente');


/* Database config */

$db_host 'localhost';
$db_user 'user';
$db_pass 'xxxx';
$db_database 'prueba'

/* End config */



$link mysql_connect($db_host,$db_user,$db_pass) or die('Imposible establecer la conexión a la base de datos');

mysql_select_db($db_database,$link);
mysql_query("SET names UTF8");

?>



El error que me tira todo esto es que "No estás autorizado  a ejecutar este archivo directamente"

Gracias de antemano por tomarse el trabajo de leerlo. :)
#52
PHP / Re: Como hago con este codigo?
23 Febrero 2010, 15:54 PM
Encontré la solución, el problema era que al crear la base de datos en el phpMyAdmin, debía ponerle en "Cotejamiento" utf8_unicode_ci. Cosa que no estaba puesto.

Ahora funciona perfecto!  ;-)
#53
PHP / Re: Como hago con este codigo?
22 Febrero 2010, 17:31 PM
Hola nuevamente, tengo un pequeño problema otra vez, la verdad es que lo habia solucionado, pero no se que pasó, tengo el mismo error otra vez.
"This username is already taken".

Alguien me podrá ayudar?

<?php
error_reporting
(E_ALL E_NOTICE);
session_start();
 
define('INCLUDE_CHECK',true);
 
require 
'connect.php';
require 
'functions.php';
// Those two files can be included only if INCLUDE_CHECK is defined
 
 
session_name('tzLogin');
// Starting the session
 
session_set_cookie_params(2*7*24*60*60);
// Making the cookie live for 2 weeks
 
session_start();
 
if(
$_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
{
// If you are logged in, but you don't have the allnurseRemember cookie (browser restart)
// and you have not checked the rememberMe checkbox:
 
$_SESSION = array();
session_destroy();
 
// Destroy the session
}
 
 
if(isset(
$_GET['logoff']))
{
$_SESSION = array();
session_destroy();
 
header("Location: demo.php");
exit;
}
 
if(
$_POST['submit']=='Login')
{
// Checking whether the Login form has been submitted
 
$err = array();
// Will hold our errors
 
 
if(!$_POST['username'] || !$_POST['password'])
$err[] = 'All the fields must be filled in!';
 
if(!count($err))
{
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['rememberMe'] = (int)$_POST['rememberMe'];
 
// Escaping all input data
 
$row mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
 
if($row['usr']) 
{
// If everything is OK login
 
//$_SESSION['username']=$row['user'];
$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$_SESSION['type'] = $row['type'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];
 
// Store some data in the session
 
setcookie('tzRemember',$_POST['rememberMe']);
}
else $err[]='Wrong username and/or password!';
}
 
if($err)
$_SESSION['msg']['login-err'] = implode('<br />',$err);
// Save the error messages in the session
 
header("Location: demo.php");
exit;
}
else if(
$_POST['submit']=='Register')
{
// If the Register form has been submitted
 
$err = array();
 
if(strlen($_POST['firstname'])>100)
{
$err[]='Your lastname must be less 100 characters!';
}
 
if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname']))
{
$err[]='Your firstname contains invalid characters!';
}
 
if(strlen($_POST['lastname'])>100)
{
$err[]='Your lastname must be less 100 characters!';
}
 
if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['lastname']))
{
$err[]='Your lastname contains invalid characters!';
}
 
if(strlen($_POST['username'])<|| strlen($_POST['username'])>100)
{
$err[]='Your username must be between 4 and 100 characters!';
}
 
if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
{
$err[]='Your username contains invalid characters!';
}
 
if(strlen($_POST['password'])<|| strlen($_POST['password'])>32)
{
$err[]='Your username must be between 6 and 32 characters!';
}
 
if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['password']))
{
$err[]='Your password is weak!';
}
 
if($_POST['repassword']!=$_POST['password'])
{
$err[]='Your retype password is different than password!';
}
 
if(!checkEmail($_POST['email']))
{
$err[]='Your email is not valid!';
}
 
if(!count($err))
{
// If there are no errors
 
$_POST['email'] = mysql_real_escape_string($_POST['email']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['firstname'] = mysql_real_escape_string($_POST['firstname']);
$_POST['lastname'] = mysql_real_escape_string($_POST['lastname']);
$_POST['type'] = mysql_real_escape_string($_POST['type']);
// Escape the input data
 
 
mysql_query(" INSERT INTO tz_members(firstname,lastname,user,password,email,type,dt)
VALUES('"
.$_POST['firstname']."','".$_POST['lastname']."','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['email']."','".$_POST['type']."',NOW())");
 
 
if(mysql_affected_rows($link)==1)
{
send_mail( 'name@yourdomain.com',
$_POST['email'],
'Registration for Demo',
'Your username is: '.$username.'\n Your password is: '.$password);
 
$_SESSION['msg']['reg-success']='We sent you an email with your login data!';
}
else $err[]='This username is already taken!';
}
 
if(count($err))
{
$_SESSION['msg']['reg-err'] = implode('<br />',$err);
}
 
header("Location: demo.php");
exit;
}
 
$script '';
 
if(
$_SESSION['msg'])
{
// The script below shows the sliding panel on page load
 
$script '
<script type="text/javascript">
 
$(function(){
 
$("div#panel").show();
$("#toggle a").toggle();
});
 
</script>'
;
 
}
?>


<html>
<head>
</head>
<body>
<!-- Panel -->
<div id="toppanel">
<div id="panel">
<div class="content clearfix">           
            <?php

if(!$_SESSION['id']):

?>

           
<div class="left">
<!-- Login Form -->
<form class="clearfix" action="" method="post">
<h1>Member Login</h1>
                   
                    <?php

if($_SESSION['msg']['login-err'])
{
echo '<div class="err">'.$_SESSION['msg']['login-err'].'</div>';
unset($_SESSION['msg']['login-err']);
}
?>


<label class="grey" for="username">Login ID:</label>
<input class="field" type="text" name="username" id="username" value="" size="23" />
<label class="grey" for="password">Password:</label>
<input class="field" type="password" name="password" id="password" size="23" />
            <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> &nbsp;Remember me</label>
        <div class="clear"></div>
<input type="submit" name="submit" value="Login" class="bt_login" />
</form>
</div>
<form action="" method="post">
<div class="left right">
<!-- Register Form -->
<h1>Not a member yet? Sign Up!</h1>
                   
                    <?php

if($_SESSION['msg']['reg-err'])
{
echo '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
unset($_SESSION['msg']['reg-err']);
}

if($_SESSION['msg']['reg-success'])
{
echo '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
unset($_SESSION['msg']['reg-success']);
}
?>

                   
<label class="grey" for="firstname">First Name/Company Name:</label>
<input class="field" type="text" name="firstname" id="firstname" value="" size="23" />
<label class="grey" for="lastname">Last Name/Company Short Name:</label>
<input class="field" type="text" name="lastname" id="lastname" value="" size="23" />
<label class="grey" for="username">Login ID:</label>
<input class="field" type="text" name="username" id="username" value="" size="23" />
<label class="grey" for="password">Password:</label>
<input class="field" type="password" name="password" id="password" value="" size="23" />
</div>
            <div class="left">
<label>&nbsp;</label>
<label>&nbsp;</label>
<label class="grey" for="repassword">Retype Password:</label>
<input class="field" type="password" name="repassword" id="repassword" value="" size="23" />
<label class="grey" for="type">Type:</label><select name="type" id="type" style="background-color:#666666; color:#CCCCCC; border-color:#000000; border-style:solid; border-width:thin">
<option value="Applicant">Applicant</option>
<option value="Company">Company</option>
</select>
<label class="grey" for="email">Email:</label>
<input class="field" type="text" name="email" id="email" size="23" />
<label>Your login data will be e-mailed to you.</label>
<input type="submit" name="submit" value="Register" class="bt_register" />
</form>
</div>
            <?php
else:
?>

           
            <div class="left">                       
            <p>&nbsp;</p><br /><br /><br /><br /><p>&nbsp;</p><br /><br /><br /><br /><p>&nbsp;</p><br /><br />
            <a href="?logoff"><strong>Log out</strong></a>
           
            </div>
<?php
endif;
?>
               
</div>
</div> <!-- /login -->

    <!-- The tab on top -->
<div class="tab">
<ul class="login">
    <li class="left">&nbsp;</li>
        <li>Hello
<?php
if($_SESSION['id'])
{echo $_SESSION['username'];}
else echo 'Guest';
?>

!</li>
<li class="sep">|</li>
<li id="toggle">
<a id="open" class="open" href="#"><?php echo $_SESSION['id']?'Open Panel':'Log In | Register';?></a>

<a id="close" style="display: none;" class="close" href="#">Close Panel</a>
</li>
    <li class="right">&nbsp;</li>
</ul>
</div> <!-- / top -->

<div> <!--panel --></div>

  <?php
if(isset($_SESSION['id']))
{
// If you are logged in.
include("registered.php");
}
?>
     
</body>
</html>
#54
PHP / Re: Como hago con este codigo?
14 Febrero 2010, 04:46 AM
Ya pude solucionar el problema.  ;D
#55
PHP / Re: Como hago con este codigo?
12 Febrero 2010, 17:33 PM
Hola dejo la tabla de la base de datos, por si alguien me quiere dar una mano, no le encuentro el error.



CREATE TABLE `tz_members` (
  `id` int(11) NOT NULL auto_increment,
  `usr` varchar(32) collate utf8_unicode_ci NOT NULL default '',
  `pass` varchar(32) collate utf8_unicode_ci NOT NULL default '',
`firstname` varchar(32) collate utf8_unicode_ci NOT NULL default '',
`lastname` varchar(32) collate utf8_unicode_ci NOT NULL default '',
`type` varchar (32) collate utf8_unicode_ci NOT NULL default '',
  `email` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `regIP` varchar(15) collate utf8_unicode_ci NOT NULL default '',
  `dt` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `usr` (`usr`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
#56
PHP / Re: Como hago con este codigo?
11 Febrero 2010, 20:25 PM
Bueno gracias, lo pruebo y te digo.

den_22
#57
PHP / Como hago con este codigo?
10 Febrero 2010, 23:43 PM
Hola, tengo una pregunta acerca de este código, la cuestion es que al querer hacer el registro siempre en el formulario, me dice "This username has already taken",ademas si no se registra en la bd, como ya va a estar siendo usado?. :huh:
Dejo el código a ver si me pueden dar una mano.(La parte en negrita calculo que debe estar provocando esto)

<?php
error_reporting
(E_ALL E_NOTICE);
session_start();

define('INCLUDE_CHECK',true);

require 
'connect.php';
require 
'functions.php';
// Those two files can be included only if INCLUDE_CHECK is defined


session_name('tzLogin');
// Starting the session

session_set_cookie_params(2*7*24*60*60);
// Making the cookie live for 2 weeks

session_start();

if(
$_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
{
// If you are logged in, but you don't have the allnurseRemember cookie (browser restart)
// and you have not checked the rememberMe checkbox:

$_SESSION = array();
session_destroy();

// Destroy the session
}


if(isset(
$_GET['logoff']))
{
$_SESSION = array();
session_destroy();

header("Location: demo.php");
exit;
}

if(
$_POST['submit']=='Login')
{
// Checking whether the Login form has been submitted

$err = array();
// Will hold our errors


if(!$_POST['username'] || !$_POST['password'])
$err[] = 'All the fields must be filled in!';

if(!count($err))
{
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['rememberMe'] = (int)$_POST['rememberMe'];

// Escaping all input data

$row mysql_fetch_assoc(mysql_query("SELECT id,usr FROM tz_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));

if($row['usr']) 
{
// If everything is OK login

//$_SESSION['username']=$row['user'];
$_SESSION['usr']=$row['usr'];
$_SESSION['id'] = $row['id'];
$_SESSION['type'] = $row['type'];
$_SESSION['rememberMe'] = $_POST['rememberMe'];

// Store some data in the session

setcookie('tzRemember',$_POST['rememberMe']);
}
else $err[]='Wrong username and/or password!';
}

if($err)
$_SESSION['msg']['login-err'] = implode('<br />',$err);
// Save the error messages in the session

header("Location: demo.php");
exit;
}
else if(
$_POST['submit']=='Register')
{
// If the Register form has been submitted

$err = array();

if(strlen($_POST['firstname'])>100)
{
$err[]='Your lastname must be less 100 characters!';
}

if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname']))
{
$err[]='Your firstname contains invalid characters!';
}

if(strlen($_POST['lastname'])>100)
{
$err[]='Your lastname must be less 100 characters!';
}

if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['lastname']))
{
$err[]='Your lastname contains invalid characters!';
}

if(strlen($_POST['username'])<|| strlen($_POST['username'])>100)
{
$err[]='Your username must be between 4 and 100 characters!';
}

if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
{
$err[]='Your username contains invalid characters!';
}

if(strlen($_POST['password'])<|| strlen($_POST['password'])>32)
{
$err[]='Your username must be between 6 and 32 characters!';
}

if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['password']))
{
$err[]='Your password is weak!';
}

if($_POST['repassword']!=$_POST['password'])
{
$err[]='Your retype password is different than password!';
}

if(!checkEmail($_POST['email']))
{
$err[]='Your email is not valid!';
}

if(!count($err))
{
// If there are no errors

$_POST['email'] = mysql_real_escape_string($_POST['email']);
$_POST['password'] = mysql_real_escape_string($_POST['password']);
$_POST['username'] = mysql_real_escape_string($_POST['username']);
$_POST['firstname'] = mysql_real_escape_string($_POST['firstname']);
$_POST['lastname'] = mysql_real_escape_string($_POST['lastname']);
$_POST['type'] = mysql_real_escape_string($_POST['type']);
// Escape the input data


mysql_query(" INSERT INTO tz_members(firstname,lastname,user,password,email,type,dt)
VALUES('"
.$_POST['firstname']."','".$_POST['lastname']."','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['email']."','".$_POST['type']."',NOW())");


if(mysql_affected_rows($link)==1)
{
send_mail( 'name@yourdomain.com',
$_POST['email'],
'Registration for Demo',
'Your username is: '.$username.'\n Your password is: '.$password);

$_SESSION['msg']['reg-success']='We sent you an email with your login data!';
}
else $err[]='This username is already taken!';
}

if(count($err))
{
$_SESSION['msg']['reg-err'] = implode('<br />',$err);
}

header("Location: demo.php");
exit;
}

$script '';

if(
$_SESSION['msg'])
{
// The script below shows the sliding panel on page load

$script '
<script type="text/javascript">

$(function(){

$("div#panel").show();
$("#toggle a").toggle();
});

</script>'
;

}
?>
#58
$cookie1 = substr(SHA1($username).md5($password), 12).md5($password);
$cookie2 = base64_encode($username);
//una cookie inhackeable:p almenos que la roben..


Donde pongo esto?, porque me tira error.

Gracias y disculpá las molestias.
#59
Cita de: Castg! en 28 Enero 2010, 19:14 PM
guiarda con perfil.php, puede haber vulnerabilidad, lo posteas a si lo vemos?

Recien tengo una pagina perfil.php que no tiene diseño ni nada, pero una de las cosas que queria saber es si se puede cambiar el tema de que cuando redirije a perfil.php
lo hace de la forma http://localhost/index/perfil/perfil.php?user=xxxx, por lo tanto hay forma de que en vez de user, sea id?, porque sino cualquier persona podrá cambiar la url e ingresar y editar el perfil de otro usuario.

Ahora se puede hacer lo que mencioné anteriormente de la tabla?, que se actualicen más adelante cuando el usuario se haya registrado?
#60
Bueno gracias por responder, digamos mi idea es hacer la tabla de usuarios, con los campos "username","password", "email"; y ponerle más campos, es decir, que cuando se registre y vaya a su perfil, pueda completar más datos, y que éstos se actualicen, mediante un UPDATE.

Será posible?


Acá está el codigo de registro.php

<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='usuario_bd';
$dbuserpass='password_bd';
$dbname='bd_name';
// Conexi&oacute;n a la base de datos
mysql_connect("localhost""usuario_bd","password_bd" ) or die(mysql_error());
mysql_select_db("nombre_tabla" ) or die(mysql_error());

// Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["username"] ) ) {
$username $_POST["username"];
$password md5 ($_POST["password"]);
$cpassword md5 ($_POST["cpassword"]);
$email $_POST["email"];
// Hay campos en blanco
if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL) {
echo 
"Hay campos vacíos";
}else{
// &iquest;Coinciden las contrase&ntilde;as?
if($password!=$cpassword) {
echo 
"Las contraseñas no coinciden";
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya exist&iacute;an
$checkuser mysql_query("SELECT username FROM users WHERE username='$username'" ) ;
$username_exist mysql_num_rows($checkuser);

$checkemail mysql_query("SELECT email FROM users WHERE email='$email'" ) ;
$email_exist mysql_num_rows($checkemail);

if (
$email_exist>0|$username_exist>0) {
echo 
"EL nombre de usuario o la cuenta de correo estan ya en uso";
}else{
//Todo parece correcto procedemos con la inserccion
$query "INSERT INTO users (username, password, email) VALUES('$username','$password','$email')";
mysql_query($query) or die(mysql_error());
echo 
"El Usuario $username ha sido registrado de manera satisfactoria. Ahora puedes iniciar sesion";
}
}
}
}
?>



Y el de login:
<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='usuario_bd';
$dbuserpass='password_bd';
$dbname='bd_name';

// Conectar a la base de datos
mysql_connect("localhost""usuario_bd","password_bd" ) or die(mysql_error());
mysql_select_db("nombre_tabla" ) or die(mysql_error());

if (
$_POST['username'] ) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if (
$password==NULL) {
echo 
"Debes escribir el password";
}else{
$password=md5($_POST['password']);
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'" ) or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['password'] != $password) {
echo 
"Usuario o contraseña incorrectos, si todavia no eres usuario puedes registrarte<a href='http://localhost/index/registro.html'> Aqui</a>";
}else{
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'" ) or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo 
'<META HTTP-EQUIV="Refresh" CONTENT="3; URL=http://localhost/index/perfil/perfil.php?user='.$username.'"> '
}
}
}
?>



den_22