Aplicaciones

Sintaxis básica en PHP

Copie este código en un archivo php en blanco. Aquí no se verá muy claro, pero Dreamweaver (también Notepad++) pone diferentes colores al código haciéndolo mucho comprensible.

<html>
<head>
<title>Sintaxis b&aacute;sica en PHP</title>
</head>
<body>
Texto en HTML común y corriente<br>
Lo que sigue es HTML dentro de PHP:
<br>
<?PHP
$curso = "PHP con MySQL"; //definicion de variable de texto
$lugar = "CNC";
$horas_diarias = 3.5; // definición de una variable numérica
$semanas = 16;
echo "Esto sale en pantalla<br>"; // Salida en pantalla y un salto de línea
$total=$horas_diarias * $semanas; // una operación matemática, la multiplicación
echo "Estoy estudiando " . $curso . " en " . $lugar."<br>\n"; //intercalar variables, texto y HTML
echo "El curso dura " . $total . " horas "; //intercalar variables numéricas y texto, es lo mismo!!
/*
Nótese que se dejan espacios antes y después de las comillas, esto es para que
las variables no salgan pegadas al texto pues esto dificultaría su
lectura aunque no afecta el funcionamiento del script.
Al poner \n PHP envia una salto de línea en al código fuente. Este se llama
"caracter de escape"
*/
?>
<br>
Lo que sigue es PHP dento de HTML, en este caso una tabla:
<table border="1">
<tr>
<td>Curso</td>
<td><?PHP echo $curso; ?></td>
</tr>
<tr>
<td>Duraci&oacute;n</td>
<td><?PHP echo $total; ?> horas </td>
</tr>
<tr>
<td>Lugar</td>
<td><?PHP echo $lugar; ?></td>
</tr>
</table>
</body>
</html>

Deberá tener una salida en pantalla así:

Texto en HTML común y corriente
Lo que sigue es HTML dentro de PHP:
Esto sale en pantalla
Estoy estudiando PHP con MySQL en CNC
El curso dura 56 horas
Lo que sigue es PHP dento de HTML, en este caso una tabla:

Curso PHP con MySQL
Duración 56 horas
Lugar CNC

Y el código fuente se verá así, note que no hay "ni rastro" de PHP - excepto por lo que dice el texto :)

<html>
<head>
<title>Sintaxis b&aacute;sica en PHP</title>
</head>
<body>
Texto en HTML común y corriente<br>
Lo que sigue es HTML dentro de PHP:
<br>
Esto sale en pantalla<br>Estoy estudiando PHP con MySQL en CNC<br>
El curso dura 56 horas <br>
Lo que sigue es PHP dento de HTML, en este caso una tabla:
<table border="1">
<tr>
<td>Curso</td>
<td>PHP con MySQL</td>
</tr>
<tr>
<td>Duraci&oacute;n</td>
<td>56 horas </td>
</tr>
<tr>
<td>Lugar</td>
<td>CNC</td>
</tr>
</table>
</body>
</html>

Archivos floristería

Archivos los Simpson

Muestra los Simpson terminado

Matrices con PHP

Definir matrices indexadas en PHP

Indicando sus elementos e índices

<?PHP
$i [0] = "San José";
$i [1] = "Limón";
$i [2] = "Cartago";
$i [3] = "Guanacaste";
echo $i[2] ;
?>

Salida en pantalla:

Cartago

Indicando sus elementos, PHP numerará desde 0

<?PHP
$i [] = "San José";
$i [] = "Limón";
$i [] = "Cartago";
$i [] = "Guanacaste";
echo $i[2] ;
?>

Salida en pantalla:

Cartago

Indicando sus elementos e índice inicial

<?PHP
$i [1] = "San José";
$i [] = "Limón";
$i [] = "Cartago";
$i [] = "Guanacaste";
echo $i[2] ;
?>

Salida en pantalla:

Limón

Con "array"; se usa => para la asignación de cada elemento que es separado por comas

<?PHP
$i= array(0 => "San José", 1=> "Limón", 2 => "Cartago", 3 => "Guanacaste");
echo $i[2] ;
?>

Salida en pantalla:

Cartago

Con esta sintaxis también se pueden omitir o modificar los índices

<?PHP
$i= array("San José", "Limón", "Cartago", "Guanacaste");
echo $i[2] ;
?>

Definir matrices asociativas en PHP

Utiliza cadenas como índices:

<?PHP
$i ["San José"] = "Costa Rica";
$i ["Caracas"] = "Venezuela";
$i ["Lima"] = "Perú";
$i ["Bogotá"] = "Colombia";
echo $i["Lima"];
?>

En pantalla:

Perú

También se puede utilizar array:

<?PHP
$i= array("San José" => "Costa Rica", "Caracas" => "Venezuela", "Lima" => "Perú", "Bogotá" => "Colombia");
echo $i["Lima"];
?>

La salida en pantalla será la misma

Comportamiento de las variables

Menú dinámico con matrices

Frases, leer un archivo como matriz

Ejemplo pedidos

Limpiar datos en formulario

 

Práctica lección 7

Guia para estas prácticas

Archivos sitio de práctica Cocoliso - Muestra sistio Cocoliso terminado - Archivos práctica 2

Archivos "Preferencia de color por cookies"

"idioma con cookies" ejemplo terminado archivos para práctica idioma_por_cookies.zip

 

Cookies

Detectar cookies desactivadas

<?PHP
	$yo = $_SERVER['PHP_SELF'];
	setcookie("test", "activado");
	$revisar=$_GET[prueba];
	if ($revisar!="si"){
		header("Location:".$yo."?prueba=si"); 
		}
	$a=$_COOKIE['test'];
	if (!isset($a)){
		$mensaje = "Parece que tiene desactivadas la cookies en su navegador<br>";
		}else{
		$mensaje = "Cookie leida, continúa el script <br>";
		echo "valor = ".  $a;
		}
	?>
	<html>
	<head>
	<title>Estado de cookies</title>
	</head>
	<body>
	<?PHP
		echo htmlentities($mensaje); 
	?>
</body>
</html>
		

Sesiones

Carrito simple

Sesiones sin cookies

<?PHP
session_start();
$yo = $_SERVER['PHP_SELF'];
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sesiones sin cookies</title>
</head>
<body>
<?PHP
echo "Se creo la session ". session_id();
?>
<p><a href="<?PHP echo $yo; ?>">Recargar </a></p>
<p><a href="<?PHP echo $yo."?".SID; ?>">Recargar pasando SID por GET </a> </p>
</body>
</html>

 

Correos con PHP

Sintaxis general para envío de correos

<?PHP
$destino= "Nombre destinatario <nombre@dominio.com>"; //destinatarios separados por comas
$asunto="Mensaje enviado con PHP";
$mensaje="<br>Texto y código HTML";
$encabezado ="MIME-Version: 1.0" . "\r\n";
$encabezado.= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
// Cabeceras opcionales
$encabezado.= "From: Juanito . <juanito@sudominio.com>" . "\r\n"; // Remitente
$encabezado.= 'Cc: alguien@dominio.com' . "\r\n"; // Copia
$encabezado.= "Bcc: cursos@racsa.co.cr" . "\r\n"; // Copia oculta
$enviar = mail($destino,$asunto,$mensaje,$encabezado);
if(enviar){
$mensaje="Le hemos enviado un correo";
}else{
$mensaje="Ocurrió un error al enviarle correo";
}
?>
<html>
<head>
<title>Env&iacute;o de correo</title>
</head>
<body>
<?PHP
echo htmlentities ($mensaje) ;
?>
</body>
</html>

Intentando validar direcciones

La función getmxrr con algunos dominios podría dar FALSE aun cuando el servidor de correo exista

<?PHP

function valida($v,$largo){
		if (strlen($v)<=$largo){
			$res=0;
		}else{
			$res=1;
		}
	return $res;
}

function valida_mail($x,$suave) {
	if($suave  && strlen($x)>4){
		 return 1;	
		 break ;
		}
	$parte=explode("@",$x);
	$user=$parte[0];
	$dom=$parte[1];
		if(count($parte)!=2){return 0;} 
		if (!valida($user,3 )){return 0;}
		if (!valida($dom,5 )){return 0;}
		if(!ereg("([a-z]|[A-Z]|[0-9]|-|\.){".strlen($dom)."}",$dom) || !strlen($dom)){
			return 0;	}		
		if(!ereg("([a-z]|[A-Z]|[0-9]|-|_){".strlen($user)."}",$user) || !strlen($user)){
		return 0;	}
		if($duro==1){		
			$e=getmxrr($dom,$r);
				if(!$e){
						return 0;
					 }
		}
	return 1;
}
?>

Con esto simplemente se comprueba el dominio:

<?php
extract($_POST);
while(str_replace(" ","",$dom)!=$dom){
$dom=str_replace(" ","",$dom);
}
$ip = gethostbyname($dom);
$men ='El dominio ' .$dom . ' tiene la IP ' . $ip;
$dom_ip= @gethostbyaddr($ip);
if($dom_ip){
$men2 = 'El host es ' . $dom_ip;
}else{
$men2 = 'Parece que no existe el dominio ' . $dom ;
}
?>
<html>
<head>
<title>Probar dominio</title>
</head>
<body>
<form method="post">
<input name="dom" type="text">
<input type="submit" name="Submit" value="Enviar">
</form>
<?php
echo $men;
echo "<hr>";
echo $men2;
?>
</body>
</html>

PDF (Clases)

MySQL

Funcion genérica para crear una tabla con cualquier SELECT, sirve como herramienta de depuración

<?PHP
function ver_tabla($con,$pega,$ver=0,$largo=100){
/*
$con= consulta
$pega= identificador de conexión
$ver= mostrar el contenido de la consulta
$largo=carateres en la columna
*/
$tabla=" <!--Generado con el script ver_tabla.Consulta:\n". $con."\n -->\n ";
if($ver){$tabla.="<pre>".$con."</pre>";}
$res=mysql_query($con,$pega);
if(! ($t_c=@mysql_num_fields($res)) )
{
return 'Error, no retornaron campos de la consulta:
<br><b><pre>' .$con .'</pre><hr>
Error #
<a href="http://www.google.com/search?q='
.urlencode('.MySQL error # '.mysql_errno($pega))
. '" target="_blank" >'.
mysql_errno($pega)
. '</a> MySQL dice: ' . mysql_error($pega) .' </b>' ;
}

;
$tabla.= mysql_num_rows($res). " registros\n" ;
$tabla.= "<table border=\"1\">\n<tr>";
for($x=0; $x<$t_c; $x++){
$t=mysql_field_name($res, $x);
$tabla.="\t<th title=\" ".$t." \" >".substr($t,0,$largo)."</th>\n";
}
$tabla.="</tr>\n";
while ($fila = mysql_fetch_array($res)){
$tabla.="\t<tr>\n";
for($x=0; $x<$t_c; $x++){
if(!($fila[$x]{0})){$fila[$x]="?";}
$tabla.="\t<td title=\" ".$fila[$x]." \" >"
.substr($fila[$x],0,$largo)
."</td>\n";
}
$tabla.="</tr>\n";
}
$tabla.="</table>";
return $tabla;
}
?>

 

 

Requisitos

Contenidos

Duración

Dirigido a

Modalidad

Aparte su cupo ahora

Quiero este curso

Otros cursos: Técnicos y niveles intermedios - avanzados

 

 

Derechos reservados CNC 2004 © •  Aviso legalColaboradores y sociosAcerca de

Calle 7 entre Avs. Central y Segunda, 75 mts al sur del Hotel Balmoral, 2º piso del café internet

cursos@racsa.co.cr • Tel (506) 22 21 - 01 16 — 22 58 - 42 11 — 22 58 - 70 58

Apartado Postal 8524 — 1000 San José, Costa Rica

¡CSS Válido!