Hola Pues resulta que me pase la mañana peliando con PHP y el magestuoso IE6 jajajaja, pues si, resulta que en Firefox corria a la perfección por lo cual estuve pensando por que es que no se gaurdaba mi información al mandar el formulario con IE6, y la respuesta esta en las variables globales.
Resulta que cuando declaramos una variable fuera de cualquier función, pues es una variable global, más sin embargo no funciona igual que en otro lenguaje, pues hay que hacer referencia a dicha variable de la siguiente manera
$GLOBALS["Variable"]
realmente no lo crei necesario, pero usenlo para IE6, es una recomendación, ahora veran este codigo, en azul se encuentra la variable que es necesaria utilizar como global, repito que este problema solo sucedio en IE6, ya que en Firefox funciono a la perfección
include("subida/CovierteJpeg.php");
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
$InMail;
$InMail1;
$InDB;
$InDB1;
session_start();
if( ($_SESSION['security_code']==$_POST['security_code']) && (!empty($_POST['security_code'])) ) {
// File upload handling
if($_FILES['field_13']['name']!=''){
$field_13_filename = "file_13_".date("sihdmY").substr($_FILES['field_13']['name'],strlen($_FILES['field_13']['name'])-4);
if(move_uploaded_file($_FILES['field_13']['tmp_name'], "../../recibos/".$field_13_filename)){
$type=$_FILES['field_13']["type"];
$ruta="../../recibos/".$field_13_filename;
$nuevo=ConvierteJpeg($ruta,$type);
$GLOBALS["InMail"]=$where_form_is."".$nuevo;
$GLOBALS["inDB"] = str_replace("../../","",$nuevo);
}else{die("File " . $_FILES['field_13']['name'] . " was not uploaded."); }
if ($nuevo=="er")
{
header("Location: error-subida.html");
exit;
}
}
// File upload handling
if($_FILES['field_22']['name']!=''){
$field_22_filename = "file_22_".date("sihdmY").substr($_FILES['field_22']['name'],strlen($_FILES['field_22']['name'])-4);
if(move_uploaded_file($_FILES['field_22']['tmp_name'], "../../cedulas/".$field_22_filename)){
$type1=$_FILES['field_22']["type"];
$ruta1="../../cedulas/".$field_22_filename;
$nuevo1=ConvierteJpeg($ruta1,$type1);
$GLOBALS["InMail1"]=$where_form_is."".$nuevo1;
$GLOBALS["inDB1"] = str_replace("../../","",$nuevo1);
}else{die("File " . $_FILES['field_22']['name'] . " was not uploaded."); }
if ($nuevo1=="er")
{
header("Location: error-subida.html");
exit;
}
}
include("configuration/config.inc.php");
$link = mysql_connect($db_host,$db_user,$db_pass);
if(!$link) die ('Could not connect to database: '.mysql_error());
mysql_select_db($db_name,$link);
/*
utf8_encode($string):Permite mostrar el contenido de la BD para un html
utf8_decode($string):Permite guardar los acentos en la BD
*/
$campo1=utf8_decode($_POST['field_1']);
$campo2=utf8_decode($_POST['field_2']);
$campo3=utf8_decode($_POST['field_3']);
$campo4=utf8_decode($_POST['field_4']);
$campo5=utf8_decode($_POST['field_5']);
$campo6=utf8_decode($_POST['field_6']);
$campo7=utf8_decode($_POST['field_7']);
$campo8=utf8_decode($_POST['field_8']);
$campo9=utf8_decode($_POST['field_9']);
$campo10=utf8_decode($_POST['field_10']);
$campo12=utf8_decode($_POST['field_12']);
$campo14=utf8_decode($_POST['field_14']);
$campo15=utf8_decode($_POST['field_15']);
$campo16=utf8_decode($_POST['field_16']);
$campo17=utf8_decode($_POST['field_17']);
$campo18=utf8_decode($_POST['field_18']);
$campo19=utf8_decode($_POST['field_19']);
$campo20=utf8_decode($_POST['field_20']);
$campo21=utf8_decode($_POST['field_21']);
$query = "INSERT into `".$db_table."` (field_1,field_2,field_3,field_4,field_5,field_6,field_7,field_8,field_9,field_10,field_11,field_12,field_13,field_14,field_15,field_16,field_17,field_18,field_19,field_20,field_21,field_22) VALUES ('" . $campo1 . "','" . $campo2 . "','" . $campo3 . "','" . $campo4 . "','" . $campo5 . "','" . $campo6 . "','" . $campo7 . "','" . $campo8 . "','" . $campo9 . "','" . $campo10 . "','" . $_POST['field_11'] . "','" . $campo12 . "','" . $GLOBALS["inDB"] . "','" . $campo14 . "','" . $campo15 . "','" . $campo16 . "','" . $campo17 . "','" . $campo18 . "','" . $campo19 . "','" . $campo20 . "','" . $campo21 . "','" . $GLOBALS["inDB1"]. "')";
mysql_query($query);
mysql_close($link);
mail("dzipiri@gmail.com","Información de registro","Estos son tus datos de registro:
Apellido Paterno: " . $_POST['field_1'] . "
Apellido Materno: " . $_POST['field_2'] . "
Nombre(s): " . $_POST['field_3'] . "
Correo Electronico: " . $_POST['field_4'] . "
Organización: " . $_POST['field_5'] . "
Teléfono: " . $_POST['field_6'] . "
Estudios: " . $_POST['field_7'] . "
Tipo de Asistente: " . $_POST['field_8'] . "
Estado: " . $_POST['field_9'] . "
Ciudad: " . $_POST['field_10'] . "
Fecha de Nacimiento: " . $_POST['field_11'] . "
No. Recibo: " . $_POST['field_12'] . "
Recibo Bancario: ".$GLOBALS["InMail"] . ")
Razón Social: " . $_POST['field_14'] . "
Dirección Fiscal: " . $_POST['field_15'] . "
Código Postal: " . $_POST['field_16'] . "
RFC: " . $_POST['field_17'] . "
Télefono: " . $_POST['field_18'] . "
Fax: " . $_POST['field_19'] . "
Ciudad: " . $_POST['field_20'] . "
Estado: " . $_POST['field_21'] . "
Cédula Fiscal: ".$GLOBALS["InMail"] . ")
");
header("Location: ../../confirm.html");
}
else {
header("Location: error-codigo.html");
}
Gracias por su lectura, agradecere tu comentario,
atte The Dzip.
miércoles, octubre 28, 2009
Variables Globales en PHP
Publicadas por julian a la/s 3:17:00 p.m. 0 comentarios
Guardar acentos en una base de datos con PHP
Hola que tal, esta ves se me presento un problema, resulta que mi intensión era poder guardar la información desde un formulario en un Base de datos, todo iba perfecto hasta que nos dimos cuenta que los acentos no se guardaban, en este caso encontre una solución, de la cual espero les sirva, y si conocen una mejor posteen, gracias
utf8_encode($string):Permite mostrar el contenido de la BD para un html
utf8_decode($string):Permite guardar los acentos en la BD
Por tanto, lo que es necesario hacer es:
$campoX=utf8_decode($_POST['campoX']);
$query = "INSERT into `".$db_table."` (field_1) VALUES ('" . $campoX . "')";
realmente muy sencillo, pero funciona.
Gracias por su lectura, agradecere tu comentario,
atte The Dzip.
Publicadas por julian a la/s 3:09:00 p.m. 11 comentarios
lunes, octubre 26, 2009
Servidor FTP en Fedora 10
Instalar un servidor FTP en Fedora es de lo más sencillo, sin embargo vamos hacerlo de la mejor manera para que los usuarios solo tengan acceso a la carpeta especifica, para ello se ha escrito esta pequeña guiá de referencia, siga los pasos y éxito.
1.- Debe abrir una ventana de consola, podrá encontrarla de las siguientes dos formas:
a)Escriba la combinación de teclas Alt + F2, se abrirá la ventana de ejecución, escriba como en la imagen y de Ejecutar
b) Con el uso del modo gráfico, siguiendo esta ruta: Menú Inicio --> Herramientas del Sistema-->Terminal.
Entonces inicia la terminal, con la cual vamos a trabajar
2.- El paso siguiente es Loguearse como SuperUsuario, esto para poder realizar instalaciones o configuraciones, es muy sencillo, lo único que debes hacer poner los comandos como se muestra en la imagen, al poner su darás Intro o Enter, aparecerá la leyenda Contraseña: aquí debes escribir la contraseña de root o Administrador y luego dar Enter.
3. Ahora si se procede a ejecutar el comando de instalación, recuerde que el parámetro -y indica que aceptamos las condiciones, sea esta descarga e instalación. El comando es completo es el siguiente: yum install -y vsftpd
Ya que ha quedado instalado el servidor FTP, realizaremos unas configuraciones muy útiles planteando lo siguiente.
Usuario: Prueba
Acceso a su directorio: /var/www/html/Prueba
Sin shell en el sistema y en un entorno chroot
Pass: sxb34H.-
Usuario: CancunProjects
Acceso a su directorio: /var/www/html/CancunProjects
Sin shell en el sistema y en un entorno chroot
Pass:rh0+.Tj
Usuario: Administrador
Acceso a su directorio: /var/www/html
Sin shell en el sistema y en un entorno chroot
Pass:J&j.87k+L
4. Primero se va crear un grupo al cual se le pondrá el nombre FTP, puede ser cualquiera
5. Se crean los usuarios con las características antes mencionadas, esto se realiza con el comando useradd, usando los siguiente parametros -g que indica el grupo, -d el directorio y -c se utiliza para especificar el archivo de comentario de campo para la nueva cuenta.
6. Bien, para que funcione debemos crear contraseña a cada usuario, por lo cual usaremos el comando passwd
7.- Ahora crearemos un Shel Fantasma, vamos a crear el directorio /bin/ftp
8. A continuación se debe editar el archivo shells que se encuentra en la carpeta etc y agregar el directorio, de la siguiente manera.
Aparecerá el Gedit con el archivo shells ya cargado agregá la linea que se muestra, guarde y cierre par continuar
9. Ahora se debe configurar el archivo que se encuentra en /etc/passwd, buscar donde se haya agregado nuestros usuarios y agregar la carpeta como se muestra a continuación.
10. Ahora a configurar el programa, para ello debemos abrir el archivo de configuración de vsftpd que se encuentra en /etc/vsftpd/vsfypd.conf
Aquí esta lo que debe ir en el archivo:
# Example config file /etc/vsftpd/vsftpd.conf
#Escuchando
listen=YES
# conexiones anonimas
anonymous_enable=NO
#
# Acceso Local
local_enable=YES
#
# Escritura Local
write_enable=YES
#
#Configuracion UMASK
local_umask=003
#
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# Se descomenta esto para crear una jaula
chroot_local_user=YES
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#
# Debian customization
# secure_chroot_dir=/var/run/vsftpd
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
#rsa_cert_file=/etc/ssl/certs/vsftpd.pem
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO
11. A continuación creamos el fichero vsftpd.chroot_list el cual tendrá la lista de usuarios que no tendrán acceso al servidor:
12. Volcamos los datos a este fichero desde etc/password con el comando.
cat /etc/passwd | awk -F: '{ print $1 }' > /etc/vsftpd.chroot_list
Esto nos genera un fichero con los login de usuarios del sistema del cual quitamos los que si queremos que tengan acceso y los ponemos en el fichero /etc/vsftpd.user_list.
Esto con Gedit, abra ambos archivos y elimine los usuario de chroot_list ya que aquí no podrán tener acceso y paselos a user_list. Con esto queda configurado su servidor FTP
Publicadas por julian a la/s 9:09:00 p.m. 2 comentarios
jueves, octubre 01, 2009
Instalar HTTP (Apache) en Fedora 10
Fedora Core 10
Generalmente el servidor Apache que provee el servicio de Web ya viene instalado en el Fedora Core 10, sin embargo en caso de no ser así, debe seguir los siguientes pasos.
1.- Debe abrir una ventana de consola, podrá encontrarla de las siguientes dos formas:
a)Escriba la combinación de teclas Alt + F2, se abrirá la ventana de ejecución, escriba como en la imagen y de Ejecutar
Entonces inicia la terminal, con la cual vamos a trabajar
ServerRoot. Define el directorio donde se encuntran los archivos de configuración, no lo mueva
DocumentRoot. Define la carpeta donde se alojaran los archivos que se van a mostrar, la carpeta por defecto es /var/www/html, sin embargo la puede cambiar.
Maxclients. Numero maximo de conexiones simultaneas
Listen. Permite enlazar Apache a determinadas IP o puertos, generalmente escucha en el 80
El problema lo encontraremos al intentar escribir información en la carpeta /var/www/html por consiguiente hay que poner permisos de usuario, para ello podemos usar el comando chmod
u usuario al que pertenece el archivo
o otros usuarios
+ agregar permisos
- quitar permisos
= igualar permisos
x permisos de ejecución
w permisos de escritura
r permisos de lectura
Ahora bien en que cada directorio puede ser un dominio y pensando en que sobre esa carpeta se va trabajar y enviar información mediante FTP, entonces es mejor crear una nueva carpeta por cada dominio, como se muestra en las siguientes imagenes.
Para hacerlo debe estar como SuperUsuario, y acceder a la carpeta /var/www/html mediante el comando cd, luego crear el directorio con mkdir, puede verificar que se a creado la carpeta con el comando dir y finalmente establezca que otros usuarios a parte del propietario que es root puedan tener acceso a esa carpeta.
Nota: Recuerde que el archivo que se debe poner para que se ejecute por defecto debe llevar por nombre index y debe ser de ext
ensión htm, html o php.


Gracias por su lectura, agradecere tu comentario,
atte The Dzip.
Publicadas por julian a la/s 3:14:00 p.m. 4 comentarios
sábado, febrero 28, 2009
Seguimiento de tu Web (Google Analytics)
1. Iniciando sesión.
2. A continuacion registraremos un sitio para rastrear, esto sera muy sensillo, busque la opción
Gracias por su lectura, agradecere tu comentario,
atte The Dzip.
Publicadas por julian a la/s 5:36:00 p.m. 0 comentarios
jueves, febrero 12, 2009
Meta Tags
Segun la wikipedia una metatag es:
Las metatags son etiquetas html que se incorporan en el encabezado de una página web y que resultan invisibles para un visitante normal, pero de gran utilidad para navegadores u otros programas que puedan valerse de esta información. Su propósito es el de incluir información (metadatos) de referencia sobre la página: autor, título, fecha, palabras clave, descripción, etc. Esta información podría ser utilizada por los robots de búsqueda para incluirla en las bases de datos de sus buscadores y mostrarla en el resumen de búsquedas o tenerla en cuenta durante las mismas y será invisible para un visitante normal.
Estos elementos debe incluirse ya que seran mostrados cuando haga una busqueda con su url, ahora muestro un ejemplo
Gracias por su lectura, agradecere tu comentario,
atte The Dzip.
Publicadas por julian a la/s 9:16:00 p.m. 0 comentarios
martes, diciembre 02, 2008
BD + PHP + MySQL conexiones y solucion
Hola que tal pues, hasta que regreso por aquí ya los tenia abandonados que no, jeje, pues esta vés les regalare un pequeño framework, bueno no tanto así, es un entorno de trabajo de BD, aun muy básico, pero pues iremos mejorando y añadendo funcionalidades, espero sus comentarios de JetBD, en cuanto respuesta, uso y fácilidad.
Descarga aquí JetBD
Funciones
Connect_BD(nombre_host, nombre_usuario,contraseña_usuario,nombre_BD). Le permite conectarse a una base de datos
Close_BD(). Le permite terminar una sesion de BD, termina una conexión.
Insert(nombre_tabla,campos,valores). Permite insertar datos en una tabla, previa conexion echa
Delete(nombre_tabla,condición). Permite eliminar datos de una tabla a partir de una condicion.
Num_fs(nombre_tabla,Campos). Retorna el numero de campos a partir de una consulta en una tabla.
Name_fs(nombre_tabla, Campos, Orden). Retorna un arreglo con el nombre de los campos ordenador por el campo establecido.
Num_row(nombre_tabla,campos). Devuelve el numero de registros que hay en una tabla.
Show(nombre_tabla,Campos,Orden). Retorna una matriz con los registros dados en el orden establecido.
Seek(nombre_tabla,Campos,Orden,Condicion). Realiza una busqueda de acuerdo a la condicion y retorna una matriz con los registros ordenados con el campo elegido.
Es un desarrollo aun ni en pañales pero pues con más tiempo agregare más funciones, con el fin de un mejor desempeño.
Para usarlo debe incluir la libreria y crear un objeto.
Ejemplo de uso:
include(JetBD.php);
$consulta=new BD();
$consulta->Connect_BD("localhost","julian","pelos08","ralove");
echo "
echo $consulta->Insert("coment","ID, Nombre, Correo, Modulo, Comentario","'2', 'Pedro', 'mdkd@nksn.com', 'Woer', 'Hey pwjjw'");
echo "
echo $consulta->Delete("coment","ID=2");
echo "
echo $consulta->Num_fs("coment","*");
echo "
foreach ($consulta->Name_fs("coment","*","ID") as $actual)
echo $actual . "
";
echo $consulta->Num_row("coment","*");
echo "
echo "";
";
while ($r<$consulta->Num_row("coment","*"))
{
$f=0;
echo ""; ";
while($f<$consulta->Num_fs("coment","*"))
{
echo ""; ";
$m=$consulta->Show("coment","*","ID");
echo $m[$r][$f];
echo "
$f++;
}
echo "
$r++;
}
echo "
//prueba de busqueda
echo "
$r=0;
echo "";
";
while ($r<$consulta->Num_row("coment","*"))
{
$f=0;
echo ""; ";
while($f<$consulta->Num_fs("coment","*"))
{
echo ""; ";
$m=$consulta->Seek("coment","*","ID","ID>5");
echo $m[$r][$f];
echo "
$f++;
}
echo "
$r++;
}
echo "
?>
Espero sea de su ayuda, pasen buen día espero sus comentarios
Gracias por su lectura, agradecere tu comentario,
atte The Dzip.
Publicadas por julian a la/s 9:42:00 p.m. 0 comentarios
miércoles, octubre 08, 2008
Timer, retardo y ahorro de memoria en Java
javax.swing.Timer timer;
timer=new javax.swing.Timer
(
/*Retardo en milisegundos esto no va*/1000,new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
//Instrucciones que realizara el Timer
}
}
);
Cabe mencionar que si no cuentas con algun contenido o una ventana, se cerrara el programa sin ejecutar el timer para ello debes agregar un retardo como el siguiente.
try
{
Thread.currentThread().sleep (10000);
} catch (Exception e)
{
}
y bueno el ejemplo que se maneja a continuación ara que una etiqueta gire al rededor de la ventada, bueno acá esta el codigó espero sus comentarios y resolvere dudad, hasta pronto.
public class Obj_Mov
{
//Declaraciones
javax.swing.Timer timer;//El timer
java.awt.Frame ventana;//La ventana
java.awt.Label etiqueta;//La Etiqueta
int Retardo=1000,izq=10,der=385,sup=35,inf=385,conth=10,conv=35;
public Obj_Mov()
{
//Procedimiento de Timer
timer=new javax.swing.Timer
(
Retardo,new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
//Instrucciones que realizara el Timer
avanzar_derecha(conth,etiqueta);
avanzar_abajo(conv,etiqueta);
avanzar_izquierda(conth,etiqueta);
avanzar_arriba(conv,etiqueta);
}
}
);
ventana=new java.awt.Frame("Mi Ventana");
ventana.setBackground(java.awt.Color.black);
ventana.setBounds((1024/2)-200,(768/2)-200,400,400);
ventana.setLayout(null);
ventana.setVisible(true);
ventana.setResizable(false);
ventana.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosing(java.awt.event.WindowEvent e)
{
System.exit(0);
}
});
etiqueta= new java.awt.Label("*");
etiqueta.setBackground(java.awt.Color.cyan);
etiqueta.setBounds(10,35,5,5);
ventana.add(etiqueta);
timer.start();
}
public void avanzar_derecha(int contador,java.awt.Label cosa)
{
while (contador<=der)
{
cosa.setBounds(contador,35,5,5);
++contador;
}
conth=contador-1;
}
public void avanzar_abajo(int contador,java.awt.Label cosa)
{
while (contador<=inf)
{
cosa.setBounds(385,contador,5,5);
++contador;
}
conv=contador-1;
}
public void avanzar_izquierda(int contador,java.awt.Label cosa)
{
while (contador>=izq)
{
cosa.setBounds(contador,385,5,5);
--contador;
}
conth=contador+1;
}
public void avanzar_arriba(int contador,java.awt.Label cosa)
{
while (contador>=sup)
{
cosa.setBounds(10,contador,5,5);
--contador;
}
conv=contador+1;
}
public static void main (String a[])
{
Obj_Mov uno= new Obj_Mov();
/*Si no hay nada màs que el texto esto se para, pero se puede retardar con esto
try
{
Thread.currentThread().sleep (10000);
} catch (Exception e)
{
}
*/
}
}
Gracias por su lectura, agradecere tu comentario,
atte The Dzip.
Publicadas por julian a la/s 7:55:00 p.m. 1 comentarios
miércoles, octubre 01, 2008
Condicion Simple en Java (If en Java)
ahora usted sabe que existen esos dos medios pero como saber cual usar, para ello entonces debemos establecer una condicionante que permita tomar dicha decisión, supongamos que el factor que determinara esto sera el tiempo, pero aun así es muy ambigüo, para ello entonces vamos a establecer una hora, supongamos que nuestra hora de entrada son las 8:00 am, bien dada esta situación y de acuerdo a los tiempos del transporte se puede tomar una decisión, en BUS llega en 30 min y el taxi en 15 min, ahora cual seria la condición.
Si falta 30 minutos para las 8 entonces se toma el Bus y de lo contrario se tomara un Taxi
El problema que se tiene es como representar las condiciones de tal forma que el Lenguaje pueda entenderlo, para ello existen los operadores Mayor que (>), menor que (>) , igual (=), mayor o igual (>=) , menor o igual(<=) o el diferente (!=). De acuerdo a ellos es como se planteara la condicionante. de tal forma que ahora lo convertimos a una expresión entendible al lenguaje.
Condicionante.- Faltante<30
Valor verdadero.- El transporte es: Taxi
Valor Falso.- El transporte es: Bus
Ahora que tenemos las partes de la condición llega lo más importante, como representar esto con la sentencia if en Java, bien pues la sintaxis es la siguiente:
{
instrucciones verdaderas.
}
else
{
instrucciones falsas.
Nota: las llaves pueden ser omitidas cuando se trata de una sola instrucción, pero no cuando se trabaja con dos o más instriucciones.
Gracias por su lectura, agradecere tu comentario, atte The Dzip.
Publicadas por julian a la/s 11:52:00 p.m. 1 comentarios
