domingo, 13 de noviembre de 2011

Archivos, cookies y bases de datos en PHP

ARCHIVOS EN PHP
Vamos a ver un caso especial, como descargar un archivo desde un formulario. Para ello utilizaremos una etiqueta INPUT de tipo FILE, soportada a partir de las versiones de los navegadores Nestcape Navigato 2.0 e Internet Explorer 4.0.
El formulario debe usar el método post, y el atributo post, y el atributo enctype debe tener el valor multipart/form-data. Además al formulario debemos añadirle un campo oculto de nombre MAX_FILE_SIZE, al cuál le daremos el valor en byte del tamaño máximo del archivo a descargar.
<FORM ENCTYPE="multipart/form-data" ACTION="7-3.php3" METHOD="post">
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000"> 
<INPUT NAME="archivo" TYPE="file"> 
<INPUT TYPE="submit" VALUE="Descargar Archivo"> 
</FORM>
Cuando el formulario es enviado, PHP detectarará automaticamente que se está descargando un archivo y lo colocará en un directorio temporal en el servidor. Dicho directorio será que el que esté indicado en el archivo de configuración php3.ini, o en su defecto en el directorio temporal del sistema. 
Cuando PHP dectecta que se está descargando un archivo crea varias variables con el prefijo del nombre del archivo pero con distintas terminaciones. La variable terminada en _name contiene eligoenlinea">_name contiene el nombre original del archivo, la terminad en _size el tamaño en bytes de éste, y la variable terminada en _type nos indicará el tipo de archivo si éste es ofrecido por el navegador.
Si el proceso de descarga no ha sido correcto la variable archivo tomará el valor none y _size será 0, y si el proceso ha sido correcto, pero la variable teminada en _size da 0, quiere decir que el archivo a descarga supera el tamaño máximo indicado por MAX_FILE_SIZE.
Una vez descargado el archivo, lo primero que debemos hacer es moverlo a otro lugar, pues sino se hace nada con él, cuando acabe la ejecución de la página se borrará.
Posiblemente durante nuestra tarea de programación nos surJa la necesidad de obtener datos de un fichero, o bien, de crear uno. PHP nos provee de una extensa gama de funciones de acceso a ficheros.
         En este POST  sólo vamos a las funciones básicas, abrir (fopen), cerrar (fclose), leer (fgets) y escribir (fputs). Estas cuatro nos solventaran la mayoria de problemas  que nos surJan con respecto al acceso a ficheros.
         fopen (archivo, modo)
Con esta función abrimos un fichero, bien sea local o una dirección de internet (http:// o ftp://).
La función fopen nos devuelve un valor numérico (indicador de archivo) de tipo integer que nos servirará para hacer referencia al archivo abierto.
Con fopen podemos abrir un archivo de los siguientes modos:
         r    solo lectura
         r+  lectura y escritura
         w    solo escritura. Sino existe el archivo lo crea, si ya existe lo machaca.
         w+  lectura y escritura. Sino existe el archivo lo crea, si ya existe lo machaca.
         a    solo lectura. Sino existe el archivo lo crea, si ya existe empieza a escribir al final del archivo.
         a+  lectura y escritura. Sino existe el archivo lo crea, si ya existe empieza a escribir al final del archivo.
fgets (indicador_archivo, longitud)
La función fgets nos devuelve una cadena con la longitud especifica del fichero al que apunta el indicador de archivo.
<?PHP
//abre un archivo e imprime cada linea
$archivo = fopen("data.txt" , "r");
if ($archivo) {
while (!feof($archivo)) {
$linea = fgets($archivo, 255);
echo $linea;
}
}
fclose ($archivo);
?>
fgets (indicador_archivo, longitud)
La función fgets nos devuelve una cadena con la longitud especifica del fichero al que apunta el indicador de archivo.
<?PHP
//abre un archivo e imprime cada linea
$archivo = fopen("dlass="codigo">$archivo = fopen("data.txt" , "r");
if ($archivo) {
while (!feof($archivo)) {
$linea = fgets($archivo, 255);
echo $linea;
}
}
fclose ($archivo);
?>
La función feof devuelve TRUE si puntero de lectura/escritura se encuetra al final del fichero, y FALSE en caso contrario. 
fputs (indicador_archivo, cadena)
La función fputs escribe una cadena en el fichero indicado. Para escribir en una archivo éste debe haber sido previamente abierto. La función fputs devuelve TRUE si se ha escrito con éxito, en caso contrario devuelve FALSE.
<?PHP
//abre un archivo y escribe en él
$archivo = fopen("data.txt" , "w");
if ($archivo) {
fputs ($archivo, "Hola Mundo");
}
fclose ($archivo);
?>
?>

fclose (indicador_archivo)
Con esta función cerramos el fichero que nos marca el indicador de archivo, devuelve TRUE si el fichero se cierra correctamente y FALSE sino se ha podido cerrar. 
file_exists (fichero)
Esta función devuelve TRUE si el archivo especificado existe, y FALSE en caso contrario.
<?PHP
if (file_exists("data.txt")) {
echo "El fichero existe";
} else {
echo "El fichero NO existe";
}
?> 
copy (origen, destino)
La función copy copia un fichero de un lugar (origen) a otro (destino), devuelve TRUE si la copia a tenido éxito y FALSE en caso contrario.
<?PHP
if (copy("data.txt", "/tmp/data.txt")) {
echo "El fichero ha sido copiado con éxito";
} else {
echo  "El fichero NO se ha podido copiar";
}
?>
Archivo 1
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Title here!</title>
</head>
<body>
<?php
$f=fopen("contador.txt","a+");
$contador=fgets($f);
$contador=$contador+1;
fclose($f);
$g=fopen("contador.txt","w");
fwrite($g,"$contador");
fclose($g);
echo "Has entrado $contador veces";
?>
</body>
</html>
Archivo 2
<html>
<head>
 <title>Title here!</title>
</head>
<body>
<form action="Archivo2.php">
Introduce tus comentarios
<textarea name="comentario" rows=5 cols=30 wrap="off"></textarea>
<input type="submit" value="Enviar">
<input type="reset" value="Borrar">
</form>
<?php
if (isset($comentario)){
$f=fopen("comentarios.txt","a+");
    $fecha=date("d/M/Y H:i:s");
    fwrite($f,"Comentario enviado el $fecha: ");
    fwrite($f,$comentario);
    fclose($f);
    print "Su comentario ha quedado registrado , gracias";
}
?>
</body>
</html>
Archivo 3
<body>
<?php
$f=fopen("comas.txt","r");
while (!feof($f)){
$linea=fgets($f);
$numeros=explode(",",$linea);
echo"<table><tr>";
foreach ($numeros as $elementos){
echo"<td>$elementos</td>";}
echo "</tr>";
}
echo"</table>";
fclose($f);
?>



PHP y las cookies
¿QUÉ SON LAS COOKIES?
Las cookies son información que el servidor web envía al navegador web  y que el cliente almacena en su sistema local como ficheros de texto
La información almacenada en ese fichero puede ser recuperada por el servidor web cuando el usuario visita cualquier página del servidor.
Su principal objetivo es identificar al usuario para poder preparar páginas personalizadas
Son muy prácticas para almacenar cosas como el número de visitas, preferencias, estado de conexión, y en general información que sirva para realzar la navegación del cliente
Las cookies pueden ser usadas para simular una conexión continua
Gracias a ellas el usuario puede continuar la navegación por un sitio web en el último punto en que lo dejó su última conexión
No fueron creadas para “espiar” o invadir la privacidad de los usuarios de Internet
No tienen posibilidades de realizar acciones sobre el equipo del cliente
El usuario tiene la posibilidad de configurar su navegador para:
         No aceptar cookies
         Aceptar únicamente las cookies de determinados servidores
         Pregunta al usuario antes de generar el fichero local con la cookie
La cookie es enviada al navegador desde el servidor y si éste la acepta, se almacena en un fichero de texto local
Cada vez que el usuario visita una página del sitio web, el servidor solicita la cookie al navegador
El servidor recibe la cookie con información del usuario y puede preparar una página personalizada
Importante: Las cookies deben ser enviadas desde el servidor al cliente antes que ninguna otra información
Para crear una cookie se utiliza la función de PHP setcookie cuya sintaxis mínima es
Setcookie(nombre, valor)
La función anterior devuelve un valor booleano indicando si se produjo algún fallo en el proceso. Si devuelve un valor true no significa que el usuario aceptó la cookie
Si en la llamada a la función no se especifica ningún valor, lo que realmente se realiza es borrar la cookie indicada
setcookie (nombre)
Los protocolos  web establecen un número máximo de cookies que pueden ser enviadas de un mismo servidor a un mismo usuario (20 como máximo)
Para recuperar el valor de una cookie basta con utilizar una variable PHP con el nombre de la cookie
      $nombre
Ejemplo: Fecha y hora del último acceso
<?
setcookie("visita",date("d/m/Y \a \l\a\s H:i"),time()+30*24*3600);
?>
<HTML>
<HEAD>
<TITLE>
PÁGINA DE INICIO
</TITLE>
</HEAD>
<BODY>
<H1>
Bienvenido a nuestra página
</H1>
<?php
if (isset($visita))
echo "La última vez que nos visitaste fue $visita";
?>
</BODY>
<html> <head><title>Registro</title></head>
<body>
<h1>Registro como usuario</h1>
Introduzca su nombre:
<FORM ACTION ="COOKIE.PHP" METHOD ="GET">
<INPUT TYPE="TEXT" NAME="nombre"><BR>
<INPUT TYPE ="SUBMIT" VALUE="ENVIAR">
</FORM>
</BODY>
</HTML>
<?
if (isset($nombre))
setcookie("nomusuario",$nombre);
?>
<?
if (isset($nomusuario))
echo "$nomusuario, gracias por su visita";
else
echo "Por favor, regístrese";
?>
Ejemplo nº de visitas
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<?php
if (isset($nvis)){
    $nvis++;
setcookie("nvis",$nvis,time()+3600);}
else{
    setcookie("nvis",1,time()+3600);
    $nvis=1;
}
?>
Ejemplo limitador de número de visitas
<html>
<head>
       <title>Ya, ya</title>
</head>
<body>
<?php
if ($nvis>5){
    echo "Acceso no permitido";}
    else{
    echo "Número de visita ",$nvis;
}
?>
Ejemplo de recuerdo de última visita
</body>
</html>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<?php
$ahora=time();
setcookie("ultima",$ahora);
if (isset($ultima) and ($ahora-$ultima>5))
echo "Hace más de cinco segundos que no nos visitabas, mardito roedor";
?>
<html>
<head>
       <title>Fantabulosa segunda cookie</title>
</head>
<body>
<H1> Bienvenido a nuestra página</H1>
</body>
</html>
Cuando se crean las cookies con la sintaxis anterior, éstas estarán definidas únicamente durante la sesión (cuando el usuario cierra su navegador desaparecen)
Si queremos que la cookie permanezca en el equipo del usuario cuando éste cierre la sesión, deberá indicarse en su costrucción un parámetro adicional con un período de expiración
            setcookie (nombre, valor, expiración)
El parámetro de expiración se indica sumando a la función time() el número de segundos que se desea que permanezca la cookie en el equipo del usuario
Cookie con un período de expiración de 60 segundos
Setcookie(“cookie1”,”valor1”,time()+60
Una hora:
Setcookie(“cookie1”,”valor1”,time()+3600
30 días
Setcookie(“cookie1”,”valor1”,time()+30*24*3600
Para borrar una cookie que tiene establecido un valor con período de expiración, debe utilizarse la sintaxis:
Setcookie(“NombreCookie”,””,time());
En todo script PHP siempre se tiene acceso a una variable de tipo array global predefinida en la que están almacenadas todas las cookies recibidas del equipo del cliente
$http_cookie_vars:
<?
foreach($HTTP_COOKIE_VARS as $c){
echo "$c<br>";
}
while(list($n,$v)=each($HTTP_COOKIE_VARS)){
echo "$n=$<br>";
}
?>
Por defecto, si una cookie ha sido generada desde una página web su valor puede ser visto desde cualquier otra página del mismo directorio o subdirectorios en el que reside la página inicial
Si se desea modificar esa visibilidad se puede indicar la ruta concreta en el servidor web a partir de la cual la cookie es visible
Setcookie(“micookie”,”1”,timr()+60,”/sub/ Visible a partir del subdirectorio sub
Ejercicios:
Construir una página PHP que no permita acceder a ella desde el mismo ordenador más de cinco veces
Construir una página que muestre un mensaje “Bienvenido, hace mucho que no te vemos por aquí”, cuando acceda un usuario que haga más de diez días que no visitaba la página
BASES DE DATOS
Funciones PHP de acceso a MySQL
Para terminar, vamos a ver todas la funciones que provee PHP para el manejo de bases de datos MySQL. Los ejemplos del manejo de las funciones, los veremos a lo largo del curso. 
mysql_affected_rows
int mysql_affected_rows(int [link_identifier] );
mysql_affected_rows devuelve el número de filas afectado en el último SELECT, UPDATE o DELETE pregunta en el servidor asociado con el identificador de conexión especificado. Si no se e especifica un identificador de conexión, se asume el de la última conexión abierta.
Esta orden no es eficaz para las instrucciones SELECT, sólo en instrucciones que modifican archivos. Para recuperar el número de filas vuelto de un SELECT, usa mysql_num_rows.
mysql_close
int mysql_close(int [link_identifier] );
Devuelve: TRUE si se ha cerrado correctamente, FALSE en caso de error.
mysql_close cierra la conexión a la base de datos MySQL asociada al idenficador de conexión especificado. Si no se  especifica un identificador de conexión, se asume el de la última conexión abierta.
Note que esta función no es normalmente necesaria en conexiones no-persistentes (abiertas con mysl_connect) ya que ést se cerrará automáticamente al final de la ejecución del script o página. La función mysql_close no cierra una conexión persistente (abierta con mysql_pconnect()).
mysql_connect
int mysql_connect(string [hostname] , string [username] , string [password] );
Devuelve: un identificador de conexión, o FALSE en caso de error.
mysql_connect establece una conexión a un servidor de MySQL. Todos los argumentos son optativos, y si no se especifican, los valores por defecto son (' el localhost', nombre del usuario del usuario que posee el proceso del servidor, la contraseña vacía). La cadena hostname también puede incluir un número del puerto, "hostname:port".
En caso de realizar una segunda llamada a mysql_connect con los mismos argumentos, no se establecerá ninguna nueva conexión, sino se devolverá el identificador de conexión de la ya existente.
La conexión al servidor se cerrará en cuanto la ejecución del script acabe, a menos que la cerremos antes con la función mysql_close.

mysql_create_db
int mysql_create_db(string database name, int [link_identifier] );
La función mysql_create_db intenta crear una nueva base de datos en el servidor asociado con el identificado de conexión especificado.
mysql_data_seek
int mysql_data_seek(int result_identifier, int row_number);
Devuelve: TRUE si toda ha ido bien, y FALSE en caso de error.
La función mysql_data_seek mueve el puntero que indica la fila actual al número de fila de la consulta que indica el identificador. La próxima llamada al mysql_fetch_row o mysql_fetch_array devolvería esa fila.
            mysql_dbname
string mysql_dbname(string result, int i);
mysql_dbname devuelve el nombre de la base de datos guardado en posición i de los resultados del indicador de consulta devuelto por la función del mysql_list_dbs. La función del mysql_num_rows puede usarse para determinar cuántos nombres de bases de datos están disponibles
mysql_db_query
int mysql_db_query(string database, string query, int link_identifier);
Devuelve: un identificador de conexión, o FALSE en caso de error.
Ejecuta una consulta en una base de datos. Si el identificador no se especifica, la función intenta encontrar una conexión abierta con el servidor. Si no encuentra una conexión, intentará crear una (similar a mysql_connect( ) sin argumentos).
mysql_drop_db
int mysql_drop_db(string database_name, int [link_identifier] );
Devuelve: TRUE si toda ha ido bien, y FALSE en caso de error.
Elimina una base de datos del servidor asociado al identificador de conexión.
mysql_errno
int mysql_errno();
Devuelve el número de error asociado a la última operación realizada.
mysql_error
string mysql_error();
Devuelve el texto asociado al error producido en la última operación realizada por la base de datos.
<?php
mysql_connect("marliesle");
echo mysql_errno().": ".mysql_error()."<BR>";
mysql_select_db("nonexistentdb");
echo mysql_err_db("nonexistentdb");
echo mysql_errno().": ".mysql_error()."<BR>";
$conn = mysql_query("SELECT * FROM nonexistenttable");
echo mysql_errno().": ".mysql_error()."<BR>";
?>
mysql_fetch_array
array mysql_fetch_array(int result);
Devuelve un array con la información correspondiente al resultado de una consulta especificado por su identificador o 'false' si ya no hay más filas.
Es una versión extendida de mysql_fetch_row ( ). Además de almacenar los datos a través de índices numéricos del array, también lo hace a través de índices asociativos, utilizando los nombres de los campos como claves.
Si dos o más columnas del resultado tienen el mismo nombre de campo, la última es la que tiene preferencia. Para acceder a las demás es necesario utilizar el índice numérico o construir un alias para la columna:
select t1.f1 as foo t2.f1 as bar from t1, t2
as foo t2.f1 as bar from t1, t2
Esta función no es más lenta que 'mysql_fetch_row( )'.
<?php
mysql_connect($host,$user,$password);
$result = mysql_db_query("database","select * from table");
while($row = mysql_fetch_array($result)) {
echo $row["user_id"];
echo $row["fullname"];
}
mysql_free_result($result);
?>
mysql_fetch_field
object mysql_fetch_field(int result, int [field_offset] );
Devuelve un objeto que contiene la información de los campos que componen un resultado de una consulta. Si no se especifica 'offset', devuelve información sobre el siguiente campo que todavía no ha sido devuelto.
Propiedades del objeto devuelto:
name - nombre del campo
table - nombre de la tabla a la que pertenece el campo
max_length - longitud máxima que puede tomar el campo
not_null - 1 si el campo no puede tomar valores nulos
primary_key - 1 si el campo es una clave principal (primary key)
unique_key - 1 si el campo tiene restricción de unicidad
multiple_key - 1 si el campo no tiene rest
multiple_key - 1 si el campo no tiene restricción de unicidad
numeric - 1 si el campo es numérico
blob - 1 si el campo es BLOB
type - tipo de dato (del campo)
unsigned - 1 si el campo es 'unsigned'
zerofill - 1 si el campo es rellenado con ceros

mysql_fetch_lengths
int mysql_fetch_lengths(int result);
Devuelve: una tabla o FALSE si hay error.
mysql_fetch_lengths almacena en una tabla la longitud de cada campo de una consulta realizada con mysql_fetch_row o mysql_fetch_array. El índice de la tabla comienza en 0.
mysql_fetch_object
int mysql_fetch_object(int result);
Devuelve: un objeto o FALSE en caso de error.
Esta función es similar a'mysql_fetch_array, solo que los resultados de una consulta, en lugar de una tabla, los devuelve como un objeto. En este caso, sólo se puede acceder a los datos a través de los nombres de sus campos. La velocidad de ejecución es idéntica a la de 'mysql_fetch_array. Para referenciar el valor de un campo debemos utilizar el operador típicos de los objetos (->).
mysql_fetch_row
array mysql_fetch_row(int result);
 Devuelve: una tabla o FALSE si hay error.
Devuelve un tabla con los valores de los campos de la fila actual de la cosulta, la que especificar el indicador (result) , y mueve el puntero interno que marca la fila actual a la siguiente fila, si no hay mas filas devuelve FALSE. El índice de la tabla comienza en 0.
mysql_field_name
string mysql_field_name(string result, int i);
Devuelve el nombre del campo especificado por el índice.
mysql_field_seek
int mysql_field_seek(int result, int field_offset);
Mueve el puntero del campo actual hacia adelante las posiciones actual hacia adelante las posiciones indicadas por 'offset'.
mysql_field_table
string mysql_field_table(int result, int field_offset);
Devuelve el nombre de la tabla que almacena el campo especificado por el índice ( 'field_offset' ).
mysql_field_type
string mysql_field_type(string result, int field_offset);
Devuelve el tipo del campo del indice especificado.
mysql_field_flags
string mysql_field_flags(string result, int field_offset);
Devuelve los especificadores (flags) del campo especificado como una cadena de texto en la que cada especificador se corresponde con una palabra, y éstas van separadas mediante un espacio simple. Se puede analizar la cadena utilizando explode( )
Los especificadores son:
"not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".
mysql_field_len
int mysql_field_len(string result, int field_offset);
Devuelve la longitud del campo especificado
mysql_free_result
int mysql_free_result(int result);
Sólo debería ser utilizada si la cantidad de memoria utilizada para almacenar el resultado de una consulta es muy grande. Cuando se ejecuta esta función, toda la memoria asociada al resultado se libera.
mysql_insert_id
int mysql_insert_id(void);
Esta función devuelve el ID (identificador) generado para los campos autonuméricos (AUTO_INCREMENTED). El ID devuelto es el correspondiente al de la última operación INSERT.
mysql_list_fields
int mysql_list_fields(string database, string tablename);
Devuelve información sobre la tabla. El valor resultante puede ser utilizado con mysql_field_flags(), mysql_field_len(), mysql_field_name(), and mysql_field_type().
El identificador que devuelve es un entero positivo o '-1' en caso de error. El texto que describe el error se encuentra en $phperrmsg.
mysql_list_dbs
int mysql_listdbs(void);
Devuelve un puntero que contiene las bases de datos disponibles para el servidor actual (msql daemon). Este valor se utiliza con la función mysql_dbname( ).
mysql_list_tables
int mysql_list_tables(string database, , int [link_identifier]);
Devuelve un identificar, el cual pasaremos a la función mysql_tablename para extraer el nombre de las tablas de la base de datos especificada.
mysql_num_fields
int mysql_num_fields(int result);
mysql_num_fields devuelve en número de campos de una consulta.
mysql_num_rows
int mysql_num_rows(string result);
Devuelve el número de filas del resultado de una consulta.
mysql_pconnect
int mysql_pconnect(string [hostname] , string [username] , string [password] );
Devuelve un identificador de conexión persistente o 'false' en caso de error. Las diferencias con respecto a mysql_connect( ) son:
Primero, la función intenta encontrar una conexión persistente que ya esté abierta con la misma máquina, usuario y password. Si es encontrada, devuelve el identificador de la misma, en lugar de crear una nueva conexión.
Segundo, la conexión al servidor SQL no será cerrada cuando finalice la ejecución del script, sino que permanece abierta para un uso posterior.
La función mysql_close no cierra una conección abierta con mysql_pconnect. Las conecciones abierta con esta función se llaman "persistentes".
mysql_query
int mysql_query(string query, int [link_identifier] );
Ejecuta una consulta a la base de datos activa en el servidor asociado al identificador de conexión. Si no se especifica, se utiliza la última conexión abierta.fica, se utiliza la última conexión abierta. Si no hay conexiones abiertas la función intenta establecer una.
Esta función devuelve TRUE o FALSE para indicar si las operaciones UPDATE, INSERT o DELETE han tenido éxito. Para la operación SELECT devuelve un nuevo identificador de resultado.
mysql_result
int mysql_result(int result, int row, mixed field);
Devuelve el contenido de la celda de un resultado. El argumento 'field' puede ser un índice o el nombre del campo correspondiente o el nombre del campo de la forma: tabla.campo. Si la columna tiene un alias ('select foo as bar from...') se utiliza el alias en lugar del nombre de la columna.
En lugar de esta función es preferible usar mysql_fetch_row(), mysql_fetch_array(), and mysql_fetch_object(), con la que obtendremos mejor rendimiento.
mysql_select_db
int mysql_select_db(string database_name, int [link_identifier] );
Devuelve: true on success, false on error
Establece la base de datos activa en el servidor. Si no se especifica identificador de conexión se utiliza la última conexión abierta. Si no hay conexiones anexión abierta. Si no hay conexiones activas, la función intenta establecer una. A partir de la llamada a mysql_select_db las llamadas a mysql_query( ) actúan sobre la nueva base de datos activa.
mysql_tablename
string mysql_tablename(int result, int i);
Toma como argumento un puntero devuelto por la función            mysql_list_tables( ) y devuelve el nombre de la tabla asociada al indice i. La función mysql_num_rows( ) puede ser utilizada para determinar el número de tablas.
<?php
    $c=mysql_connect("localhost","root","");
    if (!$c){
        die("Conexión Fallida");
    }



$CONSULTA2="SHOW DATABASES;";
$RESULT2=mysql_query($CONSULTA2);
Echo"<h1>Las Bases de datos presentes en este sistema EasyPHP son</h1>";
$I=0;
WHILE ($I<mysql_num_rows($RESULT2)){
            $TBD[$I]=mysql_tablename ($RESULT2,$I);
            echo $TBD[$I]. "<br>";
            $I++;
}

$s=mysql_select_db("mibd",$c);

$CONSULTA ="SHOW TABLES;";

$RESULT=mysql_query($CONSULTA);
echo"<h1>Las tablas presentes en la base de datos mibd son:</h1>";
$i = 0;
while ($i < mysql_num_rows ($RESULT)) {
            $tb_names[$i] = mysql_tablename ($RESULT, $i);
            echo $tb_names[$i] . "<BR>";
            $i++;
}
?>
__________________________________________________________________
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
       <title>Title here!</title>
</head>
<body>
<table border="0" summary="">
            <form action="Basedatos.php" method="post">
                       <tr>
                       <td>Código</td>
                       <td><input type="text" name="Codigo" size="20" maxlength="256"></td>
            </tr>
            <tr>
                       <td>Nombre</td>
                       <td><input type="text" name="Nombre" size="20" maxlength="256">      </td>
            </tr>
            <tr>
                       <td>Dirección Postal</td>
                       <td><input type="text" name="Dirección" size="20" maxlength="256">      </td>
            </tr>
            <tr>
                       <td>E-Mail</td>
                       <td><input type="text" name="Mail" size="20" maxlength="256">      </td>
            </tr>
            </table>
<Input type="submit"value="Enviar">
<Input type="reset" value="borrar">
</form>
<?php
if (isset($Nombre)){
    $c=mysql_connect("localhost","root","");
    if (!$c){
        die("Conexión Fallida");
    }
    $s=mysql_select_db("mibd",$c);
    $consulta="INSERT INTO usuarios(codigus,nombre,direccion,email) VALUES ('$Codigo','$Nombre','$Dirección','$Mail')";
$resultado=mysql_query($consulta);
if ($resultado){
    print("El usuario ha quedado registrado");
}
else{
    Print("Error en el registro");
}
mysql_close($c);
}
?>

Saludos, Alfredo

No hay comentarios:

Publicar un comentario