Un tema sobre la seguridad php

Discúlpeme la molestia, le hago una vez más una nueva pregunta de php pero esta vez es sobre un tema diferente al de las tablas, resulta que en la web en la que estoy trabajando una parte de ella es solo para usuarios registrados, usando el siguiente código:
<?php
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}
$fich = file("pass.txt");
$i=0; $validado=false;
while ($fich[$i] && !$validado) {
$campo = explode("|",$fich[$i]);
if (($PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
$i++;
}
if (!$validado) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}
?>
Asumamos que lo llame index.php, en las páginas en las que quiero que sea de acceso restringido lo único que hago es al comienzo darle include index y listo, hasta hay esta todo en orden, el problema es el siguiente en la página index tuve que ponerle un vinculo a otra página porque así como esta solo accede y no hace más, resulta que en todas las páginas en las que pongo al inicio include index sale este vinculo y no deseo que aparezca más, es decir solo quiero que al ingresar el password le salga este vinculo y luego en las otras páginas ya no
1

1 respuesta

Respuesta
1
Ok.
Esto pegalo después del primer <table>
<tr><form method="get" action="mete_producto.php">
<td width="22%">
<input type="submit" name="Submit" value="Referencia 1"> </a></td>
<td width="1%"><font face="Arial">Cantidad</font></td>
<td width="25%"><font face="Arial">
<input name="cantidad" type="text" id="cantidad">
</font></td>
<td width="10%"><font face="Arial">Talla</font></td>
<td width="10%"><font face="Arial">
<select name="talla" id="talla">
<option>S</option>
<option>M</option>
<option>L</option>
</select>
</font></td>
<td width="9%"><font face="Arial">Color</font></td>
<td width="23%"><font face="Arial">
<select name="color" id="color">
<option>Blanco</option>
<option>Negro</option>
<option>Gris</option>
</select>
</font></td></form>
</tr>
Puse en form y en lugar de un vinculo con href, coloque un botón submit, el método lo deje en get, para que los valores los pase en la cabecera
Hola, no, la idea es que se pida una sola vez la clave y una ves dentro pueda acceder a más sitios, igual lamento decirte que ya se logro agregándole al código
session_start();
$_SESSION['valorx']= "Acceso X";
session_register('valorx');
y al inicio de cada pagina donde requeria la seguridad introducir el siguiente codigo
<? session_start(); ?> , me gustaria cambiarte la pregunta si no hay ningun problema puesto que esto me urge un poco, es tema de php pero no incumbe a seguridad sino a un carrito de compra que quiero desarrollar, bien el problema es el siguiente, estoy usando un carrito que descargue de desarrolloweb.com/manuales/56 (tiene 5 archivos: 1. elimina un producto, 2. mete producto, 3. libreria carrito 4. index que es donde se muestran los producto y 5. ver el carrito) en index modifique un poco y quiero que sea mas dinamico con las personas y coloque esto <a href="mete_producto.php ?id=1 &cantidad= $cantidad &talla= $talla &color= azul &precio=80">
Con campos para cantidad talla y color(texto/lista-menu) con el fin que la persona solo escriba allí y listo el gran problema es que a la hora de mostrar el carro en los campos cantidad y talla no me muestra nada y en el campo color me muestra azul y esto no debería ser así debería mostrar lo que la persona escribió en dicho campo.
para aclarate mas aqui te pego el codigo :
<?
include("lib_carrito.php");
?>
<html>
<head>
<title>Trabajando con el carrito</title>
</head>
<body>
<p> </p>
<table width="75%" border="0">
<tr>
<td width="22%"><a href="mete_producto.php ?id=1 &cantidad= $cantidad &talla= $talla &color= origami &precio=80">Referencia
1</a></td>
<td width="1%"><font face="Arial">Cantidad</font></td>
<td width="25%"><font face="Arial">
<input name="cantidad" type="text" id="cantidad">
</font></td>
<td width="10%"><font face="Arial">Talla</font></td>
<td width="10%"><font face="Arial">
<select name="talla" id="talla">
<option>S</option>
<option>M</option>
<option>L</option>
</select>
</font></td>
<td width="9%"><font face="Arial">Color</font></td>
<td width="23%"><font face="Arial">
<select name="color" id="color">
<option>Blanco</option>
<option>Negro</option>
<option>Gris</option>
</select>
</font></td>
</tr>
<tr>
<td><a href="mete_producto.php ?id=2 &cantidad= 2 &talla=29 &color=negro &precio=80">Referencia
2 </a> </td>
<td><font face="Arial">Cantidad</font></td>
<td><font face="Arial">
<input type="text" name="textfield2">
</font></td>
<td><font face="Arial">Talla</font></td>
<td><font face="Arial">
<select name="select2">
<option>S</option>
<option>M</option>
<option>L</option>
</select>
</font></td>
<td><font face="Arial">Color</font></td>
<td><font face="Arial">
<select name="select6">
<option>Blanco</option>
<option>Negro</option>
<option>Gris</option>
</select>
</font></td>
</tr>
<tr>
<td><a href="mete_producto.php?id=3 &cantidad= 3 &talla=102 &color=negro &precio=80">Referencia
3 </a></td>
<td><font face="Arial">Cantidad</font></td>
<td><font face="Arial">
<input type="text" name="textfield3">
</font></td>
<td><font face="Arial">Talla</font></td>
<td><font face="Arial">
<select name="select3">
<option>S</option>
<option>M</option>
<option>L</option>
</select>
</font></td>
<td><font face="Arial">Color</font></td>
<td><font face="Arial">
<select name="select7">
<option>Blanco</option>
<option>Negro</option>
<option>Gris</option>
</select>
</font></td>
</tr>
<tr>
<td><a href="mete_producto.php?id=4 &cantidad= 4 &talla=200 &color=negro &precio=80">Referencia
4 </a></td>
<td><font face="Arial">Cantidad</font></td>
<td><font face="Arial">
<input type="text" name="textfield4">
</font></td>
<td><font face="Arial">Talla</font></td>
<td><font face="Arial">
<select name="select4">
<option>S</option>
<option>M</option>
<option>L</option>
</select>
</font></td>
<td><font face="Arial">Color</font></td>
<td><font face="Arial">
<select name="select8">
<option>Blanco</option>
<option>Negro</option>
<option>Gris</option>
</select>
</font></td>
</tr>
</table>
<p> - <a href="ver_carrito.php">Ver carrito</a> </p>
</body>
</html>
la pag de libreria carro es:
<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_cantidad_prod;
var $array_talla_prod;
var $array_color_prod;
var $array_precio_prod;
//constructor. Realiza las tareas de inicializar los objetos cuando se instancian
//inicializa el numero de productos a 0
function carrito () {
$this->num_productos=0;
}
//Introduce un producto en el carrito. Recibe los datos del producto
//Se encarga de introducir los datos en los arrays del objeto carrito
//luego aumenta en 1 el numero de productos
function introduce_producto($id_prod,$cantidad_prod,$talla_prod,$color_prod,$precio_prod)
{
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_cantidad_prod[$this->num_productos]=$cantidad;
$this->array_talla_prod[$this->num_productos]=$talla;
$this->array_color_prod[$this->num_productos]=$color_prod;
$this->array_precio_prod[$this->num_productos]=$precio_prod;
$this->num_productos++;
}
//Muestra el contenido del carrito de la compra
//ademas pone los enlaces para eliminar un producto del carrito
function imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td><b>Talla</b></td>
<td><b>Color</b></td>
<td> </td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_id_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td>" . $this->array_talla_prod[$i] . "</td>";
echo "<td>" . $this->array_color_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td> </td></tr>";
//total más IVA
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 . "</b></td><td> </td></tr>";
echo "</table>";
}
//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
//No lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
function elimina_producto($linea){
$this->array_id_prod[$linea]=0;
}
}
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>
Vamos a ver si entendí.
El código expuesto lo llamaste index.php, este lo incluyes en las páginas que deseas tengan seguridad.
¿El problema es que en el index.php pusiste un vinculo a otra página?. En el código que aquí pegaste, no viene el vínculo.?
Ahora, ¿deseas qué en cada página en donde colocas el include(index.php) te pida la contraseña?
Solo aclarame estas dudas...
Vale mil gracias, se ve como quería creo que tengo una duda sobre el mismo tema pero con otro aspecto voy a intentar resolverlo sino te molesto
Una vez más mil gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas