Archivo de la categoría: Desarrollo Entorno Servidor

www.Midulcebebe.es

Aquí os traigo una nueva App Android enlazada a una tienda online realizada en prestashop.

Venta de ropa de bebe, carros, accesorios a un precio inigualable.

La App esta realizada en Android Studio con varios elementos como podéis ver, como un spinner que conecta a un webservice y recoje los datos mediante json.

La idea principal a la hora de desarrollar esta App a sido la movilidad del usuario dentro de la app, el poder desplazarse de una pagina o sección fácilmente, espero que os guste y la podáis valorar bien.

Ir a tienda online

Descargar App Android

CMD sin secretos ;) Hack crack

hack_x_crack_cmd_sin_secretos

Repaso PHP

 

1. Elementos del lenguaje PHP.

<body>

<?php

$titulo = $tituloIntroducidoPorUsuario;

echo “<h1>”. $titulo .”</h1>”;

$edadMinima = 20;

?>

 

Para visualizar los contenidos de esta página has de tener al menos

años.

 

……………………….

int time()

$now = time();

echo “hoy es “. date(“l, j-n-Y”, $now) . “<br>Son las “. date(“h:i:s”, $now);

$_SERVER Contiene información sobre el entorno del servidor web y el entorno de ejecución.

$_GET Contiene las variables pasadas mediante el método GET.

$_POST Contiene las variables pasadas mediante el método HTTP POST.

$_COOKIE Contiene las variables pasadas mediante el método Cookies HTTP.

$_REQUEST Contiene el contenido de $_GET, $_POST y $_COOKIE (no es aconsejable su uso).

$_FILES Contiene los ficheros subidos al servidor mediante el método HTTP POST.

$_SESSION Contiene las variables de sesión disponibles.

$numero=8;

echo “<br>tabla de multiplicar del “. $numero;

// uso de un for para realizar la tabla de multiplicar del número 8

for ($i=0;$i<=10;$i++) {

echo “<br>”. $numero . “*”. $i . “=”. $numero*$i;

}

3. Funciones.

programa.php

<?php

echo “Bienvenido a la página web del ciclo”;

include “definiciones.php”;

echo $ciclo . ” módulo: “. $modulo;

?>

definiciones.php

<?php

$modulo = “DWES”;

$ciclo = “DAW”;

?>

<?php

$iva = 0.21;

$pcSinIva = 300;

$pcConIva = $pcSinIva + calcularIva($pcSinIva, $iva);

function calcularIva($precio, $iva){

$conIva = $precio * $iva;

return $conIva;

}

function muestraPrecioFinal($precioFinal) {

echo “El precio del ordenador (iva incluido)= “. $precioFinal;

}

muestraPrecioFinal($pcConIva);

?>

3.3. Argumentos.

function calcularIva($precio, $iva=0.21){

$conIva = $precio * $iva;

return $conIva;

}

precioConIva = calcularIva(500);

4. Tipos de datos compuestos.

// array numérico

$modulos1 = array(“Programación”, “Bases de datos”, …, “Desarrollo web en entorno servidor”);

// aunque no es necesario como se puede observar en el ejemplo anterior, se podría

//definir un array numérico indicando los indices

$modulos1 = array(0 => “Programación”, 1 => “Bases de datos”, …, 9 => “Desarrollo web en entorno servidor”);

// array asociativo

$modulos2 = array(“PR” => “Programación”, “BD” => “Bases de datos”, …, “DWES” => “Desarrollo web en entorno servidor”);

$meses = array(“Enero”, “Febrero”, “Marzo”, …, “Diciembre”);

print_r($meses);

// array bidimensional

$ciclos = array(

“DAW” => array (“PR” => “Programación”, …, “BD” => “Bases de datos”),

“DAM” => array (“PR” => “Programación”, …, “PMDM” => “Programación multimedia “)

);

echo $matriz[1][3];

// array numérico

$modulos[0] = “Programación”;

$modulos[1] = “Bases de datos”;

$modulos[9] = “Desarrollo Web en Entorno Servidor”;

//array asociativo

$mesesEspanyol[“january”] = “Enero”;

$mesesEspanyol[“february”] = “Febrero”;

$mesesEspanyol[“december”] = “Diciembre”;

4.1. Recorrer arrays.

// recorrer array accediendo sólo a los elementos

$meses = array(“jan” => “Enero”, “feb” => “Febrero”, …, “dec” => “Diciembre”);

foreach ($meses as $mes) {

echo “mes: “. $mes .”<br />”;

}

// recorrer array accediendo a los elementos y sus claves

$meses = array(“jan” => “Enero”, “feb” => “Febrero”, …, “dec” => “Diciembre”);

foreach ($meses as $key => $valor) {

echo “clave: “. $key .” – valor: “. $valor .”<br />”;

}

5. Formularios web.

<form name=”input” action=”procesa.php” method=”post”>

<fieldset>

<legend>Datos personales</legend>

<label for=”nombre”>Nombre:</label>

<input type=”text” name=”nombre” id=”nombre”><br>

<label for=”apellidos”>Apellidos:</label>

<input type=”text” name=”apellidos” id=”apellidos”><br>

<label for=”fechaNacimiento”>Fecha de nacimiento:</label>

<input type=”date” name=”fechaNacimiento” id=”fechaNacimiento”>

</fieldset>

<fieldset>

<legend>Ciclo que cursa</legend>

<label for=”ciclo”>Ciclo:</label>

<select name=”ciclo” id=”ciclo”>

<option>DAW</option>

<option>DAM</option>

<option>ASIR</option>

</select>

</fieldset>

<fieldset>

<legend>Módulos que convalida</legend>

<input type=”checkbox” name=”modulos[]” value=”LM” id=”LM”>

<label for=”LM”>Lenguajes de marcas y sistemas de gestión de información</label><br>

<input type=”checkbox” name=”modulos[]” value=”SI” id=”SI”>

<label for=”SI”>Sistemas informáticos</label><br>

<input type=”checkbox” name=”modulos[]” value=”BD” id=”BD”>

<label for=”BD”>Bases de datos</label><br>

<input type=”checkbox” name=”modulos[]” value=”PR” id=”PR”>

<label for=”PR”>Programación</label><br>

<input type=”checkbox” name=”modulos[]” value=”DWES” id=”DWES”>

<label for=”DWES”>Desarrollo web en entorno servidor</label><br>

<input type=”checkbox” name=”modulos[]” value=”DWEC” id=”DWEC”>

<label for=”DWEC”>Desarrollo web en entorno cliente</label><br>

</fieldset>

<input type=”submit” value=”Enviar” />

</form>

Las clases.

<?php

class Coche {

// atributos

var $marca;

var $modelo;

var $color;

var $encendido;

// métodos

function arrancar() {

$this->encendido = true;

}

function apagar() {

$this->encendido = false;

}

function pintar($nuevoColor) {

$this->color = $nuevoColor;

}

}

?>

Para instanciar un objeto de una clase determinada se usa la palabra new:

$miCoche = new Coche;

$tuCoche = new Coche();

3.1. MySQLi.

// utilizando constructores y métodos de la programación orientada a objetos

$conexion = new mysqli(‘localhost’, ‘usuario’, ‘contraseña’, ‘base_de_datos’);

echo conexion->server_info;

// utilizando llamadas a funciones

$conexion = mysqli_connect(‘localhost’, ‘usuario’, ‘contraseña’, ‘base_de_datos’);

echo mysqli_get_server_info($conexion);

Usando clases:

//primero instanciar y luego se usa el método connec para establecer la conexión

$conexion = new mysqli();

$conexion->connect(‘localhost’, ‘user’, ‘pass’, ‘BD’);

//usando el constructor para establecer la conexión directamente

$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

Usando la interfaz procedimental

$conexion = mysqli_connect(‘localhost’, ‘user’, ‘pass’, ‘BD’);

$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

if($conexion->connect_errno != NULL)

echo “Error conectando a la base de datos: “. $conexion->connect_error;

Ejecución de consultas.

$resultado = $conexion->query(‘DELETE FROM stock WHERE unidades=0’);

Generalmente se realizarán consultas de uno de los cuatro tipos siguientes:

INSERT – Para insertar registros de la base de datos.

DELETE – Para borrar registros de la base de datos.

UPDATE – Para actualizar registros de la base de datos.

SELECT – Para consultar registros de la base de datos.

@$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

$error = $conexion->connect_errno;

if ($error == null) {

$resultado = $conexion->query(‘DELETE FROM stock WHERE unidades=0’);

if ($resultado) {

echo “<p>Se han borrado “. $conexion->affected_rows . “registros.</p>”;

}

$conexion->close();

}

Transacciones.

$conexion->autocommit(false); //se deshabilita el modo transaccional automático

Consultas preparadas.

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES (“Juan”, 123)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES (“Ana”, 162)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES (“Luis”, 423)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES (“José”, 761)’);

$resultado = $conexion->query(‘INSERT INTO alumno (nom, id) VALUES (“María”, 113)’);

A continuación se muestra un ejemplo completo del uso de consultas preparadas:

@$conexion = new mysqli(‘localhost’, ‘user’, ‘pass’, ‘BD’);

$consulta = $conexion->stmt_init();

$consulta->prepare(‘INSERT INTO alumno (nom, id) VALUES (?, ?)’);

$nombre = “Juan”; $id = “123”;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = “Ana”;

$id = “162”;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = “Luis”;

$id = “423”;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = “jose”;

$id = “761”;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$nombre = “María”;

$id = “113”;

$consulta->bind_param(‘ss’, $cod_producto, $nombre_producto);

$consulta->execute();

$consulta->close();

$dwes->close();

SQL injection.

$consulta = “SELECT * FROM usuarios WHERE nombre='”. $_POST[‘nombre’] .”‘; “;

$resultado=$conexion->query($consulta);

$consulta = “SELECT nombre, apellidos FROM alumno WHERE ciclo=’DAW'”;

$resultado = $conexion->query($consulta);

$fila = $resultado->fetch_array(); // Obtenemos el primer registro

$nombre = $fila[‘nombre’]; // O también $fila[0];

$apellidos = $fila[‘apellidos’]; // O también $fila[1];

echo “<p>Alumno: “. $nombre .” “. $apellidos .”</p>”;

$consulta = “SELECT nombre, apellidos FROM alumno WHERE ciclo=’DAW'”;

$resultado = $conexion->query($consulta);

while($fila=$resultado->fetch_array())

{

echo $fila[0] .” – “. $fila[1] .”<br>”;

}

Ejemplo: rellenando una tabla con los datos devueltos por la consulta:

$consulta = “SELECT nombre, apellidos, dirección FROM alumno WHERE ciclo=’DAW'”;

$resultado = $conexion->query($consulta);

echo “<table>”;

rcho “<tr><td>Nombre</td><td>Apellidos</td><td>Dirección</td></tr>”;

while($fila=$resultado->fetch_array())

{

echo “<tr>”;

echo “<td>”. $fila[0] .”</td>”;

echo “<td>”. $fila[1] .”</td>”;

echo “<td>”. $fila[1] .”</td>”;

echo “</tr>”;

}

echo “</table>”;

Ejercicio “Repaso”.

 

Ejercicios:

1. ¿Podemos ver una página web sin que intervenga un servidor?

Sí.

No.

¿Por qué?

Si , porque no hace falta que intervenga un servidor ya que la veremos en local todo el trabajo que vamos programando.//Siemprey cuando sea estatica.

2. ¿Qué tipo de tecnología emplearías para crear una página web personal?

En html Dreanweaber por ejemplo junto con php según de las necesidades que tenga la haría dinámica ya que la web que me gustaría hacer seria orientada al ámbito profesional.

¿Sería necesario utilizar páginas dinámicas?No seria necesario se puede hacer una web estatica si vas solo a dar información de poco uso.

¿Qué tareas de actualización y mantenimiento tendrías que realizar en cada caso? Actualizacion de web mediante cambiar modulos de la web y el mantenimiento mediante el back-end .

3. Explica que son front-end y back-end.

En diseño web (o desarrollo web) hace referencia a la visualización del usuario navegante por un lado (front-end), y del administrador del sitio con sus respectivos sistemas por el otro (back-end).

Ffront –end es la que ve el ususario.

Back-end es lo que va ver el usuario./Desde donde nosotros vamos a poder cambiar base de dadtos etc

4. Si quieres verificar la contraseña introducida en una página web que contenga una longitud mínima. ¿Dónde sería preferible que se ejecutara el código de comprobación?

En el navegador web.

En el servidor web.

Es indiferente.

En el navegador por seguridad.

5. ¿Cuál de estas tecnologías permite la ejecución por el servidor web de programas escritos en cualquier lenguaje?

PHP.

Java EE.

AMP.

CGI. =Esta es la correcta.

6. La relación entre la forma de ejecución de un lenguaje, y el método para integrarse con las etiquetas HTML de una página web es:

Si el lenguaje integra en su código etiquetas HTML, entonces se trata de un lenguaje de guiones.

Si las instrucciones del lenguaje se integran dentro de las etiquetas HTML de una página web, entonces se trata de un lenguaje de guiones.

Si las instrucciones del lenguaje se integran dentro de las etiquetas HTML de una página web, entonces se trata de un lenguaje compilado.

Es indistinto, no hay una relación directa.

La correcta pienso que es la ultima.

7. Indica el nombre delas directivas de configuración de PHP que realizan las siguientes funciones:

Indica si se pueden o no subir ficheros al servidor por HTTP. Si

Permite ajustar los segundos que podrá durar la ejecución de un script.Si

Indica si se pueden utilizar en PHP los delimitadores cortos <? y ?>. SI

Indica qué tipo de errores se mostrarán en el caso de que se produzcan

De presentación.

.

8. Si hacemos $a=1, ¿cuál de las siguientes comparaciones es verdadera?

“1” === $a

$a == false

–$a == false esta es la verdadera

a$++ == 2

Wireshark Protocolos

Introducción:

En esta práctica vamos a realizar y analitzar peticiones HTTP a distintos

servidors y dominios existentes. Haremos servir comandos telnet y el

programa Wireshark para capturar paquetes.

Enviar peticions HTTP:

Haciendo uso de telnet y conectando al port 80 de http://www.google.es, guarda

las pagines web obtenidas pidiendo:

1. Página index.html à index.html

2. Página index.html en catalàn à indexcatala.html

3. Página index.html en UTF-8 à indexutf8.html

4. Página index.html en ISO-8859-1 à indexiso.html

5. Página index.html en catalan i ISO-8859-1 à indexcatalaiso.html

6. Página index.html para la tablet Nexus 7 à indexN7.html

Poner el terminal en infinito.

Esta en la carpeta que te e pasado .

Lee el resto de esta entrada

$proyecto = (“Php”.” MySq”. “Formulario”);

mysq

PROYECTO DE CLASE

Lo primero que echo  es crearme un archivo PHP en el cual tengo un Formulario y unos enlaces a otros archivos PHP la finalidad de este Proyecto es conectar con una Base de Datos y poder borrar, modificar archivos vamos a ello y os voy explicando.

Lo primero nuestro archivo PHP con su conexión a una BASE DE DATOS  y a otros archivos PHP

<!doctype html>

<html>

<head>

<meta charset=”utf-8″>

<title>Se van a mostrar comentarios</title>

</head>

<body>

<h2>Emilio Sedano Gijon</h2>

<?php $conexion = new mysqli(‘localhost’, ‘admindaw’, ‘Campus2013’, ‘daw’);

$resultado = $conexion->query(‘SELECT * FROM comentarios ‘);

while($fila=$resultado->fetch_array())//Recorro las tablas mediante un

while {

echo “<div>”;  echo $fila[‘texto’] .” – “. $fila[‘usuario’] .” – “. $fila[‘mail’].” – “. $fila[‘idComentario’].”<br>”;

echo ‘<a href=”modificaComentario.php?comentario=’.$fila[“idComentario”].'”>Modificar</a>’.'<br>’;

echo ‘<a href=”eliminaComentarios.php?comentario=’.$fila[“idComentario”].'”>Eliminar</a>’.'<br>’;

echo “</div>”; } $conexion->close(); ?>

<form name=”input” action=”procComentarios.php” method=”post”>

<fieldset>

<legend>Se van a mostrar comentarios</legend>

<label for=”comentario”>texto</label>

<br> <textarea name=”comentario” cols=”20″ rows=”2″ id=”comentario”></textarea>

<br> <label for=”usuario”>Usuario</label>

<br> <input type=”text” name=”usuario” id=”usuario”>

<br><label for=”mail”>email:</label>

<br> <input type=”text” name=”mail” id=”mail”>

<br> <input type=”submit” value=”Enviar” />

<input type=”reset” value=”Reset” />

<input type=”hidden” name=”sql”  value=”si” />         </fieldset> </form>

</body>

</html>

Aquí un 2 Archivo que lo llame  proComentarios.php aquí lo que evaluo es cada instrucción del Formulario del archivo Comentarios vamos a evaluar que el Ususario no me haya puesto sitios en vacio gracias a PHP podemos poner en nuestro formulario condiciones las cuales veremos en este archivo.

<!doctype html>

<html>

<head>

<meta charset=”utf-8″>

<title>Documento sin título</title>

</head>

<body>

<?php /*Esta página comprobará que los campos introducidos: No estén vacíos. No excedan los límites de longitud que se establecieron en la base de datos. */

print_r($_POST); echo “<br>”;

//echo($_POST[‘comentario’].”<br>”); if($_POST[‘comentario’]==””)//

Que el nombre no este vacio {  echo “El campo esta vacio”.”<br>”;

}

//echo($_POST[‘usuario’].”<br>”);

if(   strlen($_POST[‘usuario’])> 10   || $_POST[‘usuario’]==”” )//Aqui comparo que no sea mayor a 10 o vacio

{

echo “ERROR te as pasado con los caracteres de largo o lo has dejado vacio”.”<br>”;

}

echo($_POST[‘mail’].”<br>”);

if(strlen($_POST[‘mail’])> 50 || $_POST[‘mail’]==”” )//Aqui comparo que no sea mayor a 10 o vacio

{

echo “ERROR te as pasado con los caracteres de largo o lo has dejado vacio”.”<br>”;

} //echo($_POST[‘mail’].”<br>”);

$email  = ‘mail’; $domain = strstr($_POST[‘mail’], ‘@’);

if(strstr($domain,’@’))

{

echo “OK bien insertado”; // mostrará @example.com

}

else  {

echo “ERROR”;

}

$conexion = new mysqli();//Me creo un objeto de mysqli

$conexion = mysqli_connect(‘localhost’, ‘admindaw’, ‘Campus2013’, ‘daw’);

if($conexion->connect_errno != NULL )

{

echo “has conectado mal”.”<br>”;

$conexion->connect_error;

}

else {

echo “Conexion establecida”.”<br>”;

}

$resultado = $conexion->query(“INSERT INTO comentarios(usuario,mail,texto) VALUES (‘”.$_POST[‘usuario’].”‘,'”.$_POST[‘mail’].”‘,'”.$_POST[‘comentario’].”‘)”);  echo “Los campos an sido guardados correctamente “.”<br>”;

?> </body> <a href=”comentarios.php”>Volver al Formulario</a>

</html>

En este siguiente archivo que lo voy a llamar eliminarComentarios.php aquí borrare los comentarios que el Usuario me a puesto .

<?php $conexion = new mysqli(‘localhost’, ‘admindaw’, ‘Campus2013’, ‘daw’);

$resultado = $conexion->query(“DELETE FROM comentarios WHERE idComentario=”.$_GET[“comentario”]);   mysqli_close($conexion);

header(‘location: comentarios.php’);

?>

Y ya por ultimo también modificare esos comentarios con este archivo llamado modificarComentarios.php

<?php

$conexion = new mysqli(‘localhost’, ‘admindaw’, ‘Campus2013’, ‘daw’);

$resultado = $conexion->query(“UPDATE FROM comentarios WHERE idComentario=”.$_GET[“comentario”]);   mysqli_close($conexion);

header(‘location: comentarios.php’);

?>

Como aveis podido ver en el Proyecto de esta semana hemos podido conectar con una base de datos con MySql y tratar las condiciones  de un Formulario aparte de poder modificar , eliminar el formulario desde la Base de Datos .