Fashion Store
Transcript of Fashion Store
1
<?phprequire_once( "egcc.php" );fnSessionStart();if( !$_SESSION["codigo"] ) {
fnRedirect( "default.php" );
return;}$canasta = $_SESSION["canasta"];if( is_null( $canasta ) ) {
fnShowMsg( "Mensaje", "Su canasta esta vacía." );return;
}ksort( $canasta );$cn = fnConnect( $msg );if(!$cn){
fnShowMsg( "ERROR", $msg );return;
}// Obtener Datos$codigo = $_SESSION["codigo"];// Obtener IGV$sql = "select valor from control where parametro='igv'";$rs = mysql_query($sql, $cn );$igv = mysql_result( $rs, 0, 0 );// Iniciar transacciónmysql_query( "BEGIN", $cn );// Generar Numero de Pedido$sql = "select valor from control where parametro='pedido'";$rs = mysql_query($sql, $cn );$idped = mysql_result( $rs, 0, 0 );$sql = "update control set valor = valor + 1 ";$sql .= "where parametro='pedido'";mysql_query( $sql, $cn );// Pragar Pedido$sql = "insert into pedido( idpedido, idcliente, fecha, subtotal, ";$sql .= "igv, total, estado, usuario ) values( $idped, '$codigo', ";$sql .= "curdate(), 0, 0, 0, 'I', substring_index(user(),'@',1) )";mysql_query( $sql, $cn );// Obtener total e insertar detalles$total = 0;foreach ( $canasta as $item => $cant ) {
$sql = "select precio, stock, nomarticulo ";$sql .= "from articulo where idarticulo = '$item' ";$rs = mysql_query( $sql, $cn );$row = mysql_fetch_row( $rs );if( $cant > $row[1] ) {
2
mysql_query( "ROLLBACK", $cn );$msg = "El articulo <b>$row[2]</b> no tiene stock suficiente.";fnShowMsg( "ERROR", $msg );return;
}$subtotal = $row[0] * $cant;$total += $subtotal;// Grabar detalle$sql = "insert into detalle( idpedido, idarticulo, cantidad, ";$sql .= "precio, subtotal ) values( $idped, '$item', $cant, ";$sql .= "$row[0], $subtotal ) ";mysql_query( $sql, $cn );// Actualizar stock$sql = "update articulo set stock = stock - $cant ";$sql .= "where idarticulo = '$item' ";mysql_query( $sql, $cn );
}// Actualizar pedido$subtotal = $total / ( 1 + $igv );$impuesto = $total - $subtotal;$sql = "update pedido set subtotal = $subtotal, ";$sql .= "igv = $impuesto, total = $total, ";$sql .= "estado = 'P' where idpedido = $idped ";mysql_query( $sql, $cn );mysql_query( "COMMIT", $cn );$_SESSION["canasta"] = null;say( "<center><h2>Pedido Nro. $idped</h2><center>" );$msg = "<h4>Señor: " . $_SESSION["nombre"] . "</h4>";$msg .= "Su transacción se procesó con exito.<br>";$msg .= "En 48 horas llegara su pedido.<br><br>";$msg .= "Gracias por su confianza en nosotros.<br>";fnShowMsg( "MENSAJE", $msg );?>
3
<?phprequire_once( "egcc.php" );fnSessionStart();if( !isset($_POST["seguro"]) ) {
fnRedirect( "default.php" );return;
}$seguro = $_POST["seguro"];if( $seguro != $_SESSION["seguro"] ){
fnRedirect( "default.php?op=2" );return;
}$codigo = $_POST["codigo"];$canasta = $_SESSION["canasta"];if( is_null($canasta) ) {
$canasta[$codigo] = 1;} else {
$encontro = 0;foreach ( $canasta as $item => $valor ) {
if( $item == $codigo ) {$canasta[$codigo] += 1;$encontro = 1;break;
}}if( $encontro == 0 ) { $canasta[$codigo] = 1; }
}$_SESSION["canasta"] = $canasta;fnRedirect( "default.php?op=3" );?>
4
<?phprequire_once( "egcc.php" );fnSessionStart();if( !$_SESSION["codigo"] ) {
fnRedirect( "default.php" );return;
}if( !isset($_GET["art"]) ) {
fnRedirect( "default.php" );return;
}$canasta = $_SESSION["canasta"];$codigo = $_GET["art"];$cant = $canasta[$codigo];$cn = fnConnect( $msg );$sql = "select * from articulo ";$sql .= "where idarticulo = '$codigo'";$rs = mysql_query($sql,$cn);$row = mysql_fetch_assoc( $rs );say("<table width=600 align='center'>");say("<tr>");say("<td width=200 align='center' valign='middle'>");say("<img src='fotos/$codigo.jpg' width='100' height='100' border='1'>");say("</td>");say("<td width=380 align='left' valign='middle'>");say("Codigo: $codigo<br>");;say("Nombre: ".$row["nomarticulo"]."<br>");say("Descripción: ".$row["descripcion"]."<br>");say("Precio: ".$row["precio"]."<br>");;say("Stock: ".$row["stock"]."<br>");say("<form method='post' action='canasta_update.php'>");say("<input type='hidden' name='art' value='$codigo'>");say("Cantidad:");say("<input type='text' name='cant' size=3 maxlength=3 value='$cant'><br>");say("<input type='hidden' name='seguro' value='".$_SESSION["seguro"]."'>");say("<input type='submit' value='Aceptar'> ");say("<input type='submit' value='Cancelar' onClick='history.back();'>");say("</form>");say("</td>");say("</tr>");say("</table>");?>
5
<?phprequire_once( "egcc.php" );fnSessionStart();$canasta = $_SESSION["canasta"];if( is_null( $canasta ) ) {
fnShowMsg( "Mensaje", "Su canasta esta vacía." );return;
}ksort( $canasta );$cn = fnConnect( $msg );if(!$cn){
fnShowMsg( "ERROR", $msg );return;
}say("<table width='600' align='center'>");say("<tr height=25>");say("<th width=30 align=center valign=middle>Código</th>");say("<th width=150 align=center valign=middle>Nombre</th>");say("<th width=70 align=center valign=middle>Cantidad</th>");say("<th width=70 align=center valign=middle>Precio</th>");say("<th width=70 align=center valign=middle>Subtotal</th>");say("<th align=center valign=middle>Acciones</th>");say("</tr>");$total = 0;foreach ( $canasta as $item => $valor ) {
$sql = "select idarticulo as art, nomarticulo as nom,";$sql .= "precio as precio ";$sql .= "from articulo as a ";$sql .= "where idarticulo = '$item' ";$rs = mysql_query( $sql, $cn );$row = mysql_fetch_assoc( $rs );$subtotal = $row["precio"] * $valor;$total += $subtotal;say("<tr>");say("<td align=center>".$row["art"]."</td>");say("<td align=left>".$row["nom"]."</td>");say("<td align=center>".$valor."</td>");say("<td align=right>".$row["precio"]."</td>");say("<td align=right>".$subtotal."</td>");say("<td align=center>");$cad = "canasta_oper.php?oper=A&art=".$row["art"];say( fnLink($cad,"","Anular Item","Anular") );$cad = "default.php?op=5&art=".$row["art"];say( fnLink($cad,"","Editar Item","Editar") );say("</td>");say("</tr>");
6
}say("<tr height=25>");say("<th align=left valign=middle colspan=4>Total</th>");say("<th align=right valign=middle>$total</th>");say("<th align=right valign=middle> </th>");say("</tr>");say("</table>");?><TABLE align="center"><TR> <TD width="200" align="center" valign="middle"> <?php say(fnLink("canasta_oper.php?oper=T","","Vaciar Canasta","Vaciar Canasta")); ?> </TD> <TD width="200" align="center" valign="middle"> <?php say(fnLink("default.php?op=4","","Pagar","Pagar")); ?> </TD></TR></TABLE>
7
<?phprequire("egcc.php");fnSessionStart();if( !$_SESSION["codigo"] ) {
fnRedirect( "default.php" );return;
}if( !isset($_GET["oper"]) ) {
fnRedirect( "default.php" );return;
}$oper = $_GET["oper"];$art = $_GET["art"];$canasta = $_SESSION["canasta"];if($oper=="T"){ // Eliminar todos los items
$canasta = null;}if($oper=="A"){ // Eliminar item actual
$canasta_tmp = null;foreach ($canasta as $item => $valor) {
if( $item != $art ) { $canasta_tmp[$item] = $valor;
}}$canasta = $canasta_tmp;
}$_SESSION["canasta"] = $canasta;fnRedirect( "default.php?op=3" );?>
8
<?phprequire_once( "egcc.php" );fnSessionStart();if($_SESSION["codigo"]){
$k = 1; // Con botón Comprar} else {
$k = 0; // Sin botón Comprar}$cn = fnConnect($msg);if(!$cn) {
fnShowMsg("Error",$msg);return;
} else {$rs = mysql_query("select * from articulo",$cn);say("<table width=660>");say("<tr>");say("<th width=90 align=center valign=middle>Articulo</th>");say("<th width=240 align=left valign=middle>Descripcion</th>");say("<th width=90 align=center valign=middle>Articulo</th>");say("<th width=240 align=left valign=middle>Descripcion</th>");say("</tr>");$col = 1;while($row = mysql_fetch_array($rs,MYSQL_ASSOC)) {
if($col==1){say("<tr>");}say("<td align=center valign=middle>");say("<img src='fotos/".$row["idarticulo"].".jpg' width='100'
height='100' border='1'>");say("</td>");say("<td align=left valign=middle>");say("Codigo:".$row["idarticulo"]."<br>");;say($row["nomarticulo"]."<br>");say($row["descripcion"]."<br>");say("Precio:".$row["precio"]."<br>");;say("Stock:".$row["stock"]."<br>");$codigo = $row["idarticulo"];if($k){
$seguro = $_SESSION["seguro"];say("<form method='post' action='canasta_add.php'>");say("<input type='hidden' name='codigo' value='$codigo'>");say("<input type='hidden' name='seguro' value='$seguro'>");say("<input type='submit' value='Comprar'>");say("</form>");
}say("</td>");if($col==2){
say("</tr>");$col = 1;
}else{$col = 2;
}}if($col==1){say("</tr>");}say("</table>");
}
9
?><?phprequire_once( "egcc.php" );fnSessionStart();?><HTML><HEAD>
<TITLE>FashionStore</TITLE><meta name="Author" content="Eric Gustavo Coronel Castillo"><LINK rel="stylesheet" type="text/css" href="egcc.css">
</HEAD><BODY><?phprequire( "titulo.html" );fnHeader();?><table width="760" cellspacing="0"><tr><td width='100' valign="top"><?php echo fnMenu(); ?></td><td valign="middle"><?php$op = 2;if(isset($_GET["op"]) ) {
$op = $_GET["op"];}switch ($op) {
case 1:require( "inicio.php" );break;
case 2:require( "catalogo.php" );break;
case 3:require( "canasta_list.php" );break;
case 4:require( "pagar.php" );break;
case 5:require( "canasta_edit.php" );break;
case 6:require( "pagar_conf.php" );break;
case 10:require( "error.php" );
10
break;}?></td></tr></table><?php require( "pie.html" ); ?></BODY></HTML>
/* cerrar.php
<?phprequire("egcc.php");fnSessionStart();fnSessionEnd();fnRedirect( "default.php" );?>
11
<?php
/* * Función que se conecta con el servidor * y selecciona la base de datos activa. * Retorna un mensaje en caso exista error.*/function fnConnect( &$msg ){
$cn=mysql_connect("localhost","root","admin");if(!$cn){
$msg = "Error en la conexión.";return 0;
}$n = mysql_select_db("fashionstore",$cn);if(!$n){
$msg = "Base de datos no existe.";mysql_close($cn);return 0;
}return $cn;
}
/* * Función que imprime un mensaje en el navegador. * */
function say($cad){echo $cad . "\n";
}
/* * Función que retorna la fecha actual.*/function fnNow(){
$hoy = getdate(time());$fecha = $hoy["mday"]."-".$hoy["mon"]."-".$hoy["year"];return $fecha;
}
/* * Función que inicia una sesión.*/function fnSessionStart(){
session_start();if(!isset($_SESSION["codigo"])){
$_SESSION["codigo"] = ""; $_SESSION["nombre"] = "Anónimo"; $_SESSION["canasta"] = null; $_SESSION["seguro"] = fnRnd( 1000, 9999 );}
}
/* * Función que finaliza una sesión.*/
12
function fnSessionEnd(){session_unset();session_destroy();
}
/* * Función que muestra un mensaje.*/function fnShowMsg($title,$msg){ say("<table align='center' width='300' border='1'>"); say("<tr>"); say("<th>$title</th>"); say("</tr>"); say("<tr>");
say("<td>$msg</td>"); say("</tr>"); say("</table>");}
/* * Función que muestra una línea de cabecera.*/function fnHeader(){
$usuario = $_SESSION["nombre"];say("<table width='760' cellspacing='0' height='30'>");
say("<tr>"); say("<th align=left valign=middle>Cliente: $usuario</th>"); say("<th align=right valign=middle>Fecha: ".fnNow()."</th>"); say("</tr>"); say("</table>");}
/* * Función que muestra un botón para regresar a la página anterior.*/function fnBack(){ return "<input type='button' Value='Back' onClick='history.back();'>";}
function fnRedirect($pagina){ $cad = "Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/$pagina"; header( $cad, True );}
/* * Función que retorna un link.*/function fnLink($link,$target,$mouseover,$msg){
$cad = "<A href='$link' target='$target' ";$cad .= "onmouseout=\"self.status='';return true\" ";$cad .= "onmouseover=\"self.status='$mouseover' ;return true\">";$cad .= "$msg</A>";return $cad;
}
13
/* * Función que retorna el menú de la aplicación.*/function fnMenu(){
$cad = "<table border='1' width='100'>";$cad .= "<tr><td align='center'>" ;if( $_SESSION["codigo"] ) {
$cad .= fnLink("cerrar.php","","Terminar de Sesión","Terminar");} else {
$cad .= fnLink("default.php?op=1","","Inicio de Sesión","Inicio");}$cad .= "</td></tr>";
$cad .= "<tr><td align='center'>" ;$cad .= fnLink("default.php?op=2","","Mostrar Catalogo","Catalogo");$cad .= "</td></tr>";
if( $_SESSION["codigo"] ) {$cad .= "<tr><td align='center'>" ;$cad .= fnLink("default.php?op=3","","Mostrar Canasta","Canasta");$cad .= "</td></tr>";
$cad .= "<tr><td align='center'>" ;$cad .= fnLink("default.php?op=4","","Pagar","Pagar");$cad .= "</td></tr>";
}
$cad .= "</table>" ;
return $cad;}
/* * Retorna un numero aleatorio entre $minimo y $maximo.*/function fnRnd($minimo, $maximo){ srand((double)microtime()*1000000); $randval = rand($minimo, $maximo); return $randval;}
/* * Función que imprime las etiquetas de fin de pagina. * */function fnPageEnd(){ say("</body>"); say("</html>");}?>
14
<?phprequire("egcc.php");fn_initsession();$msg = "";if(isset($_SESSION["idcliente"])){
fn_cabecera();$msg = "Usted ya tiene una sesión.<br>";$msg .= "Para iniciar otra sesión, ";$msg .= "debe cerrar la actual.";$msg .= "<br><br>".fn_back();fn_showmsg("ERROR",$msg);die("");
}if(isset($codigo) and isset($clave)){
$cn = fn_connect($msg);if(!$cn){
fn_showmsg("ERROR",$msg);die("");
}$sql = "select nomcliente from cliente ";$sql .= "where idcliente = '$codigo' and clave = '$clave'";$rs = mysql_query($sql,$cn);if(!$rs){
fn_showmsg("ERROR","Código o Clave incorrectos.");mysql_close($cn);die("");
}$_SESSION["idcliente"] = $codigo;$_SESSION["nombre"] = mysql_result($rs,0,0);$_SESSION["items"] = 0;fn_cabecera();fn_showmsg("Mensaje","Bienvenido ".$_SESSION['nombre']);mysql_free_result($rs);mysql_close($cn);exit;
}
?><table width=760><tr><td>
<form method=post action="usuario.php"><table align=center valign=middle><tr height=50>
<td colspan=2 align=center valign=bottom><b>Inicio de Sesión</b></td>
15
</tr><tr>
<td>Código Cliente</td><td><input type="text" name="codigo" size=20 maxlength=5></td>
</tr><tr>
<td>Contraseña</td><td><input type="password" name="clave" size=20
maxlength=20></td></tr><tr>
<td colspan=2 align=center valign=bottom><input type="submit" value="Aceptar"><input type="reset" value="Limpiar">
</td></tr> <td colspan=2 align=center valign=bottom>
<?php say(fn_link("usuario_new.php","","Registro nuevo
cliente","Nuevo cliente"));say(fn_link("enviar_clave.php","","Olvide mi clave","Olvive mi
clave"));?>
</td><tr></tr></table></form>
</td></tr></table></BODY></HTML>
<?php
16
require_once( "egcc.php" );fnSessionStart();if( !$_SESSION["codigo"] ) {
fnRedirect( "default.php" );return;
}$canasta = $_SESSION["canasta"];if( is_null( $canasta ) ) {
fnShowMsg( "Mensaje", "Su canasta esta vacía." );return;
}ksort( $canasta );$cn = fnConnect( $msg );if(!$cn){
fnShowMsg( "ERROR", $msg );return;
}say("<center><h2>Este es su Pedido</h2></center>");say("<table width='400' align='center'>");say("<tr height=25>");say("<th width=30 align=center valign=middle>Código</th>");say("<th width=150 align=center valign=middle>Nombre</th>");say("<th width=70 align=center valign=middle>Cantidad</th>");say("<th width=70 align=center valign=middle>Precio</th>");say("<th width=70 align=center valign=middle>Subtotal</th>");say("</tr>");$total = 0;foreach ( $canasta as $item => $valor ) {
$sql = "select idarticulo as art, nomarticulo as nom,";$sql .= "precio as precio ";$sql .= "from articulo as a ";$sql .= "where idarticulo = '$item' ";$rs = mysql_query( $sql, $cn );$row = mysql_fetch_assoc( $rs );$subtotal = $row["precio"] * $valor;$total += $subtotal;say("<tr>");say("<td align=center>".$row["art"]."</td>");say("<td align=left>".$row["nom"]."</td>");say("<td align=center>".$valor."</td>");say("<td align=right>".$row["precio"]."</td>");say("<td align=right>".$subtotal."</td>");say("</tr>");
}say("<tr height=25>");say("<th align=left valign=middle colspan=4>Total</th>");say("<th align=right valign=middle>$total</th>");say("<th align=right valign=middle> </th>");say("</tr>");say("</table>");?><TABLE align="center"><TR> <TD width="200" align="center" valign="middle"> <?php say(fnLink("default.php?op=6","","Confirmar Compra","Confirmar Compra")); ?> </TD></TR></TABLE>
17
/* error_php<?phprequire_once( "egcc.php" );fnSessionStart();$nroerror = $_GET["nroerror"];switch ( $nroerror ){
case 1:$msg = "Email o Contraseña incorrectos.";break;
default:$msg = "Error desconocido.";
}fnShowMsg( "Error", $msg );?>
/* inicio.php<?phprequire_once( "egcc.php" );fnSessionStart();if($_SESSION["codigo"] != ""){
fnRedirect( "default.php" );return;
}?><form method="POST" action="inicio2.php"><table align="center"><tr><th colspan=2>Inicio de Sesión</th></tr><tr>
<td>Email</td><td><input type="text" name="email" size=20 maxlength=30></td>
</tr><tr>
<td>Contraseña</td><td><input type="password" name="clave" size=20 maxlength=20></td>
</tr><tr>
<td colspan=2 align=center valign=bottom><input type="hidden" name="seguro" value="<?php echo $_SESSION["seguro"]; ?>"><input type="submit" value="Enviar"><input type="reset" value="Limpiar">
</td></tr></table></form>
18
<?phprequire_once( "egcc.php" );fnSessionStart();if($_SESSION["codigo"]){
fnRedirect( "default.php" );return;
}if( !isset($_POST["seguro"]) ) {
fnRedirect( "default.php" );return;
}$seguro = $_POST["seguro"];if( $seguro != $_SESSION["seguro"] ) {
fnRedirect( "default.php?op=1" );return;
}$email = $_POST["email"];$clave = $_POST["clave"];$cn = fnConnect($msg);$sql = "select idcliente, nomcliente from cliente ";$sql .= "where email = '$email' and clave = '$clave'";$rs = mysql_query($sql,$cn);$rows = mysql_num_rows( $rs );if( $rows == 0 ){
fnRedirect( "default.php?op=10&nroerror=1" );return;
}$_SESSION["codigo"] = mysql_result($rs,0,0);$_SESSION["nombre"] = mysql_result($rs,0,1);fnRedirect( "default.php" );?>
19