You are on page 1of 19

Gestión de base de datos a través de sitio web

1. Conexión a base de datos


*Una base de datos permite almacenar información en forma de datos estructurados, matrices
o tablas con encabezados, y en el momento de que un sitio web solicite la obtención o
guardado de información, para este laboratorio los datos se guardara en un repositorio de
base de datos MySQL.

Para empezar a conectar a una base de datos desde un sitio web, se necesita tener en
conocimiento:

- Host, Nombre de servidor o dirección IP donde se deposita la base de datos


- Usuario de base de datos
- Contraseña de Base de Datos
- Nombre de base de datos

Por defecto el host lleva como nombre localhost, el usuario de base de datos es “root”, sin
embargo, para asegurarnos de que la contraseña es correcta, debemos de ir a la siguiente ruta:
C:\xampp\phpMyAdmin, y abrir el archivo “config.inc.php”, una vez abierto, se encontraran los
parámetros de autenticación, incluyendo el de contraseña:
/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '010207';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

De la misma manera, se necesita de funciones PHP capaces de abrir conexión a base de datos,
así como hacer tareas de manipulación de datos ya creados, y de realizar interacciones con la
información que se almacena en la base de datos

Entre funciones MySql para PHP, primero se debe de establecer la apertura de conexión de la
base de datos con la función:

mysqli_connect

Esta función requiere 4 parámetros:

 Host
 Usuario de base de datos
 Contraseña de base de datos
 Nombre de base de datos

De manera opcional, si el usuario no está seguro de que existe conexión y desea establecer
estabilidad den el sitio web, puede usar la siguiente función:

mysqli_connect_errno

Esta función se encarga de regresar como valor 1 si existe código de error de conexión, caso
contrario regresara 0.
//Forma Procedimental
<?php
$con = mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno()) {
echo "Fallo en conexion a MYSQL" . mysqli_connect_error();
}
?>
//Forma orientada a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$database = "my_db";
// Create connection
$conn = new mysqli($servername, $username, $password, $database);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

2. Consultas a base de datos


Una vez establecido la conexión, existen diferentes operaciones que se pueden realizar, una de
ellas es mostrar contenido de una base de datos en el sitio web por medio de etiquetas de lista
o tabla.

Primero, se necesita conocer la consulta que se realizara en la base de datos:

Consultar tabla con columnas especificas


SELECT column_name1, column_name2, column_nameN FROM table_name
Consultar tabla con todas las columnas
SELECT * FROM table_name
Consultar tabla con una columna filtrada
SELECT * FROM table_name WHERE column_name1=’Valor1’
Consultar tabla con varias columnas filtradas
SELECT * FROM table_name WHERE column_name1=’Valor1’ AND
column_name2=’Valor2’ AND (column_nameN=’x’ OR column_nameN=’y’)

Se emplea instrucciones “query”, “num_rows” y “fetch_assoc”, donde:

- Instrucciones “query”: Hace la consulta respectiva de la instrucción de base de datos


- Instrucciones “num_rows”: Verifica si existen filas para devolver y mostrar en sitio web
- Instrucciones “fetch_assoc”: Pone el resultado de la consulta en un arreglo asociado

Luego, se requiere emplear sentencias repetitivas (for, while, etc.) para mostrar el contenido
de la base de datos. La consulta desde base de datos a sitio web puede generarse mediante
dos formas:

- Forma Procedimental:
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Perform queries
//mysqli_query($con,"SELECT * FROM MyGuests ");

$sql = "SELECT id, firstname, lastname FROM MyGuests";


$result = mysqli_query($con, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}

mysqli_close($con);
?>

- Orientado a objetos:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

//consulta query
$sql = "SELECT firstname, lastname, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table border=1><tr><th>Nombre</th>";
echo "<th>Apellido</th><th>Correo</th></tr>";
// salida de datos de cada fila
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["firstname"]."</td>";
echo "<td>".$row["lastname"]."</td>";
echo "<td>".$row["email"]."</td></tr>";
}
echo "</table>";
}

$conn->close();
?>
3. Operaciones de control de datos
Cuando existen tablas de base de datos, la información es almacenada en forma de tablas,
desde el sitio web también puede controlar operaciones para manipular la información
almacenada, siendo las más conocidas:

Insertar datos a una tabla


Se encarga de añadir un nuevo registro hacia una tabla, el nuevo registro se añade en una
nueva fila.

Sintaxis:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (valor_numerico, ‘valor_caracter’, ‘valor_fecha’,...)

Actualizar datos desde un sitio


Se encarga de actualizar datos desde la perspectiva de columna de una tablas, siendo
recomendable indicar que registro de fila de tabla de va a realizar la modificación.

Sintaxis:
UPDATE table_name SET column1= valor_numerico, column2=‘valor_caracter’,... WHERE columna=valor

Borrar datos desde una tabla:


Se encarga de borrar un registro de una o varias filas de una tabla

Sintaxis:
DELETE FROM table_name WHERE columna = valor
4. Insertar datos desde sitio web
- Orientado a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {


echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

- Forma procedimental
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)


VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>
5. Actualizar datos desde un sitio web
- Orientado a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

if ($conn->query($sql) === TRUE) {


echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}

$conn->close();
?>

- Forma procedimental
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

if (mysqli_query($conn, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>
6. Borrar datos desde una tabla
- Orientado a objetos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

// sql to delete a record


$sql = "DELETE FROM MyGuests WHERE id=3";

if ($conn->query($sql) === TRUE) {


echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}

$conn->close();
?>

- Forma procedimental
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}

// sql to delete a record


$sql = "DELETE FROM MyGuests WHERE id=3";

if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>
7. Manejo de excepciones PDO (try … catch…)
Permite manejar cualquier tipo de errores que podrían ocurrir durante la ejecucion de un
programa y pudieran afectar a la base de datos.

Conexión a base de datos


<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>

Consulta desde una base de datos


<?php
echo "<table style='border: solid 1px black;'>";
echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator {


function __construct($it) {
parent::__construct($it, self::LEAVES_ONLY);
}

function current() {
return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";
}

function beginChildren() {
echo "<tr>";
}

function endChildren() {
echo "</tr>" . "\n";
}
}

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
$stmt->execute();

// set the resulting array to associative


$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {
echo $v;
}
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>
Insertar a base de datos
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
// use exec() because no results are returned
$conn->exec($sql);
echo "New record created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>

Actualizar a base de datos


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";
// Prepare statement
$stmt = $conn->prepare($sql);
// execute the query
$stmt->execute();
// echo a message to say the UPDATE succeeded
echo $stmt->rowCount() . " records UPDATED successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>

Eliminar a base de datos


<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";
// use exec() because no results are returned
$conn->exec($sql);
echo "Record deleted successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
8. Formularios
Los formularios permiten a los usuarios, quienes se encargan de manipular el sistema web, en
enviar información al servidor o a la base de datos, poseyendo la siguiente estructura:

- Etiqueta de inicio y cierre: Como cualquier etiqueta en HTML, debe de ser apertura do
y cerrado, en esta sección realiza tareas como indicar hacia va a enviar la información y
de qué forma enviara la información
Sintaxis:
<FORM ACTION=mailto:email METHOD="POST" ENCTYPE = "TEXT/PLAIN"> … </FORM>
Donde:
- ACTION: Indica que acción deberá de tomar, como enviar a correo, ejecutar algun servicio del servidor o
enviar información a un sitio web respectivo.
- METHOD: (Valores: “GET” o “POST”) Indica que los datos sean enviados inmediatamente hacia un lugar
establecido, mostrando públicamente (GET) o no (POST) los parámetros con valores a enviar
- ENCTYPE: Expecifica como los datos deben de ser codificados
o text/plain : Las respuestas se leen como archivos de texto legibles y sin codificar, los espacios
entre cada respuesta son separados con el operador “+”
o multipart/form-data: Ningun carácter es codificado, empleado cuando se va a enviar una imagen
o archivo
o application/x-www-form-urlencoded: Viene por defecto, todos los caracteres son codificados

Cuerpo de formulario
Son los distintos objetos que se tendrá a disposición para poder enviar o recibir datos,
siendo los más resaltantes:

o <input> :
 type="text": Introduce contenido de texto de hasta 20 caracteres por
defecto para enviar
 type=" file": Permite buscar archivos, imágenes, etc.
 type="checkbox": Confirmar una o varias opciones determinadas
 type="radio": Elegir una opción entre varias
 type="password": Introduce contenido de texto oculto, usado
normalmente para introducir contraseñas
 type="button": Introduce botones al formulario, siendo necesarios
para enviar informacion o llamar a alguna funcion
 type="reset": Elimina toda informacion ingresada en el formulario
 type="image ": Define una imagen como un botón de envio de datos
 type=" hidden": Permite emplear valores no visibles que se enviaran
junto con los datos del formulario
 type="submit": Enviar todo el contenido de informacion
o <textarea>: Introduce contenido de texto de gran longitud para enviar
o <button>: Permite definir más propiedades de un boton
o <select>: Es una lista desplegable, el cual se debe de seleccionar el valor a
enviar, cada opción esta representado por la etiqueta <option>, si se requiere
agrupar las opciones, se emplea <optgroup> para separar por secciones el
menú desplegable
o <fieldset>: Permite agrupar elementos de un formulario
o <label> : Permite etiquetar valores, provenientes desde base de datos o
simples caracteres de texto.
Etiquetas Input:
<form action="/action_page.php">
Username: <input type="text" name="usrname"><br>
Select a file: <input type="file" name="myFile"><br>
<input type="checkbox" name="vehicle1" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle2" value="Car"> I have a car<br>
<input type="checkbox" name="vehicle3" value="Boat" checked> I have a boat<br>
<input type="radio" name="gender" value="male"> Male<br>
<input type="radio" name="gender" value="female"> Female<br>
<input type="radio" name="gender" value="other"> Other <br>
<input type="password" name="pwd"> <br>
<input type="button" value="Click me" onclick="submit()"> <br>
<input type="reset"> <br>
<input type="image" src="img_submit.gif" alt="Submit"> <br>
<input type="hidden" id="custId" name="custId" value="3487"><br>
<input type="submit" value="Submit">
</form>

Areas de Texto:
<textarea rows="4" cols="50">
Se muestra una lista enorme de caracteres, asi como comentarios.
</textarea>

Botones:
<form action="/action_page.php" method="get">
Choose your favorite subject:
<button name="subject" type="submit" value="HTML">HTML</button>
<button name="subject" type="submit" value="CSS">CSS</button>
</form>
<form action="/action_page.php" method="get">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<button type="submit" value="Submit">Submit</button>
<button type="reset" value="Reset">Reset</button>
</form>
<button type="button" disabled>Este boton esta deshabilitado</button>

Selección
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi" selected>Audi</option>
</select>
<select>
<optgroup label="Swedish Cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
</optgroup>
<optgroup label="German Cars">
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</optgroup>
</select>
<select disabled>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
Pestañas de formulario:
<form>
<fieldset>
<legend>Personalia:</legend>
Name: <input type="text"><br>
Email: <input type="text"><br>
Date of birth: <input type="text">
</fieldset>
</form>

Etiquetas
<form action="/action_page.php">
<label for="male">Male</label>
<input type="radio" name="gender" id="male" value="male"><br>
<label for="female">Female</label>
<input type="radio" name="gender" id="female" value="female"><br>
<label for="other">Other</label>
<input type="radio" name="gender" id="other" value="other"><br><br>
<input type="submit" value="Submit">
</form>

9. Variables globales
Son variables integradas que siempre están disponibles en todos los ámbitos, estas variables
permiten capturar datos que fueron enviados desde otras fuentes.

 $GLOBALS
 $_SERVER
 $_REQUEST
 $_POST
 $_GET
 $_FILES
 $_ENV
 $_COOKIE
 $_SESSION

Variable PHP $GLOBALS


Se emplea para acceder a cualquier variable que se encuentre dentro del contenido de PHP
(incluyendo métodos y funciones).
<?php
$x = 75;
$y = 25;
function addition() {
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
Variable PHP $_SERVER
Se emplea para contener información de rutas, encabezados y ubicaciones dentro del
contenido PHP
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
echo "<br>";
$_SERVER["REMOTE_ADDR"];
?>
Donde:

$ _SERVER ['PHP_SELF'] Devuelve el nombre del archivo del script que se está
ejecutando actualmente
$ _SERVER ['GATEWAY_INTERFACE'] Devuelve la versión de la Interfaz de puerta de enlace
común (CGI) que usa el servidor
$ _SERVER ['SERVER_ADDR'] Devuelve la dirección IP del servidor host
$ _SERVER ['SERVER_NAME'] Devuelve el nombre del servidor host (como
www.w3schools.com)
$ _SERVER ['SERVER_SOFTWARE'] Devuelve la cadena de identificación del servidor (como
Apache / 2.2.24)
$ _SERVER ['SERVER_PROTOCOL'] Devuelve el nombre y la revisión del protocolo de
información (como HTTP / 1.1)
$ _SERVER ['REQUEST_METHOD'] Devuelve el método de solicitud utilizado para acceder a
la página (como POST)
$ _SERVER ['REQUEST_TIME'] Devuelve la marca de tiempo del inicio de la solicitud
(como 1377687496)
$ _SERVER ['QUERY_STRING'] Devuelve la cadena de consulta si se accede a la página a
través de una cadena de consulta
$ _SERVER ['HTTP_ACCEPT'] Devuelve el encabezado Aceptar de la solicitud actual
$ _SERVER ['HTTP_ACCEPT_CHARSET'] Devuelve el encabezado Accept_Charset de la solicitud
actual (como utf-8, ISO-8859-1)
$ _SERVER ['HTTP_HOST'] Devuelve el encabezado del Host de la solicitud actual
$ _SERVER ['HTTP_REFERER'] Devuelve la URL completa de la página desde la que se
llamó la página actual
$ _SERVER ['HTTPS'] Es el script consultado a través de un protocolo HTTP
seguro
$ _SERVER ['REMOTE_ADDR'] Devuelve la dirección IP desde donde el usuario está
viendo la página actual
$ _SERVER ['REMOTE_HOST'] Devuelve el nombre del Host desde donde el usuario
está viendo la página actual
$ _SERVER ['REMOTE_PORT'] Devuelve el puerto que se está utilizando en la máquina
del usuario para comunicarse con el servidor web
$ _SERVER ['SCRIPT_FILENAME'] Devuelve la ruta de acceso absoluta del script que se está
ejecutando actualmente
$ _SERVER ['SERVER_ADMIN'] Devuelve el valor otorgado a la directiva SERVER_ADMIN
en el archivo de configuración del servidor web, por
ejemplo: someone@w3schools.com
$ _SERVER ['SERVER_PORT'] Devuelve el puerto en la máquina del servidor que está
utilizando el servidor web para la comunicación (como
80)
$ _SERVER ['SERVER_SIGNATURE'] Devuelve la versión del servidor y el nombre del host
virtual que se agregan a las páginas generadas por el
servidor
$ _SERVER ['PATH_TRANSLATED'] Devuelve la ruta basada en el sistema de archivos al
script actual
$ _SERVER ['SCRIPT_NAME'] Devuelve la ruta del script actual
$ _SERVER ['SCRIPT_URI'] Devuelve el URI de la página actual

Variable PHP $_REQUEST


Es empleado para capturar información después de que haya sido enviado desde un
formulario.
<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">


Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_REQUEST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

Variable PHP $_POST


Se usa para recopilar datos de formularios después de enviar un formulario HTML con method
"post", también se emplea para pasar variables.
<html>
<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">


Name: <input type="text" name="fname">
<input type="submit">
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// collect value of input field
$name = $_POST['fname'];
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>

</body>
</html>

Variable PHP $_GET


Tambien se usa para recopilar información de datos de formularios después de enviar un
formulario HTML con method "get". También puede recopilar datos enviados en la URL a
travez de hipervínculos.

Tenemos un sistema con hipervínculo:


<html>
<body>

<a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>

</body>
</html>
Una vez seleccionado el hipervínculo al sitio web (test_get.php), recibirá los datos inicados en
el mismo hipervínculo
<html>
<body>

<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>

</body>
</html>

Variable PHP $_FILES


Nos permite capturar o verificar que un archivo de texto a sido enviado satisfactoriamente.

Primero, en php.ini, se verifica si se tiene permisos para guardar archivos:

file_uploads = On

Segundo, en un formulario html, se introduce un formulario donde se especifica que va a subir


un archivo, se requiere que el método de formulario sea “post”, y enctype sea
"multipart/form-data":
<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">


Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>

</body>
</html>

Tercero, en el archivo a enviar, se debe de especificar:

 $ target_dir = "uploads /": especifica el directorio donde se colocará el archivo


 $ target_file: especifica la ruta del archivo a cargar
 $ imageFileType: contiene la extensión de archivo del archivo (en minúsculas)
 file_exists($target_file): Verifica si el archivo ya existe
 $_FILES["fileToUpload"]["size"] > 500000 : Verifica si el tamaño del archivo no supere
los 500KB
 $imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" : Verifica si los archivos de imagen son jpg,png,jpeg o gif
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>

Variable PHP $_ENV


Es una variable encargada de devolver un grupo de variables o arreglos asociados al servidor
web, mientras dure la sesión o ejecución del sistema (útil en formulario de login, resultados de
consulta visibles en cualquier sitio web visitado, etc.)
$_ENV["username"]="new_variable";
echo "my username is ".$_ENV['username'];

Variable PHP $_COOKIE


Permite pasar a sitios web cookies http, permitiendo guardar informacion en la computadora

- Creando o retribuir cookies


<?php
$cookie_name = "user";
$cookie_value = "John Doe";
//El cookie va a expirer luego de 30 dias (86400 * 30)
// La “/” simboliza que el cokkie estará disponible en el sitio web
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
//Se emplea la function isset() para determiner si el cookie sigue activo
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

- Actualizar cookies
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
//la function setcookie() modifica el cookie, debe de estar antes de la etiqueta <html>
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>

- Borrar cookies
<?php
// la function setcookie tambien sirve para establecer fecha de expiración a una hora atras
setcookie("user", "", time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>

- Verificar si cookies estan habilitados


<?php
setcookie("test_cookie", "test", time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {
echo "Cookies are enabled.";
} else {
echo "Cookies are disabled.";
}
?>

</body>
</html>

Variable PHP $_SESSION


Una sesión es una forma de almacenar información (en variables) que se utilizará en varias
páginas. A diferencia de una cookie, la información no se almacena en la computadora de los
usuarios.

- Iniciar sesión: Solo se encargara de generar los valores a enviar


demo_session1.php
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

</body>
</html>

- Obtener valores de sesión

demo_session2.php
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Muestra variable de session que se mostro en la pagina anterior
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
// Otra forma de mostrar la variable de sesión:
print_r($_SESSION);
?>

</body>
</html>

- Modificar una variable de session


<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>

</body>
</html>
- Eliminar y destruir una variable de session
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Eliminar todas las variables de sesion
session_unset();

// Destruye la sesion
session_destroy();
?>

</body>
</html>

You might also like