IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

PHP i HTTP

Variables reservades

Totes són variables superglobal o variables automàticament globals. Significa simplement que és una variable que està disponible a qualsevol part de l'script no val declarar-la com a:

global $variable

Variables predefinides relacionades amb HTTP:

Recursos:


$_GET

És recomanable utilitzar htmlspecialchars per evitar que ens puguin fer un page defacement, és a dir modificar el contingut de la pàgina HTML:

<?php
echo 'Hola ' . htmlspecialchars($_GET["nombre"]) . '!';
?>
Las variables GET son pasadas vía urldecode().

URLs

urldecode

Exemples

Crear, enviar i obtenir una petició POST

<?php

$datos_post = http_build_query(
    array(
        'var1' => 'contenido',
        'var2' => 'doh'
    )
);

$opciones = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $datos_post
    )
);

$contexto = stream_context_create($opciones);

$resultado = file_get_contents('http://example.com/submit.php', false, $contexto);

?>

Recursos:

Streams

http://

Resources:


Filtrat de dades

  • Filtratge
  • Validació
  • Sanitize

Recursos

Validació

filter_var:

<?php
$email_a = '[email protected]';
$email_b = 'bogus';

if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
    echo "Esta dirección de correo ($email_a) es válida.";
}
if (filter_var($email_b, FILTER_VALIDATE_EMAIL)) {
    echo "Esta dirección de correo ($email_b) es válida.";
}
?>

Només s'executarà el primer if.

Autenticació HTTP amb PHP

Autenticación HTTP con PHP ¶

Con la función header() se puede enviar un mensaje de "Autenticación requerida" al navegador del cliente para mostrar una ventana emergente donde introducir un usuario y una contraseña. Una vez introducidos estos datos, el URL que contiene el script de PHP será invocado de nuevo con las variables predefinidas PHP_AUTH_USER, PHP_AUTH_PW y AUTH_TYPE establecidas al nombre de usuario, contraseña y tipo de autenticación, respectivamente. Estas variables se encuentran en el array $_SERVER. Se admiten ambos métodos de autenticación, 'Basic' y 'Digest' (desde PHP 5.1.0). Véase la función header() para más información.

Un fragmento de un script de ejemplo que forzaría la autenticación en una página es el siguiente:

Ejemplo #1 Ejemplo de autenticación HTTP 'Basic'

Hola {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Introdujo {$_SERVER['PHP_AUTH_PW']} como su contraseña.</p>";
}
?>



Session

Cookies

setcookie

Recursos:

PHP i HTTPS

Forçar una pàgina amb https

if (!isset($_SERVER['HTTPS']) || !$_SERVER['HTTPS']) { // if request is not secure, redirect to secure url
    $url = 'https://' . $_SERVER['HTTP_HOST']
                      . $_SERVER['REQUEST_URI'];

    header('Location: ' . $url);
    exit;
}

Vegeu també

Enllaços externs