• Domingo 28 de Abril de 2024, 23:08

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - DriverOp

Páginas: 1 2 3 [4] 5 6 ... 9
76
PHP / Re: Busqueda incremental el PHP con scripts
« en: Miércoles 3 de Marzo de 2010, 04:45 »
Esto lo haces con una combinación de AJAX (JavaScript) para hacer peticiones asincrónicas, PHP para ejecutar del lado del servidor y SQL para recuperar los datos de la base de datos.

77
PHP / Re: construir funciones propias
« en: Viernes 26 de Febrero de 2010, 23:48 »
La función mysql_connect() cuando es exitosa devuelve un puntero, ese puntero se usa en las siguientes operaciones a la base de datos para indicar que debe usar esa conexión abierta y no otra.

[php:3tc12f4l]
  1.  
  2. $link = mysql_connect("localhost","usuario", "contraseña");
  3.  
[/php:3tc12f4l]

$link es el puntero de la conexión.

En tu código la función conn(), el primer parámetro es ese puntero.

Entonces para cada operación con MySQL debes indicarle qué conexión usar:

[php:3tc12f4l]
  1.  
  2. $result = mysql_query($sql, $link);
  3.  
[/php:3tc12f4l]

Tu función debería devolver ese puntero:

[php:3tc12f4l]
  1.  
  2. function conn($var2, $var3, $var4) {
  3.    $var1 = mysql_connect("$var2", "$var3", "$var4");
  4.    if (!$var1) {
  5.          echo "no se pudo conectar con la base de datos";
  6.    } else {
  7.          echo "se conectar con la base de datos";
  8.    }
  9.   return $var1;
  10. }
  11.  
[/php:3tc12f4l]

Y así poder usarlo en las otras operaciones:

[php:3tc12f4l]
  1.  
  2. require("fn_conexion.php");
  3. $link = conn("localhost", "root", "");
  4.  
  5. mysql_select_db("discos", $link);
  6.  
  7. $sql = "select * from discos";
  8. $query = mysql_query($sql, $link);
  9. $rows = mysql_num_rows($query);
  10.  
  11. for ($i=0; $i<$rows; $i++) {
  12. $ver = mysql_fetch_array($query);
  13. echo $ver['titulo_disco']."<br>";
  14. }
  15.  
[/php:3tc12f4l]

Lo que ocurre es que las funciones donde se usa ese puntero, el puntero es opcional porque PHP mantiene internamente una conexión activa que puede usarla cualquier función que la requiera, esa conexión activa es la última que se pide. En tu caso, como has abierto una sola no hay problema porque se usa siempre esa, pero te tocará el caso donde tengas que abrir más de una y trabajar con ellas al mismo tiempo y no sabrás por qué saltan errores "misteriosos".

En definitiva: es buena práctica de programación indicar siempre cuál conexión a la base de datos estás usando.

78
PHP / Re: saltar un ciclo de bucle for segun una condicion..
« en: Viernes 26 de Febrero de 2010, 23:32 »
Pues pon un if...
[php:2asykp01]
  1.  
  2. for ($i=0; $i<$rows; $i++)
  3. {
  4. $reg = mysql_fetch_array($accion);
  5. if (!empty($reg["licencia"]) or ($reg["licencia"] != NULL)) {
  6. ?>
  7. <tr>
  8. <td align="center"><?php echo $reg['fecha']; ?></td>
  9. <td align="center"><?php echo $reg['titular']; ?></td>
  10. <td align="center"><?php echo $reg['categoria']; ?></td>
  11. <td align="center"><?php echo $reg['licencia']; ?></td>
  12. <td align="center"><?php echo $reg['emitida']; ?></td>
  13. </tr>
  14. <?php } } ?>
  15.  
[/php:2asykp01]

Aunque mejor que esto sería filtrarlo directamente desde la consulta SQL.

79
PHP / Re: Mostrar registro según rango de hora
« en: Jueves 25 de Febrero de 2010, 23:17 »
¿Y la definición de la tabla cómo es?.

80
PHP / Re: construir funciones propias
« en: Jueves 25 de Febrero de 2010, 18:47 »
El problema con esa función es que no devuelve el puntero a la conexión y al usarla estás confiando en la última conexión abierta. Aunque funciona esto no es deseable.

81
PHP / Re: construir funciones propias
« en: Jueves 25 de Febrero de 2010, 00:34 »
¿Cualquier función?, pues esta siempre me ha resultado útil:

[php:3itw8awz]
  1. function is_email($Addr) {
  2.    $p = '/^[a-z0-9!#$%&*+-=?^_`{|}~]+(.[a-z0-9!#$%&*+-=?^_`{|}~]+)*';
  3.    $p.= '@([-a-z0-9]+.)+([a-z]{2,3}';
  4.    $p.= '|info|arpa|aero|coop|name|museum)$/ix';
  5.    return preg_match($p, $Addr);
  6. } // is_email
[/php:3itw8awz]

Y se usa así:

[php:3itw8awz]
  1.  
  2. if (is_email($mail)) {
  3. echo "Era un email nomás.";
  4. } else {
  5. echo "Estás sanateando...";
  6. }
  7.  
[/php:3itw8awz]

82
Pascal / Re: validacion captura de datos
« en: Miércoles 24 de Febrero de 2010, 14:06 »
Mi solución es que uses el procedimiento val() para convertir cadenas en tipos enteros o reales.

Código: Pascal
  1.  
  2. var
  3.   Cad: string;
  4.   Numero, C: integer;
  5. ...
  6. begin
  7. repeat
  8. Write('Ingrese un número: ');
  9. ReadLn(Cad);
  10. Val(Cad, Numero, C);
  11. if C > 0 then WriteLn('Dato erróneo.');
  12. until C = 0;
  13. WriteLn('El número ingresado fue: ',Numero);
  14.  
  15.  

83
PHP / Re: uso de fopen() (en hosting)
« en: Viernes 19 de Febrero de 2010, 01:46 »
Si entiendo bien esa línea de código:

Código: PHP
  1. @$coment = fopen($_SERVER['DOCUMENT_ROOT']."/curso/proyecto/comentarios.txt", "$modo");
  2.  

la usas para saber si existe el archivo "comentarios.txt" en esa localización. Mal hecho. Deberías hacer:

Código: PHP
  1. if (is_file($_SERVER['DOCUMENT_ROOT']."/curso/proyecto/comentarios.txt")) {
  2.   /* hacer algo con el archivo */
  3. }
  4. else { echo "No existe el archivo."; }
  5.  

Por otro lado me da la leve impresión de que confías en que $_SERVER['DOCUMENT_ROOT'] contiene una ruta válida hacia ese archivo. Haz la siguiente prueba: imprime el valor de $_SERVER['DOCUMENT_ROOT'] antes de ejecutar el fopen(). Quizá el problema sea tan simple como que te sobra una / o no te vale lo que tú crees que vale.

84
PHP / Re: uso de fopen() (en hosting)
« en: Jueves 18 de Febrero de 2010, 15:25 »
¿Qué mensaje de error te muestra?

85
Pascal / Re: No entiendo UTF8 en consola Windows
« en: Jueves 18 de Febrero de 2010, 04:13 »
No lo sabía.

Lo lamento, no sé cuál es el problema.

86
Pascal / Re: No entiendo UTF8 en consola Windows
« en: Jueves 18 de Febrero de 2010, 00:23 »
Pero la consola de Windows no soporta UTF-8, es exclusivamente ANSI. Igual no entiendo bien lo que quieres hacer y el mensaje de error significa que fue imposible escribir en un archivo (lo cual tiene sentido porque para Pascal, la pantalla es un archivo de texto).

87
PHP / Re: un webhosting con php mysql
« en: Sábado 13 de Febrero de 2010, 01:21 »
Dattatec es de pago y las cosas andan bien siempre que no tengas mucho tráfico.

Pero si quieres algo gratis me han recomendado más de una vez awardspace.com aunque no está en español.

88
Pascal / Re: ¿se puede insertar ordenado en archivos?
« en: Lunes 8 de Febrero de 2010, 07:18 »
Depende de qué tan sofisticado lo quieras. Lo más sencillo es crear un archivo temporal, traspasar los registros en el orden que desees, luego borrar el archivo original y renombrar el temporario para que sea el original. Pero esto tiene la desventaja que se hace cada vez más lento conforme el número de registros crece.

Algo más sofisticado pero más flexible, es llevar un archivo paralelo pero que solo guarde índices. En el archivo principal los registros los guardas como llegan, pero en el archivo de índices haces una lista enlazada en archivo. La ventaja es que no tienes que mover grandes volúmenes de datos, solo haces tres escrituras por cada registro nuevo y además puedes reordenar por el campo que quieras.

89
PHP / Re: No puedo usar session
« en: Miércoles 3 de Febrero de 2010, 08:47 »
Busca un archivo que se llama php.ini que suele estar en el directorio de instalación de PHP (C:PHP5 en Windows). Edítalo con un editor de texto plano (Bloc de notas), busca una entrada llamada error_reporting, ésta debe decir:

Código: Text
  1. error_reporting = E_ALL & ~E_DEPRECATED
  2.  

PD: el navegador que estés usando no tiene nada que ver con los errores de PHP.

90
PHP / Re: No puedo usar session
« en: Martes 2 de Febrero de 2010, 03:26 »
Eso que haces en el código no es leer una variable de sesión PHP en JavaScript, es simplemente alterar el código fuente de un script JavaScript (un ejemplo similar a este lo escribí yo aquí hace un par de días viewtopic.php?f=36&t=42095#p152074 ).

Además el código que has puesto saltará en error porque estás llamando a session_start() después de haber enviado algo al cliente.

91
PHP / Re: No puedo usar session
« en: Lunes 1 de Febrero de 2010, 04:29 »
No sé qué has creído que sean las sesiones en PHP pero en JavaScript no se pueden leer variables de sesiones de PHP.

92
PHP / Re: Php siempre usa el servidor?
« en: Domingo 31 de Enero de 2010, 19:55 »
Cita de: "pedroqv"
Por otro lado si me queda muy claro que php se ejecuta totalmente en el servidor lo cual regresa el archivo html ya listo para mostrarse, a mi lo que me preocupa que es a donde quiere llegar mi post, es que a lo mejor una pagina que esta casi 100% programada con html y php vaya a saturar a un servidor o hacerlo mas lento o talvez es dificil que pase algo como eso, en vez de disminuir el uso del servidor usando javascript en las partes que no requiera el servidor,
Vamos, no es para abusar, pero tampoco es para ponerse paranoico :P.

El intérprete PHP tiene sus salvaguardas para evitar código que se vuelve voráz. Por ejemplo, el administrador del servidor configura un tiempo máximo de ejecución, por omisión es de 30 segundos. Esto quiere decir que no puedes colgar el servidor con un ciclo infinito. Otra salvaguarda es la cantidad de memoria que un script puede usar como máximo, si no recuerdo mal ese valor por omisión es de 8 megas, quiere decir que tu script abortará si trata de usar mas de 8 megas al mismo tiempo.

La gran mayoría de los servidores de producción además no usan el código fuente que has escrito siempre. PHP tiene un módulo que primero verifica si el código fuente ha cambiado (o si es nuevo), entonces procede a hacerle una compilación que resulta en un bytecode, ese bytecode es el que se ejecuta, si no ha cambiado entonces busca el bytecode y lo ejecuta. Al ser código precompilado se ejecuta más rápido y eficientemente que si tuviera que reinterpretar una y otra vez el mismo código todas las veces que un cliente lo pide.

Pero tu preocupación es buena y recomendable. Cualquier problema que puedas solucionarlo con JavaScript es mejor hacerlo con JavaScript, pero debes contraponerla con esta otra premisa: nunca confies en los datos que te envía el cliente.
Supongamos que quieres calcular la edad de una persona y la fecha de nacimiento la proporciona el visitante. Evidentemente el cálculo en cuestión es mejor dejárselo a JavaScript (no hay necesidad de "molestar" al servidor con semejante tontería), pero como ese dato debe ser enviado al servidor en algún momento y ese momento y la forma de enviarlo está en manos del cliente, es bueno que cuando llegue al servidor volver a verificar que el dato es correcto. Si el dato viene por GET en una variable llamada "fechanac" nada le impide al usuario escribir en la barra de direcciones algo como esto: http://www.example.com/tuscrip.php?fechanac=quéteimportamifechadenacimiento y eso podría desbaratar tu script si no verificas que "fechanac" contiene un valor que tenga sentido para la operación en la que interviene.

93
PHP / Re: Php siempre usa el servidor?
« en: Domingo 31 de Enero de 2010, 05:19 »
En el modelo cliente-servidor, el servidor no hace nada a menos que el cliente se lo pida.
Lo que el cliente "ve" es el resultado de la ejecución de PHP en el servidor. Ten siempre esto presente. Cuando en tu navegador aparece la página, PHP ya se ejecutó en el servidor. Así que para usar valores de PHP en JavaScript es tan fácil como:
Código: PHP
  1. <script>
  2. var a = <?php echo $a; ?>;
  3. </script>
  4.  
Porque ese echo ya se ejecutó en el servidor.
Si miras el código fuente de la página verás que a la variable a se le asigna una constante (que es el contenido de la variable $a).

Lo contrario es más complicado. Tienes que usar el protocolo HTTP el cual permite la comunicación desde el cliente al servidor mediante peticiones GET o POST. Si quieres pasar un valor generado en JavaScript a PHP, es lo mismo que enviar una petición GET o POST al servidor. La pega en esto es que se te recarga la página. Porque o bién usas un <a href="scriptphp.php?variable=valor"> o bien mediante un submit desde un <form>, o bien directamente con window.open desde JavaScript. Esto se debe a que la comunicación entre cliente y servidor es sincrónica.

Para mejorar esta situación se desarrolló la tecnología AJAX que simula una comunicación asincrónica. AJAX permite que solo una parte de la página actual se actualice sin necesidad de recargar la totalidad de la página. Esta es una alternativa que deberías investigar si quieres realizar sitios "modernos".

94
PHP / Re: Php siempre usa el servidor?
« en: Viernes 29 de Enero de 2010, 18:21 »
En ambiente web PHP siempre se ejecuta en el servidor, todas las operaciones que haces con PHP se ejecutan en el servidor, en otras palabras, estás programando el servidor.

95
PHP / Re: subir archivos
« en: Martes 26 de Enero de 2010, 03:36 »
Cita de: "cesand"
Driver:
 Ah, ah... DriverOp si no te importa.

Cita de: "cesand"
Te agradezco infinitamente el tiempo tu y la respuesta tan dedica..
De nada.

Cita de: "cesand"
no te voy a mentir no pude usar tu codigo qu seguramente esta bien, pero hace poco comence a estudiar php y por lo qu entiendo creaste una funcion propia no?
 Gracias por tu sinceridad. La verdad es que no sabía tu nivel de conocimientos de PHP.

Cita de: "cesand"
lamentablemente no entiendo como trabaja el codigo qu me hiciste y prefio tratar de comprender el mio que hasta vos mismo lo digiste es mas base mas simple digamos, qu decis hago bien?
Por supuesto que haces bien.

Cita de: "cesand"
algo que ayudarme sobre mi codigo u otra forma principiante de hacer lo que quiero que es subir un fotito y mostrarla tenes??
El código que he puesto sirve para eso.

Primero que nada, te recomiendo que apuntes esta dirección: http://es.php.net/ es el sitio oficial de PHP, allí podrás buscar con el buscador cualquier función de PHP. Si no sabes qué hace o no recuerdas la sintaxis de alguna función de PHP búscala allí para aprender más.

96
PHP / Re: subir archivos
« en: Lunes 25 de Enero de 2010, 02:15 »
Ya había visto que el código que usas para validar el tipo de archivo es muy inseguro, podemos hablar de ello luego.

Deberías dividir la validación del archivo en dos. Primero validar que sea un tipo válido y luego si el tamaño es el correcto. Sugiero este código:

[php:2zmspaf5]
  1.  
  2. $thesefiles = Array("gif","jpg","jpeg");
  3.  
  4. function getFileExtension($str) {
  5.    $i = strrpos($str,".");
  6.    if (!$i) { return ""; }
  7.    $l = strlen($str) - $i;
  8.    $ext = substr($str,$i+1,$l);
  9.    return $ext;
  10. } // getFileExtension
  11.  
  12.  
  13. $nombre_archivo=$_FILES['userfile']['name'];
  14. $temporal = $_FILES['userfile']['tmp_name'];
  15. $tamano_archivo=$_FILES['userfile']['size'];
  16. $msgerr = Array();
  17.  
  18. if (!in_array(getFileExtension($nombre_archivo),$thesefiles)) {
  19.   $msgerr[] = "El tipo de archivo es inválido.";
  20. }
  21. if ($tamano_archivo > 10000) {
  22.   $msgerr[] = "El archivo es demasiado grande.";
  23. }
  24. if (empty($msgerr)) { // no hay error
  25.   if (copy($temporal,"subidos/".$nombre_archivo)) {
  26.     $msgerr[] = "Archivo subido con éxito.";
  27.   else { $msgerr[] = "Error al copiar el archivo."; }
  28. }
  29. echo "<ul>";
  30. foreach($msgerr as $key => $value) {
  31.   echo "<li>".$value;
  32. }
  33. echo "</ul>";
  34.  
[/php:2zmspaf5]

Aquí puedes saber qué condición es la que no se está compliendo.
"subidos" es el directorio donde quedarán los archivos subidos por los usuarios, cámbialo por lo que consideres necesario.

97
Pascal / Re: carga de archivos, solo me valida rutas en C y las demas no?
« en: Domingo 24 de Enero de 2010, 14:42 »
Me temo que no va a funcionar. Las rutas deben estar en el formato que acepta el SO.

98
PHP / Re: subir archivos
« en: Domingo 24 de Enero de 2010, 05:44 »
¿Aparece algún mensaje de error o qué es lo que pasa?

99
Pascal / Re: carga de archivos, solo me valida rutas en C y las demas no?
« en: Domingo 24 de Enero de 2010, 05:40 »
¿Pero y qué valores tienen esas variables?

100
Pascal / Re: carga de archivos, solo me valida rutas en C y las demas no?
« en: Sábado 23 de Enero de 2010, 05:27 »
Dev Pascal es un entorno de desarrollo, en el fondo usa Free Pascal. Por las dudas me lo he bajado e instalado. He copiado el código que has puesto y no tuve problemas en leer cualquier archivo en cualquier lugar del disco, justo como esperaba de Free Pascal ya que FP sí puede leer nombres de archivos (y directorios) largos.

¿Cómo estás llamando a la función en el cuerpo principal?

Páginas: 1 2 3 [4] 5 6 ... 9