Tutorial de PHPEste artículo es un pequeño (relativamente) tutorial de PHP en el que intentaré explicar lomás importante d...
Para los comentarios se puede utilizar:1. /* varias2. lineas */3.4. // una linea5.6. # una lineaAunque no es una caracterí...
Para obtener el tipo de una variable se puede utilizar gettype($var)1. $texto = "Hola mundo";2. echo gettype($texto);Para ...
OperadoresLos operadores aritméticos son la suma (+), resta (-), multiplicación (*), división (/) ymódulo (%).Operadores d...
2. $matriz[1] = "mundo";Si no se especifica la clave ocurre lo mismo que con la función array; se usa el último índice+ 1,...
comillas simples, en las que se NO se pueden utilizar caracteres especiales, ni sesustituyen las variables por sus valores...
2. echo substr_replace($cadena, "Arman", 5, 3);Para reemplazar todas las ocurrencias de una cadena por otra se puede utili...
2. echo "Contador vale $contador<br/>";3. }Para recorrer los valores de un array es útil la construcción foreach, que reco...
5. $valor = 4;6. obtenerCuadrado($valor);7. echo $valor;Se puede especificar valores por defecto para argumentos con la si...
2. function __construct() {3. echo "Dentro del constructor<br/>";4. }5.6. function saludar() {7. echo "Hola<br/>";8. }9. }...
1. class Empleado extends Persona {2. }Para crear una interfaz se utiliza la palabra clave interface.1. interface Figura {...
En desarrollo nos interesa mostrar los errores y avisos de PHP en pantalla. En producciónse debería modificar la opción di...
Para crear prepared staments se utilizar el método mysqli->prepare($consulta), después sellama al método bind_param del ob...
la codificación del documento, y el atacante engaña al navegador para hacerle pensar queUTF-7 es la verdadera codificación...
Upcoming SlideShare
Loading in...5
×

Tutorial de php

143

Published on

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
143
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tutorial de php

  1. 1. Tutorial de PHPEste artículo es un pequeño (relativamente) tutorial de PHP en el que intentaré explicar lomás importante del lenguaje de forma concisa.IntroducciónPHP es un lenguaje de script, multiplataforma, publicado bajo una licencia libre, que sesuele utilizar del lado del servidor para crear páginas web dinámicas. A día de hoy es eltercer lenguaje mas popular del mercado según el índice TIOBE, sólo por detrás de Java yC.Creado por Rasmus Lerdorf en 1995, su nombre es (actualmente) un acrónimo recursivode “PHP: Hypertext Preprocessor” (Preprocesador de Hipertexto PHP).La última versión estable a la hora de escribir estas líneas, la cuál se puede descargardesde su página web, es la 5.3.1, de Noviembre de 2009.Ya explicamos hace tiempo cómo instalar Apache, y cómo instalar PHP y MySQL enWindows. También es posible descargar aplicaciones que instalen las 3 herramientasrápida y fácilmente (no recomendado para entornos de producción), como WampServer oXAMPP.Primer programa en PHPCreemos una primera pequeña página web dinámica, que mostrará la fecha y hora actual.1. <html>2. <head><title>Fecha y hora</title></head>3. <body>4. <?php5. // Esto imprime la fecha6. echo "Hoy es ", date("d/n/Y");7. echo "<br/>";8. // Y esto la hora9. echo "Son las ", date("h:m:s");10. ?>11. </body>Además de usando la sintaxis anterior, <?php .... ?>, que es lo más común y recomendable,también se puede insertar código PHP en documentos HTML usando:• <script language="php"> .... </script>• <? .... ?> si está activada la opción short_open_tag en php.ini• <% .... %> si está activada la opción asp_tags en php.iniEsto no es Python: cada instrucción termina con ‘;’ (no es necesario si es la últimainstrucción).
  2. 2. Para los comentarios se puede utilizar:1. /* varias2. lineas */3.4. // una linea5.6. # una lineaAunque no es una característica integrada en el lenguaje, para comentarios dedocumentación se suele utilizar PHPDoc, el equivalente al JavaDoc de Java en PHP.1. /**2. * Ejemplo de documentación de una función3. * @param int $foo un entero cualquiera4. */Para imprimir datos por pantalla se puede usar, entre otros, echo, print, printf o print_r.A echo se le pasa una cadena que imprimirá. No es necesario utilizar paréntesis porque noes una función. También se le puede pasar varias cadenas, separadas por comas, y este lasimprimirá todas unas detrás de otra, sin dejar espacios entre ellas:1. echo "Hola ", "mundo ", "en PHP";print funciona de forma similar a echo, pero no puede tomar varios argumentos, y devuelveun valor de retorno. Debido a esto es algo más lento que echo.1. print "Hola mundo";A diferencia de echo y print, printf sí que es una función. Se comporta de manera similar a lafunción del mismo nombre de C, es decir, se pueden utilizar especificadores de formato.En el siguiente ejemplo $nombre y $edad serían variables con el nombre y la edad de unapersona, y su valor se embebería en la cadena en las posiciones indicadas por %s(especificador de cadena) y %d (especificador de entero).1. printf("%s tiene %d años", $nombre, $edad);print_r es una función que podemos utilizar para la depuración. Su función es la deimprimir variables de forma legible para las personas. Por ejemplo, si le pasáramos unamatriz, imprimiría sus claves y valores1. print_r($matriz);VariablesEl nombre de las variables debe comenzar siempre con ‘$’.PHP tiene tipado dinámico: al crear una variable no se especifica el tipo, sino que elintérprete de PHP lo determina en tiempo de ejecución según el contexto.1. $texto = "Hola mundo";En PHP tenemos como tipos simples los booleanos (boolean), números enteros (integer),números en coma flotante (float) y cadenas (string). Como tipos compuestos tenemosmatrices (array) y objetos (object). Además tenemos un par de tipos especiales: resource,enteros que se usan para referenciar recursos; y NULL, el tipo nulo.
  3. 3. Para obtener el tipo de una variable se puede utilizar gettype($var)1. $texto = "Hola mundo";2. echo gettype($texto);Para obtener el tipo y otra información sobre la variable, como los valores para un array olas propiedades de un objeto, se puede utilizar var_dump($var)1. $texto = "Hola mundo";2. echo var_dump($texto);El tipo de una variable puede cambiar según el valor que almacenemos en ella.1. $variable = "Hola mundo";2. echo gettype($variable), "<br/>";3. $variable = 22;4. echo gettype($variable);Además las variables tienen tipado débil, y su tipo puede cambiar según el uso quequeramos hacer de ellas.1. $variable = "22";2. echo $variable / 2;Para comprobar si una variable es de un cierto tipo se pueden utilizar las funciones is_tipo,como is_bool($var), is_string($var), is_object($var), is_float($var)…Para comprobar si una variable tiene un valor asociado se puede utilizar la funciónisset($var).Para crear constantes se usa la función define. Al no ser variables propiamente dichas, nose utiliza el caracter $ al principio.1. define("PI", 3.14159);2. echo "Pi es ", PI;Como hay un carácter que identifica las variables, podemos introducirlas directamente enuna cadena, y PHP la sustituirá por su valor. No tenemos por qué hacer algo como1. $usuario = "Juan";2. echo "Hola ", $usuario";sino que podríamos hacer simplemente1. $usuario = "Juan";2. echo "Hola $usuario";Si necesitamos indicar el final del nombre de la variable explícitamente se pueden utilizarllaves. En el siguiente código, por ejemplo, si no utilizáramos llaves el intérprete buscaríauna variable de nombre $productos.1. $producto = "Donut";2. echo "Le gustan los {$producto}s";También se puede utilizar la misma sintaxis para hacer cosas más complejas, como llamara funciones dentro de la cadena:1. echo "Ha comprado {$objeto.contar()} platos";
  4. 4. OperadoresLos operadores aritméticos son la suma (+), resta (-), multiplicación (*), división (/) ymódulo (%).Operadores de comparaciónOperador Descripción== true si ambos operandos son iguales!= true si ambos operandos son distintos=== true si ambos operandos son iguales, no sólo en valor, sino también en tipo!== true si ambos operandos son distintos, en valor o tipo< true si el primer operando es menor que el segundo> true si el primer operando es mayor que el segundo<= true si el primer operando es menor o igual que el segundo>= true si el primer operando es mayor o igual que el segundoOperadores lógicosOperador Descripciónand / && true si se cumplen ambas condicionesor / || true si se cumple una de las condicionesxor true si se cumple sólo una de las condiciones! true si no se cumple la condiciónBooleanosLas variables de tipo booleano pueden tener como valor true o false. Son equivalentes afalse el 0, una cadena vacía, un array vacío y NULL.ArraysPara crear un array se utiliza la función del mismo nombre.1. $codigos = array(0 => "España", 1 => "Italia");Como clave se pueden usar números, como una matriz normal, o cadenas, para crear undiccionario o array asociativo.1. $codigos = array("ES" => "España", "IT" => "Italia");Si no se especifica una clave se usa el último índice + 1, o bien 0 si no se ha especificadoningún índice aún:1. $codigos = array("España", "Italia");2. $dias = array(1 => "Lunes", "Martes", "Miércoles");También se puede crear una matriz usando los corchetes, elemento por elemento:1. $matriz[0] = "Hola ";
  5. 5. 2. $matriz[1] = "mundo";Si no se especifica la clave ocurre lo mismo que con la función array; se usa el último índice+ 1, o 0 si no se ha especificado ningún índice todavía:1. $matriz[] = "Hola ";2. $matriz[] = "mundo";Para modificar un valor, también se usan los corchetes:1. $matriz[0] = "Hello ";Para eliminar un par clave-valor se puede usar la función unset($var)1. unset($matriz[0]);unset es una función que sirve para eliminar una variable dada, así que podríamos eliminarla propia matriz haciendo1. unset($matriz);Para contar el número de elementos en el array se puede usar la función count($var), quetambién se puede usar con los objetos para contar el número de propiedades que tiene.Para ordenar los elementos de la matriz se puede usar• sort($array)• rsort($array), ordena en orden inverso• array_multisort($array), para arrays multidimensionales• asort($array), ordena manteniendo la asociación de índices• arsort($array), ordena en orden inverso, manteniendo la asociación de índices• ksort($array), ordena por clave• krsort($array), ordena por clave en orden inverso• natsort($array), ordena usando un algoritmo de “orden natural”, es decir, comoordenaría una persona. Mantiene la asociación de índices• uasort($array, $funcion), ordena usando una función definida por el usuario,mateniendo la asociación de índices• uksort($array, $funcion), ordena usando una función definida por el usuario usando lasclaves• usort($array, $funcion), ordena usando una función definida por el usuarioPara comprobar si un determinado elemento está dentro de un array se usa in_array. PHPindexa todos los valores de los arrays, así que es mucho más rápido usar esta función queun bucle que compruebe uno por uno.1. in_array("pepe", $usuarios);CadenasLas cadenas se pueden delimitar de 4 formas. Con dobles comillas, en cuyo caso sepueden utilizar caracteres especiales, como n o t, y se sustituyen las variables por susvalores:1. $usuario = "Juan";2. $mensaje = "<pre>Holan$usuario</pre>";3. echo $mensaje;
  6. 6. comillas simples, en las que se NO se pueden utilizar caracteres especiales, ni sesustituyen las variables por sus valores. Debido a esto dan un rendimiento marginalmentemejor que las dobles comillas:1. $usuario = "Juan";2. $mensaje = <pre>Holan$usuario</pre>;3. echo $mensaje;sintaxis heredoc, en las que, como en las dobles comillas, se pueden utilizar caracteresespeciales y se sustituyen las variables por sus valores. No se necesitan escapar lascomillas si queremos imprimirlas, y se puede escribir el texto en varias líneas:1. $mensaje = <<< IDENTIFICADOR2. Ejemplo de cadena3. que ocupa4. varias líneas5. IDENTIFICADOR;6. echo $mensaje;sintaxis nowdoc, similar a heredoc, pero no se sustituyen las variables por sus valores:1. $mensaje = <<< IDENTIFICADOR2. Ejemplo de cadena3. que ocupa4. varias líneas5. IDENTIFICADOR;6. echo $mensaje;Una vez creada se puede acceder a posiciones de la cadena como si de una matriz setratara1. $cadena = "Hola mundo";2. echo $cadena[5];e incluso modificar posiciones de igual forma1. $cadena = "Hola amigo";2. $cadena[9] = "a";3. echo $cadena;Se pueden concatenar cadenas con el operador ‘.’:1. $conc = "Hola " . "mundo";2. echo $conc;Para obtener el número de caracteres que tiene una cadena se utiliza la funciónstrlen($cadena).Para obtener parte de una cadena se utiliza la función substr($cadena, $inicio, $tamanyo)1. $cadena = "Hola mundo";2. echo substr($cadena, 5, 3);Para reemplazar una subcadena por otra se puede utilizar substr_replace($cadena, $reemplazo,$inicio, $tamanyo)1. $cadena = "Hola mundo";
  7. 7. 2. echo substr_replace($cadena, "Arman", 5, 3);Para reemplazar todas las ocurrencias de una cadena por otra se puede utilizar la funciónstr_replace($subcadena, $reemplazo, $cadena, &$ocurrencias)1. $cadena = "Hola mundo";2. echo str_replace("o", "a", $cadena);Se puede dividir una cadena en partes utilizando un cierto delimitador con la funciónexplode($delimitador, $cadena, $limite)1. $cadena = "Hola mundo";2. $palabras = explode(" ", $cadena);3. print_r($palabras);Para buscar una subcadena dentro de la cadena se puede utilizar la función strpos($cadena,$subcadena, $offset)1. $cadena = "Hola mundo";2. $subcadena = "m";3. $posicion = strpos($cadena, $subcadena);Control de flujoCondicionales1. if ($condicion) {2. echo "Se cumple la primera condición";3. } elseif ($condicion2) {4. echo "No se cumple la primera condición, pero sí la segunda";5. else {6. echo "No se cumple ninguna de las 2 condiciones";7. }1. switch($usuario) {2. case "admin":3. echo "Bienvenido Dr. Falken";4. break;5. case "zootropo":6. echo "Hola Raúl";7. break;8. default:9. echo "Lo siento Dave, me temo que no puedo hacer eso";10. break;11. }Bucles1. for ($contador = 0; $contador < 10; $contador++) {
  8. 8. 2. echo "Contador vale $contador<br/>";3. }Para recorrer los valores de un array es útil la construcción foreach, que recorre cada valorde la matriz uno por uno, incluidos los valores cuya clave asociada no es un número1. foreach ($_SERVER as $var){2. echo "$var<br/><br/>";3. }También se puede hacer que nos de tanto la clave como el valor:1. foreach ($_SERVER as $key => $var){2. echo "<strong>$key</strong> = $var<br/><br/>";3. }1. $contador = 0;2. while ($contador <= 10) {3. echo "Contador vale $contador<br/>";4. $contador++;5. }1. $contador = -1;2. do {3. echo "Contador vale $contador<br/>";4. $contador++;5. } while ($contador <= 10);Se puede usar continue para continuar con la próxima iteración del bucle y break para salirdel bucle. Una curiosidad es que se puede usar break 2, por ejemplo, y eso haría que sesaliera de dos bucles que estuvieran uno dentro del otro.FuncionesLa palabra clave para definir una función en PHP es function.1. function saludar() {2. echo "Hola";3. }Para devolver un valor se utiliza return1. function obtenerCuadrado($numero) {2. return $numero * $numero;3. }Por defecto los parámetros de la función se pasan por valor. Para pasarlos por referenciase añade & antes del nombre de la variable en la lista de argumentos:1. function obtenerCuadrado(&$numero) {2. $numero = $numero * $numero;3. }4.
  9. 9. 5. $valor = 4;6. obtenerCuadrado($valor);7. echo $valor;Se puede especificar valores por defecto para argumentos con la sintaxis:1. function saludar($nombre="Raul") {2. echo "Hola $nombre";3. }Para crear funciones con un número de parámetros variable se deja la lista de argumentosvacía y se usan las funciones func_get_args() para obtener una lista de los parámetrospasados, func_num_args() para obtener el número de parámetros yfunc_get_arg($num_argumento) para obtener un parámetro a partir de su índice.1. function sumar() {2. $suma = 0;3. foreach(func_get_args() as $param)4. $suma += $param;5. return $suma;6. }PHP posee características de los lenguajes funcionales: se puede utilizar las funcionescomo si de otro tipo de variable cualquiera se tratara.También se pueden crear funciones anónimas:1. $lambda = function($num1, $num2){ return $num1 + $num2;};2. echo $lambda(1, 2);Orientación a objetosUna clase se declara con la palabra clave class seguida del nombre de la clase.1. class MiClase {2. }El constructor es una función con nombre __construct(), y el destructor, __destruct.1. class MiClase {2. function __construct() {3. echo "Estamos creando un objeto de tipo MiClase<br/>";4. }5. }Para instanciar un nuevo objeto a partir de una clase se usa la sentencia new.1. $objeto = new MiClase();2. $objeto2 = new MiClase;Para acceder a las propiedades y métodos se usa “->” en lugar del típico “.”1. class MiClase {
  10. 10. 2. function __construct() {3. echo "Dentro del constructor<br/>";4. }5.6. function saludar() {7. echo "Hola<br/>";8. }9. }10. $objeto = new MiClase();11. $objeto->saludar();Hay 3 modificadores de acceso: public (por defecto), protected y private.$this es el equivalente al this de Java o el self de Python.1. class Persona {2. function __construct($nombre) {3. $this->nombre = $nombre;4. }5. }6.7. $persona = new Persona("Juan");8. echo $persona->nombre;Las propiedades y métodos estáticos se crean con la palabra clave static. Una peculiaridades que para acceder a los miembros estáticos se utiliza la sintaxis $objeto::$miembro, y no$objeto->miembro. Además se utiliza self en lugar de $this.1. class Persona {2. public static $contador = 0;3.4. function __construct($nombre) {5. $this->nombre = $nombre;6. self::$contador++;7. }8. }9. $persona = new Persona("Juan");10. echo $persona::$contador, "<br/>";11.12. $persona = new Persona("Pepe");13. echo $persona::$contador, "<br/>";14.15. echo Persona::$contador, "<br/>";Para heredar de otra clase se usa la palabra clave extends. PHP no soporta la herenciamúltiple.
  11. 11. 1. class Empleado extends Persona {2. }Para crear una interfaz se utiliza la palabra clave interface.1. interface Figura {2. function calcularArea();3. }para implementar la interfaz, se utiliza la palabara clave implements1. class Cuadrado implements Figura {2. // ...3.4. function calcularArea() {5. return $this->lado * $this->lado;6. }7. }Tratamiento de erroresEn PHP hay dos sistemas de notificación de errores: excepciones, como en Java o Python,y el sistema de reporte de errores del lenguaje. No es muy común ver el uso deexcepciones en el codigo PHP, sólo se utiliza en el código más moderno que hace uso de laorientación a objetos.La captura de excepciones tiene este aspecto:1. function dividir($num1, $num2) {2. if($num2 == 0)3. throw new Exception(No se puede dividir entre 0);4. else5. return $num1 / $num2;6. }7.8. try {9. dividir(5, 0);10. } catch (Exception $e) {11. echo Ocurrió una excepción: , $e->getMessage(), "n";12. }En el caso de los errores, podemos lanzar los nuestros propios usando la funcióntrigger_error($mensaje, $tipo). El tipo de error puede ser E_USER_ERROR, E_USER_WARNING oE_USER_NOTICE1. trigger_error("No se pudo conectar a la base de datos", E_USER_ERROR);También podemos definir nuestro propio manejador para tratar nosotros mismos loserrores, en lugar de PHP, utilizando la función set_error_handler.
  12. 12. En desarrollo nos interesa mostrar los errores y avisos de PHP en pantalla. En producciónse debería modificar la opción display_errors de php.ini y ponerla a Off para deshabilitarlo. Laopción error_reporting permite configurar qué tipo de errores queremos mostrar.Existe un operador que permite que una cierta sentencia de código no genere errores, @,aunque su uso no está aconsejado.PHP y MySQLLa mejor forma de utilizar MySQL desde PHP es mediante la interfaz orientada a objetosde la extensión mysqli. Si no estamos seguros de si vamos a tener que cambiar de base dedatos también podemos utilizar la extensión PDO (PHP Data Objects), una capa deabstracción incluida por defecto desde PHP 5.1Primero creamos el objeto correspondiente con new mysqli($host, $usuario, $password, $bbdd)1. $mysqli = new mysqli("localhost", "root", "mipassword", "mibbdd");Una vez hecho esto podemos comprobar si ha habido algún error mediante la propiedadconnect_error. Este propiedad contiene una cadena describiendo el error que se haproducido, o una cadena vacía si no hubo ningún error.1. if (mysqli_connect_errno())2. exit("Se produjo un error: ", mysqli_connect_error());Una vez abierta la conexión podemos comenzar a realizar consultas utilizando el métodoquery. Este devuelve true si se llevó a cabo la consulta correctamente.1. if ($mysqli->query("CREATE TABLE Personas(id int, nombre varchar(30))")) {2. echo "Tabla personas creada";3. } else {4. echo "Error al crear la tabla personas";5. }En las consultas que modifican tuplas el número de tuplas afectadas se almacena en lapropiedad affected_rows1. $mysqli->query("UPDATE Empleados SET prima=2000 WHERE ventas > 5000");2. echo "Primas modificadas: ", $mysqli->affected_rows;Para recorrer las tuplas devueltas por un SELECT haríamos algo así1. if ($resultado = $mysqli->query("SELECT * FROM Empleados")) {2. while($empleado = $resultado->fetch_object()) {3. printf("%s %s<br/>", $empleado->Nombre, $empleado->Apellidos);4. }5. }Al finalizar se debe cerrar la conexión utilizando el método close()1. $mysqli->close()Para evitar ciertos ataques de SQL injection es conveniente pasar las cadenas que vengandel usuario por el método mysqli::escape_string($cadena), para escapar los caracteresespeciales, o bien utilizar prepared staments.
  13. 13. Para crear prepared staments se utilizar el método mysqli->prepare($consulta), después sellama al método bind_param del objeto stament creado, para introducir los valorescorrespondientes en los placeholders y, después, execute() para ejecutar la consulta. Porúltimo se llama al método close para cerar el stament1. if ($consulta = $mysqli->prepare("SELECT a FROM b")) {2. $consulta->bind_param($campo, $tabla);3. $consulta->execute();4. $consulta->close();5. }Si necesitas más información sobre MySQL en sí, puedes consultar nuestro Tutorial deMySQLFormulariosAl enviar un formulario, si se utiliza el método POST, el valor de cada campo rellenado porel usuario se guardará en una matriz asociativa de nombre $_POST. Si se utiliza GET, sealmacenará en la matriz $_GET. Las claves de esta matriz asociativa se tomarán del atributoname de cada campo del formulario.Si no nos importa el origen de la petición, también se puede usar $_REQUEST["nombre"], quees una mezcla de la información de $_GET, $_POST y $_COOKIE (efectivamente, un array conlos valores de las cookies)Para un select, que tiene varios valores, el valor del atributo name debe acabar con [],como una matriz. PHP creará una matriz con este nombre, que contendrá los valores delos atributos name de las opciones seleccionadas.1. <select name="languages[]">2. <input name="c">C</input>3. <input name="c++">C++</input>4. <input name="php">PHP</input>5. <input name="perl">Perl</input>6. </select>$_SERVER[PHP_SELF] contiene la URL del script actual. Puede ser útil como valor para elatributo action del formulario.Si la entrada del usuario se va a mostrar en algún lugar del sitio, para evitarvulnerabilidades de XSS, este texto debería pasar antes por la funciónhtmlspecialchars($cadena), que convierte a sus entidades HTML correspondientes loscaracteres especiales “, <, >, & y, opcionalmente, ‘, si pasamos como segundo argumentoa la función la constante ENT_QUOTES.1. echo Hola , htmlspecialchars($_POST[usuario]);Si el texto se va a utilizar en un atributo de una etiqueta HTML hay que asegurarse de quelos valores de los atributos estén entre comillas, y que el tipo de comillas utilizado estécodificado como entidades HTML en la cadena.También hay que tener cuidado con la codificación de caracteres. Si el atacante utilizaraun texto codificado en UTF-7, htmlspecialchars no reemplazaría nada, y si no especificamos
  14. 14. la codificación del documento, y el atacante engaña al navegador para hacerle pensar queUTF-7 es la verdadera codificación del archivo, nuestro filtrado no habrá servido de nada.Podemos especificar la codificación de caracteres con una etiqueta meta o usando lacabecera Content-Type:1. header(Content-Type: text/html; charset=UTF-8);CookiesPara crear cookies usamos setcookie($nombre, $valor, $expiracion, $ruta, $host, $https)1. // Expira 3600 segundos después de haberse creado2. setcookie(usuario, raul, time() + 3600);3. setcookie(fondo, #000000);A las cookies se accede a través de la matriz superglobal $_COOKIE:1. echo Bienvenido , $_COOKIE[usuario];SesionesPara crear una sesión se llama a la función session_start(), que debe ser la primera sentenciaPHP de la página.Para almacenar datos en la sesión se puede utilizar la matriz superglobal $_SESSIONdirectamente:1. $_SESSION[usuario] = raul;Para acceder a los datos que hemos guardado en la sesión se utiliza el mismo arrayasociativo:1. echo Bienvenido , $_SESSION[usuario];

×