Duda sobre sesiones en php

JORDANMEN

Bovino maduro
#1
estoy siguiendo un videotutorial el cual es muy didactico y aprendo bastante bien con eso pero es del 2004 - 2005 y hay algo que creo que ya pasó, esto es las sesiones, en las practicas usan session_register(), session_is_registered() y session_unregister(). No puedo logearme y busque en php manual y ahi dice que no se debe usar eso, que en el php 5 y php6 se usa $_SESSION[''] para session_register() y session_is_registered() y unset() para session_unregister(), hice el remplazo en el codigo y sigo igual, me pueden editar el codigo?

la base de datos se llama pruebaauth
Código:
create table auth (
    name        varchar(10) not null,
    pass         varchar(30) not null,
        primary key    (name)
);

insert into auth values 
  ('user', 'pass');

insert into auth values
  ( 'testuser', password('oooooo') );
authmain.php
Código:
<?
session_start();

if ($userid && $password)
{
  // Si el usuario ha intentado hacer log in

  $db_conn = mysql_connect("localhost", "nombreusuario", "contraseña");
  mysql_select_db("nombreBaseDatos", $db_conn);
  $query = "select * from auth "
           ."where name='$userid' "
           ." and pass=password('$password')";
  $result = mysql_query($query, $db_conn);
  if (mysql_num_rows($result) >0 )
  {
    // si están en la base de datos registra la id de usuario
    $valid_user = $userid;
    session_register("valid_user");
  }
}
?>
<html>
<body>
<h1>Página Inicio</h1>
<?

  if (session_is_registered("valid_user"))
  {
    echo "Ahora estás logged in como: $valid_user <br>";
    echo "<a href=\"logout.php\">Log out</a><br>";
  }
  else
  {
    if (isset($userid))
    {
      // si han intentado hacer login y ha fallado
      echo "No has podido hacer login";
    }
    else
    {
      // si no han intentado hacer login  y no han hecho logged out
      echo "No has hecho logged in.<br>";
    }

    // provee el formulario para hacer  log in
    echo "<form method=post action=\"authmain.php\">";
    echo "<table>";
    echo "<tr><td>Userid:</td>";
    echo "<td><input type=text name=userid></td></tr>";
    echo "<tr><td>Contraseña:</td>";
    echo "<td><input type=password name=password></td></tr>";
    echo "<tr><td colspan=2 align=center>";
    echo "<input type=submit value=\"Log in\"></td></tr>";
    echo "</table></form>";
  }
?>
<br>
<a href="members_only.php">Sección de Miembros</a>
</body>
</html>
logout.php
Código:
<?
  session_start();

  $old_user = $valid_user;  // almacenado para comprobar si ellos estuvieron logged in
  $result = session_unregister("valid_user");
  session_destroy();
?>
<html>
<body>
<h1>Log out</h1>
<?
  if (!empty($old_user))
  {
    if ($result)
    {
      // si estuvieron logged in y no están logged out
      echo "Logged out.<br>";
    }
    else
    {
     // Estaban logged in y no pueden  logged out
      echo "No se ha podido hacer logged out.<br>";
    }
  }
  else
  {
    // si ellos no estaban logged in pero llegan a esta página de algún modo
    echo "No estás logged in, y por tanto no puedes hacer logged out.<br>";
  }
?>
<a href="authmain.php">Volver a la página principal</a>
</body>
 

naruto_zeroner

Bovino de alcurnia
#2
ejjeej yo tambien tenia ese error en ese
ejercisio bro jejejej esk yo tambien miraba esos
videotutos pero pues aorita no me akuerdo aber si
mas tarde me akuerdo okz
 

naruto_zeroner

Bovino de alcurnia
#3
ejjeej yo tambien tenia ese error en ese
ejercisio bro jejejej esk yo tambien miraba esos
videotutos pero pues aorita no me akuerdo aber si
mas tarde me akuerdo okz

ya aber si asi te sale jejeje
si no solo abisame okz

PHP:
create table auth 
(
    name varchar(20) not null primary key,
    pass varchar(30) not null,
);

insert into auth values 
  ('user', 'pass');

insert into auth values
( 
  'testuser', 
  'oooooo' 
);
PHP:
<?
session_start();

if ($userid && $password)
{
  $db_conn = mysql_connect("localhost", "nombreusuario", "contraseña");
  mysql_select_db("pruebaauth", $db_conn);
  $query = "select * from auth "
           ."where name='$userid'"
           ." and pass='$password'";
  $result = mysql_query($query, $db_conn);
  if (mysql_num_rows($result) > 0)
  {
    $valid_user = $userid;
    session_register("valid_user");
  }
}
?>
<html>
<body>
<h1>Página Inicio</h1>
<?

  if (session_is_registered("valid_user"))
  {
    echo "Ahora estás logged in como: $valid_user <br>";
    echo "<a href='logout.php'>Log out</a><br>";
  }
  else
  {
    if (isset($userid))
    {
      echo "No has podido hacer login";
    }
    else
    {
      echo "No has hecho logged in.<br>";
    }

    echo "<form method='post' action='authmain.php'>";
    echo "<table>";
    echo "<tr><td>Userid:</td>";
    echo "<td><input type='text' name='userid'></td></tr>";
    echo "<tr><td>Contraseña:</td>";
    echo "<td><input type='password' name='password'></td></tr>";
    echo "<tr><td colspan='2' align='center'>";
    echo "<input type='submit' value='Log in'></td></tr>";
    echo "</table></form>";
  }
?>
<br>
<a href="members_only.php">Sección de Miembros</a>
</body>
</html>
PHP:
<?
  session_start();

  $old_user = $valid_user;
  $result = session_unregister("valid_user");
  session_destroy();
?>
<html>
<body>
<h1>Log out</h1>
<?
  if (!empty($old_user))
  {
    if ($result)
    {
      echo "Logged out.<br>";
    }
    else
    {
      echo "No se ha podido hacer logged out.<br>";
    }
  }
  else
  {
    echo "No estás logged in, y por tanto no puedes hacer logged out.<br>";
  }
?>
<a href="authmain.php">Volver a la página principal</a>
</body>
aki esta pero te lo buelbo a repetir si no sale solo abisame
por mp o por aki mismo okz
 

naruto_zeroner

Bovino de alcurnia
#4
ejjeej yo tambien tenia ese error en ese
ejercisio bro jejejej esk yo tambien miraba esos
videotutos pero pues aorita no me akuerdo aber si
mas tarde me akuerdo okz

okz aora para k no balla a aber eerrores aki esta bro
mira ya asta lo probe jejejej

este es el sql
PHP:
create table auth  
( 
    name varchar(20) not null primary key, 
    pass varchar(30) not null
); 

insert into auth values  
(
  'prueba', 
  '123456'
); 

//Aki para k no te konfudas puedes borrar esto
jejej esk no me akuerdo komo poner komentario en sql
y pues esta linea k sige solo se repite ok
es lo mismo k la de arriva.

insert into auth values 
(  
  'prueba2',  
  '123456'  
);
este es el authmain
PHP:
<? 
session_start(); 

if ($userid && $password) 
{ 
  $db_conn = mysql_connect("localhost", "nombreUsuario", "Contraseña"); 
  mysql_select_db("NombreBD", $db_conn); 
  $query = "select * from auth " 
           ."where name='$userid'" 
           ." and pass='$password'"; 
  $result = mysql_query($query, $db_conn); 
  if (mysql_num_rows($result) > 0) 
  { 
    $valid_user = $userid; 
    session_register("valid_user"); 
  } 
} 
?> 
<html> 
<body> 
<h1>Página Inicio</h1> 
<? 

  if (session_is_registered("valid_user")) 
  { 
    echo "Ahora estás logged in como: $valid_user <br>"; 
    echo "<a href='logout.php'>Log out</a><br>"; 
  } 
  else 
  { 
    if (isset($userid)) 
    { 
      echo "No has podido hacer login"; 
    } 
    else 
    { 
      echo "No has hecho logged in.<br>"; 
    } 

    echo "<form method='post' action='authmain.php'>"; 
    echo "<table>"; 
    echo "<tr><td>Usuario:</td>"; 
    echo "<td><input type='text' name='userid'></td></tr>"; 
    echo "<tr><td>Contraseña:</td>"; 
    echo "<td><input type='password' name='password'></td></tr>"; 
    echo "<tr><td colspan='2' align='center'>"; 
    echo "<input type='submit' value='Log in'></td></tr>"; 
    echo "</table></form>"; 
  } 
?> 
<br> 
<a href="members_only.php">Sección de Miembros</a> 
</body> 
</html>
y por ultimo el log out
PHP:
<? 
  session_start(); 

  $old_user = $valid_user; 
  $result = session_unregister("valid_user"); 
  session_destroy(); 
?> 
<html> 
<body> 
<h1>Log out</h1> 
<? 
  if (!empty($old_user)) 
  { 
    if ($result) 
    { 
      echo "Logged out.<br>"; 
    } 
    else 
    { 
      echo "No se ha podido hacer logged out.<br>"; 
    } 
  } 
  else 
  { 
    echo "No estás logged in, y por tanto no puedes hacer logged out.<br>"; 
  } 
?> 
<a href="authmain.php">Volver a la página principal</a> 
</body>
aora solo lo k tienes k kambiar son los nombres de tu nombre de usuario en el
phpmyadmin y no me akuerdo k mas ay le buskas
y ademas yo te rekomendaria k kuando no te sale berifikes bien los errores
k te salen
pork el mmismo navegador te los indika si no te los indika por kompleto usa mozila firefox
ese si te los indika chidote ok
y ay de nada jeej
 

JORDANMEN

Bovino maduro
#5
muchisimas gracias naruto zroner, si funionó el logeo y me dice que estoy conectado como prueba que es el nombre de usuario pero abajo sle un warning que dice:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

por lo que entiendo dice que estoy usando una sesion que solo existia hasta php 4.2.3 ¿con que la puedo reemplazar?

luego probé el deslogeo pero me dice que no puedo deslogearme porque no estaba logeado eso quiere decir sgun mi entendimiento que es por lo dl warning

¿puedes revisar el codigo porfa?
 
Arriba