Buscar este blog

miércoles, 23 de octubre de 2013

FUNCIONES BÁSICAS PHP.

Comprobar variables
isset — Determina si una variable está definida y no es NULL
if (isset($_POST['nombre']))

Selección simple

<select name="seleccion_simple">
            <option value="primera_ok">primera opción</option>
            <option value="segunda_ok" selected="selected">segunda opción</option>
            <option value="tercera_ok">tercera opción</option>
   </select></td>

<!-- el valor value es el valor real q se pasa al insertarOk.php mediante el name y método POST o GET si no se pone se recogería el q va dentro del option-->
<!-- el valor q va entre los option es el nombre q se imprime (las opciones q salen en el desplegable)-->

Cuadro de texto
<td>Texto:</td>
        <td><input type="text" name="texto" /></td>
<!-- el valor del value es el valor real q se imprime por defecto al abrir el formulario si no se pone sale en blanco-->

Combobox

<td>Departamento:</td>
<td>
<select name="eCodDpto"> <!-- este es el valor que toma el php para el metodo $_POST -->
    <?php
   
    //Preparación y ejecución de la consulta
    $consulta = "SELECT * FROM Departamentos";
    $resultado = mysql_query($consulta);
   
       
    //Recorrido del cursor de fila en fila
    while ($fila = mysql_fetch_array($resultado))
    {   
    ?>           
               
<option value="<?php echo $fila['CodDpto']; ?>"><?php echo $fila['Descripcion'];?></option>
<!-- el valor value es el valor real q se pasa al insertarOk.php mediante el name y método POST o GET si no se pone se recogería el q va dentro del option-->
<!-- el valor q va entre los option es el nombre q se imprime (las opciones q salen en el desplegable)-->               
               
    <?php
    }
    ?>       
</select>
               
</td>

Redirecciones
Redirección simple
Para redireccionar al visitante hacia otra página (especialmente útil en un bucle condicional), sólo hay que utilizar el código siguiente:
<?php
header('Location: mipagina.php');
?>

Donde mipagina representa la dirección de la página hacia la que se quiere redireccionar. Esta dirección puede ser absoluta y puede tener parámetros de la forma mipagina.php?param1=val1&m2=val2).
Ruta relativa/absoluta
Teóricamente, es mejor preferir una ruta absoluta desde la raíz del servidor (DOCUMENT_ROOT), de la forma siguiente:
<?php
header('Location: /repertoire/mapage.php');
?>

Si la página de destino estuviera en otro servidor, entonces indicar la URL completa, de la forma siguiente:
<?php
header('Location: http://www.commentcamarche.net/forum/');
?>

FORMULARIOS:

Paso de variables por GET POST o URL

1) Creamos el formulario con todos los campos:
    .- El atributo 'name' es la clave de cada campo del formulario   
    .- Al atributo 'method' del <form> le damos el valor 'post'
    .- En el atributo 'action' del <form> definimos la página que va a procesar los datos (destino.php)
    .- Los datos se sacan de la información introducida en el formulario
4) destino.php obtiene los datos pasados para su posterior proceso mediante $_POST['nombre_campo_form']
    .- destino.php utiliza esos datos para realizar otra instrucción SQL, para hacer un cálculo, etc...


URL:

1) Pasamos los datos a través de la URL (destino.php?var1=valor1&var2=valor2)
2) En la página origen, los datos se pueden sacar:
    .- Mediante una consulta SQL:
        $rs = mysql_query("SELECT * FROM tabla);
        $row = mysql_fetch_array($rs);
        $valor = $row['campo_bd'];
    .- Mediante variables definidas en la propia página
    .- Mediante sesiones
    .- etc, ...
3) destino.php obtiene los datos pasados para su posterior proceso mediante $_GET['nombre_variable']
    .- destino.php utiliza esos datos para realizar otra instrucción SQL, para hacer un cálculo, etc...

RECOGER DATOS DE UN FORMULARIO

Este tipo de transferencia es de gran utilidad ya que nos permite interaccionar directamente con el usuario.
Primeramente, presentamos una primera página con el formulario clásico a rellenar y las variables son recogidas en una segunda página que las procesa:
Dependiendo de su configuración y preferencias personales, existen muchas maneras de acceder a los datos de formularios HTML. Algunos ejemplos:
$nombre = $_POST['nombre'];

$nombre = $_GET['nombre'];

$nombre = $_REQUEST['nombre']; Recoge el valor tanto si se ha pasado por método POST como por método GET.

Lo habitual es usar el método POST debido a una razón que comentaremos a continuación. Los formularios en cuestión se definen de la siguiente forma:
<form action=”url” method=”post”>…</form> || <form action=”url” method=”get”>…</form>
Con el parámetro method, estamos indicando la forma en la que se enviarán las variables del formulario.
Si tomamos como elección GET, todas las variables se enviarán por la dirección html. Me explico, cuando recarguemos la página web al haber enviado el formulario, saldrá algo así:
http://www.dominio.com/index.php?nombre=Un_nombre&tipo=2&#8230;
Es decir, ¡las variables aparecen en la barra de direcciones! Esto, para envío de formularios, no es lo normal pues estamos mostrando todos los datos del envío y pueden ser muchísima información, alguna incluso, confidencial que el usuario no debe enterarse. Es por ello por lo que, cuando tratamos con formularios, usamos el método POST.
Este método consiste, básicamente en enviar las variables de forma “oculta” para que nadie pueda ver los datos que ha enviado al pulsar el botón de envío de formulario.
La segunda forma de enviar las variables es a través de enlaces.  Aquí, lo que se hace es enviar las variables mediante el método GET. Más que nada porque cuando escribimos el enlace ya le estamos pasando las variables por la línea de dirección:
<a href=”index.php?estilo=4&tipo=2″ mce_href=”index.php?estilo=4&tipo=2″>Recargar</a>
En este caso, las variables PHP estilo y tipo, se envían usando el método GET. Cuando uno pinche en la palabra recargar, accederá justamente a la dirección marcada y las dos variables aparecerán en la barra de direcciones.
En resumen
Con formularios: En este caso, lo normal es usar el método POST.
Con enlaces: Se usará el método GET.

POR EL METODO POST
La página del formulario, que hemos llamado edad.php tendría esta forma:
<html>
<head>
  <title>Restringir por edad</title>
</head>

<body>

<form action="edad2.php" method="post">
Escribe tu edad: <input type="text" name="edad" size="2">
<input type="submit" value="Entrar">
</form>

</body>
</html>
Esta es una página sin ningún código PHP, simplemente tiene un formulario. Fijémonos en el action del formulario, que está dirigido hacia una página llamada edad2.php, que es la que recibirá el dato de la edad y mostrará un contenido u otro dependiendo de ese valor. Su código es el siguiente:
<html>
<head>
   <title>Restringir por edad</title>
</head>

<body>

<?
$edad = $_POST["edad"];
echo "Tu edad: $edad<p>";

if ($edad < 18) {
   echo "No puedes entrar";
}else{
   echo "Bienvenido";
}
?>
</body>
</html>
Nota: Simplemente se recibe la edad, utilizando el array $_POST. Luego se muestra la edad y se ejecuta una expresión condicional en función de que la edad sea menor que 18. En caso positivo (edad menor que 18), se muestra un mensaje que informa de que no se deja acceder al página. En caso negativo (mayor o igual a 18) se muestra un mensaje de bienvenida.

PASAR DATOS

Pasar Dato desde un form

<input type="text" name="nombre" value="<?php echo $row['nombre']; ?>">


Pasar Dato Oculto desde un form

<input type="hidden" name="id_curso" value="<?php echo $row['id']; ?>">

Pasar dato mediante URL

<a href="detalle_curso.php?id=<?php echo $row['id']; ?>">

LISTAR DATOS dentro de un form p.e para hacer un listado

<?php
conectarBD();

$sql = SELECT * FROM cursos

$rs = mysql_query($sql, $GLOBALS['conexion']);

while($row = mysql_fetch_array($rs))
{
?>
 <td class="txt">
        <?php echo $row['nombre']; ?>
</td>


MOSTRAR DATOS en combobox, cuadro de texto, checBox (previamente un Select para mostrar los datos) p.e para editar un cliente

SELECT nombre, presencial, familia FROM cursos WHERE id_curso= .  $id_curso;


Nombre

<input name="nombre" value="<?php echo $row['nombre']; ?>" type="text" class="campofichero" maxlength="50">


Presencial

   <input id="presencial" name="presencial" type="checkbox"
                <?php  if ((int)$row['presencial'] != 0) echo " checked='true'"; ?>
                >


Familia

<select id="fk_familia" name="fk_familia" class="camponormal">
                                               
<?php
   while($row_familia = mysql_fetch_array($res_familia))
      {
?>

<option value="<?php echo $row_familia['id']; ?>"
<?php  if ($row['fk_familia'] == $row_familia['id']) echo "selected"; ?> >
<?php echo $row_familia['nombre']; ?>
</option>
   // para saber cual es la familia q esta selecionada se comprueba el fk_familia de la select general con la select de familias            
      <?
       }
       ?>
</select>


Fecha inicio

<input name="fecha_inicio" value="<?php echo $row['fecha_inicio']; ?>" type="date" class="campocorto" >


Descripción

<input textarea name="descripcion" value="<?php echo $row['descripcion']; ?>" class="campodescripcion1">


RECOGER DATOS de un form p.e para luego hacer un insert, update, listado…


Cuadro de Texto

$nombre = $_POST['nombre'];

CheckBox

if ($_POST['presencial'] == "on")
    $presencial = "1";
else
    $presencial = "0";

ComboBox

$fk_familia = $_POST['fk_familia'];

Cuadro de texto Fecha

$fecha_inicio = $_POST['fecha_inicio'];

// Hay q crear un función fecha pq al leer de Mysql el formato q devuelve es año/mes/día


Cuadro de texto textarea

$descripcion = $_POST['descripcion'];

No hay comentarios:

Publicar un comentario