PDF de programación - Más sobre PHP

Imágen de pdf Más sobre PHP

Más sobre PHPgráfica de visualizaciones

Publicado el 5 de Junio del 2017
1.593 visualizaciones desde el 5 de Junio del 2017
237,6 KB
19 paginas
Creado hace 18a (09/11/2005)
Más sobre PHP

Francisco José Naranjo Abad

Área de Ingeniería Telemática

Departamento de Automática y Computación

Universidad Pública de Navarra

[email protected]

Laboratorio de Interfaces de Redes

http://www.tlm.unavarra.es/asignaturas/lir

11/19/19

Programa de ejemplo (info.php)

info.php

<?php
session_start();
include("inicio.php");
?>

<html>
<head>
<title>T&iacute;tulo</title>
</head>
<body>

<?php
$server = "localhost";
$usuario = "lir_user";
$password = "lir_pass";

$link = mysql_connect($server, $usuario, $password);
mysql_select_db("lir_db", $link);
?>

<?php
$_SESSION['MiDato'] = "Esto quiero guardar";
?>

<form enctype="multipart/form-data" action="info2.php?parametro=valor" method="POST">
Nombre <input type="text" name="nombre" /><br /><br />
<input type="hidden" name="MAX_FILE_SIZE" value="300000" />
Enviar fichero: <input name="imagen" type="file" /><br />
<input type="submit" value="Enviar fichero" />
</form>

</body>

<?php
include("fin.php");
?>
9 Nov
9 Nov

<?php
mysql_close($link);
?>
Más sobre PHP
Más sobre PHP

22/19/19

Destino (info2.php)

info2.php

<?php
session_start();
include("inicio.php");
?>
<pre>
<?php
print "Server: ";
print_r($_SERVER);
print "Get: ";
print_r($_GET);
print "Post: ";
print_r($_POST);
print "Env: ";
print_r($_ENV);
print "Request: ";
print_r($_REQUEST);
print "Session: ";
print_r($_SESSION);
print "Files: ";
print_r($_FILES);
?>
</pre>
<?php
include("fin.php");
?>

Los nombres que son clave en el
array asociativo $_SESSION,
deben tener un nombre válido de
variable. Es decir, no pueden
empezar por número

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

33/19/19

$_SERVER

Server: Array
(
[HTTP_HOST] => localhost
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
[HTTP_ACCEPT] =>

text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

[HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip,deflate
[HTTP_ACCEPT_CHARSET] => ISO-8859-1,utf-8;q=0.7,*;q=0.7
[HTTP_KEEP_ALIVE] => 300
[HTTP_CONNECTION] => keep-alive
[HTTP_REFERER] => http://locahost/info.php
[HTTP_COOKIE] => PHPSESSID=26465da5723cccfacc1869072db5a8f7
[CONTENT_TYPE] => multipart/form-data; boundary=---------------------------8767276471703
[CONTENT_LENGTH] => 193310
[PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
[SERVER_SIGNATURE] => Apache/2.0.54 (Unix) DAV/2 PHP/4.4.0 Server at localhost Port 80
[SERVER_SOFTWARE] => Apache/2.0.54 (Unix) DAV/2 PHP/4.4.0
[SERVER_NAME] => localhost
[SERVER_ADDR] => 192.168.2.40
[SERVER_PORT] => 80
[REMOTE_ADDR] => 192.168.2.1
[DOCUMENT_ROOT] => /www
[SERVER_ADMIN] => [email protected]
[SCRIPT_FILENAME] => /www/info2.php
[REMOTE_PORT] => 4079
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] => parametro=valor
[REQUEST_URI] => /info2.php?parametro=valor
[SCRIPT_NAME] => /info2.php
[PHP_SELF] => /info2.php
[PATH_TRANSLATED] => /www/info2.php
[argv] => Array

( [0] => parametro=valor )

[argc] => 1
)

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

44/19/19

$_GET, $_POST, $_ENV

Get: Array
([parametro] => valor )

Post: Array
(
[nombre] => Plano del departamento
[MAX_FILE_SIZE] => 300000
)

Env: Array
(
[HZ] => 100
[TERM] => linux
[SHELL] => /bin/bash
[HUSHLOGIN] => FALSE
[USER] => root
[LD_LIBRARY_PATH] => /programas/apache2/lib:
[PATH] =>

[MAIL] => /var/mail/root
[PWD] => /programas/apache2
[LANG] => es_ES@euro
[HOME] => /root
[SHLVL] => 2
[LOGNAME] => root
[_] => /programas/apache2/bin/httpd
)
9 Nov
9 Nov

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X
11

Más sobre PHP
Más sobre PHP

55/19/19

$_REQUEST, $_SESSION, $FILES

Request: Array
(
[parametro] => valor
[nombre] => Plano del departamento
[MAX_FILE_SIZE] => 300000
[PHPSESSID] => 26465da5723cccfacc1869072db5a8f7
)

Session: Array
(
[MiDato] => Esto quiero guardar
)

Files: Array
(
[imagen] => Array

(
[name] => plano_departamento.gif
[type] => image/gif
[tmp_name] => /tmp/phpx1UEna
[error] => 0
[size] => 192884
)

)

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

66/19/19

Lectura sencilla de MySQL

<?php
session_start();
include(“inicio.php”);
?>
<html><head><title>Uso PHP, MySQL y HTML</title></head>
<body>
<table border=“0”>
<tr><td>ID</td><td>Usuario</td></tr>
<?php
$query = “SELECT * FROM Usuarios”;
$result = mysql_query($query, $link);
while($row = mysql_fetch_array($result))
{
print “<tr><td>”.$row[‘id’].”</td><td>”.$row[‘usuario’].”</td></tr>\n”;
}
?>
</table>
</body>
<?php
include(“fin.php”);
?>

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

77/19/19

Cómo NO hay que completar

valores

<select name=“year”>
<option value=“2005”> 2005 </option>
<option value=“2006”> 2006 </option>
<option value=“2007”> 2007 </option>
... etc ...
<option value=“2014”> 2014 </option>
</select>
</form>
</body>
</html>
<?php include(“fin.php”); ?>

<?php session_start();

include(“inicio.php”); ?>

<html>
<html>
<head>
<title>Ejemplo con selects</title>
</head>
<body>
<form method=“post” action=“info.php”>
<select name=“day”>
<option value=“1”>1</option>
<option value=“2”>2</option>
<option value=“3”>3</option>
... etc ...
<option value=“31”>31</option>
</select>
<select name=“month”>
<option value=“1”>Enero</option>
<option value=“2”>Febrero</option>
<option value=“3”>Marzo</option>
... etc ...
<option value=“12”>Diciembre</option>
</select>

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

88/19/19

Cómo SÍ hay que completar

valores

<?php session_start(); include(“inicio.php”); ?>
<html>
<html>
<head>
<title>Ejemplo con selects</title>
</head>
<body>
<form method=“post” action=“info.php”>
<select name=“day”>
<?php
$meses = array(“Enero”, “Febrero”, “Marzo”,...etc...,”Diciembre”);
for($i=1;$i<=31;$i++)
print “ <option value=\“$i\”>$i</option>\n”;
?>
</select>
<select name=“day”>
<?php
foreach($meses AS $clave => $actual)
print “ <option value=\“”.($clave+1).”\”>$actual</option>\n”;
?>
</select>
<select name=“year”>
<?php
$init_year = strftime(“%Y”);
$end_year = $init_year+10;
for($i=$init_year;$i<$end_year;$i++)
print “ <option value=\“$i\”>$i</option>\n”;
?>
</select>
</form>
</body>
</html>
<?php include(“fin.php”); ?>
9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

99/19/19

Cómo ayudarnos de MySQL

● MySQL también puede hacer operaciones, contar

filas, agrupar por elementos...

Compras

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

1010/19/19

Para ver todos los elementos vendidos (sin repetir)
SELECT DISTINCT(elemento) FROM Compras
SELECT elemento FROM Compras GROUP BY elemento

Ver el dinero gastado en cada compra
SELECT id_compra,SUM(valor) FROM Compras GROUP BY id_compra

Número de unidades vendidas de cada elemento
SELECT elemento,COUNT(*) FROM Compras GROUP BY elemento

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

1111/19/19

Mandar mails

● PHP puede utilizar el Mail Transport Agent (MTA)

del sistema para enviar e-mails

● Con la función mail()
bool mail ( string to, string subject, string message

[, string additional_headers [, string
additional_parameters]] )

● Ejemplo:
mail(“[email protected]”, “Datos del

programa”, “Los datos son:\n\n1\n2\n3\n\n y ya
está”, “From:[email protected]\r\n”

.”CC:[email protected]”);

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

1212/19/19

Variables

● Las variables son locales a su “scope”
● Si queremos que “traspasen” estos límites, usar global
● Este comportamiento no se cumple con las “superglobals”

puesto que existen en todo el script: $_GET, $_POST,
$_SERVER, $_SESSION, etc

● Ejemplo:

$a = “DatoA”;
$b = “DatoB”;
function hacer_algo($a)
{
global $b;
global $_GET[‘c’];

return $a.$b.$_GET[‘c’];
}

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

1313/19/19

Includes

Cuando se realiza un include() de un fichero:

● El código en él se ejecuta. Por ejemplo: primer

ejemplo de hoy

● Las funciones en él, no se ejecutan, sólo “se

definen”. Permiten su uso, pero no son ejecutadas
hasta que se llaman

Con las conexiones y demás elementos de patrón
“Singleton”, con require_once() o include_once

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

1414/19/19

Acceso al sistema y ficheros

● Podemos ejecutar comandos del sistema

system(“ls –al /etc/init.d”)

● Trabajar con ficheros y directorios

(http://es.php.net/manual/en/ref.dir.php)





$dir = "/etc/php5/";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir .
$file) . "\n";
}
closedir($dh);
}
}

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

1515/19/19

Clases y objetos

● Siempre que sea posible, usar clases y objetos

● Pese a que PHP4 realiza una implementación
“particular”, funciona y da buenos resultados

● La orientación a objetos siempre permite
escalabilidad y control sobre el programa

● Si no se usan objetos, por lo menos dividir el
programa en partes y trabajar con funciones e
includes

9 Nov
9 Nov

Más sobre PHP
Más sobre PHP

1616/19/19

Clases y objetos

class Vegetable {

var $edible;
var $color;

function Vegetable($edible, $color="green")
{
$this->edible = $edible;
$this->color = $color;
}

class Spinach extends Vegetable {
var $cooked = false;

function is_edible()
{
return $this->edible;
}

function what_color()
{
return $this->color;
}
}

9 Nov
9 Nov

function Spinach()
{
$this->Vegetable(true, "green");
}

function cook_it()
{
$this->cooked = true;
}

function is_cooked()
{
return $this->cooked;
}
Más sobre PHP
}
Más sobre PHP

1717/19/19

Lugares de referencia

Usar el manual... Todo está ahí

Manual de PHP
● http://www.php.net/manual
  • Links de descarga
http://lwp-l.com/pdf4202

Comentarios de: Más sobre PHP (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad