Foros del Web » Programando para Internet » PHP »

FAQ's de PHP

Estas en el tema de FAQ's de PHP en el foro de PHP en Foros del Web. una medio repetida pero nunca demas Pregunta:Sesiones: Que y Para que? -Respuesta: Las sesiones basicamente son varibles globales que nos permiten almacenar datos que necesiten ...

  #121 (permalink)  
Antiguo 07/11/2004, 17:44
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
una medio repetida pero nunca demas

Pregunta:Sesiones: Que y Para que?

-Respuesta: Las sesiones basicamente son varibles globales que nos permiten almacenar datos que necesiten volver a ser usados en otros accesos a la pagina. Cuando una persona entra a una pagina que utiliza sesiones automaticamente se crea un archivo de session en los archivos temporales del servidor y en este archivo es donde se guardan los datos que nosotros deseemos almecenar.
Para poder manejar las sesiones seria conveniente primero ver la manera que accedemos a estas y las usamos.
Como dijimos antes cuando el usuario entra a la pagina que usa sesiones se crea un archivo, este archivo posee el mismo nombre que su "id".
Para que una pagina utilice sesiones debemos inicializarla con la funcion "session_start(void)",que basicamente lo que hace es crear una nueva sesion o retomar una creada en otra pagina(del sitio). Las sessiones propagan su SID(SESSION ID) de dos posibles maneras, segun php.ini, por cookies o por url, es decir agregando a todos los posibles link el SID de la sesion.
Otra razon por la que la sesiones suelen ser muy utilizadas es para la "autentificacion", determinando el acceso a la pagina segun alguna variable especifica de la sesion.
Creemos dos archivos utiles para la explicacion:
-index.php
Código PHP:
<?php 
session_start
();
?>
<html>
<head>
<title>Las sesiones y Yo(Nefertiter)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?php
if(isset($_POST['enviar'])){
if(empty(
$_POST['usuario']) || empty($_POST['password']))
echo 
'Debes llenar todos los datos'
elseif(
$_POST['usuario']==test and $_POST['password']==test){
$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['password']=$_POST['password']; 
echo 
'Te haz loguedo como '.$_SESSION['usuario'];
}
}
?></td>
<td rowspan="2"><form name="login" method="post" action="index.php">
<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Usuario:</td>
<td><input name="usuario" type="text" id="usuario"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr align="center">
<td colspan="2"><input name="enviar" type="submit" id="enviar" value="Enviar"></td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td><a href="segura.php">PAGINA SEGURA</a></td>
</tr>
</table>
</body>
</html>
-segura.php
Código PHP:
<?php 
session_start
();
if(!empty(
$_SESSION['usuario'])){
/* La funcion empty() devuelve verdadero si el argumento posee un valor vacio,
al usar !empty() devuelve verdadero no solo si la variable fue declarada sino 
ademas si contiene algun valor no nulo.
*/
echo 'Te haz logueado como :'.$_SESSION['usuario'];
echo 
'Haz logrado el acceso a una pagina segura';
}else{
echo 
'No estas logueado<br>';
echo 
'Esta pagina es restringida!';
}
?>
Como hemos visto es sumamente simple la manera que en las variables de sesiones son establecidas puesto que se las trabaja como variables comunes, ahora creemos otro archivo,en el que mostraremos como eliminarlas.
-logout.php
Código PHP:
<?php 
unset($_SESSION['usuario']);
unset(
$_SESSION['password']);
/* la funcion unset() destruye la varible que se le de como argumento*/
echo "Ya no te encuentras logueado"
?>
-Otras funciones
PHP no se limita solamente a una funcion en lo que a sesiones respecta. Tambien poseemos otras como "session_name()", que nos permiten darle algun nombre en especial a la session, "session_id()", que nos devuelve el id de la session y en caso de introducir un argumento la reemplaza. Tambien poseemos otra funcion llamada "session_cache_limiter()" que nos sirve para averiguar el limitador de cache actual, existen 3 modos: "nocache", "public" y "private"; cada una de estas posee una manera determinada de manejar la caducidad de las variables de sesion que se envian al navegador. Un detalle tanto "session_name()" como "session_cache_limiter()" deben ser declarados antes que "session_start()". Un ultimo ejemplo:

-sessions.settings.php
Código PHP:
<?php
session_name 
("recursofaqs");
session_cache_limiter ("private");
session_start(); 
echo 
"<br> El nombre de la sesion es: ".session_name();
echo 
"<br> El limitador de la sesion es: ".session_cache_limiter();
echo 
"<br> El id de la sesion es: "session_id();
?>
Bueno con este ultimo humilde ejemplo damos por finalizada la FAQ sobre sesiones

Última edición por Nefertiter; 07/11/2004 a las 17:48
  #122 (permalink)  
Antiguo 22/11/2004, 03:26
Avatar de San Lorenzo  
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 19 años, 4 meses
Puntos: 0
Como Saber Si Me Visita Un Robot O Bot

Código PHP:
<?php

// Lista de robots

$robot[] = "googlebot";
$robot[] = "msnbot";
$robot[] = "overture";
$robot[] = "lycos";
$robot[] = "seek";
$robot[] = "inktomi";
$robot[] = "yahoo";
$robot[] = "altavista";
$robot[] = "alexa";
$robot[] = "crawler";

foreach(
$robot as $bot){

    if(
eregi($bot$HTTP_USER_AGENT)){

        echo 
"me esta visitando un bot: " $bot;

        
// puedes enviarte un mail para avisarte que te a visitado un robot

        
$destino "[email protected]";

        
$asunto "Me visito un robot";

        
$mensaje "Este robot: " $bot " me ha visitado mi pagina web";

        
$cabecera "From: webmaster@" $SERVER_NAME;

        
mail($destino$asunto"me visito: $bot"$cabecera);

    }

}

?>
Espero que les sea de utilidad
__________________
Favor de Revisar Politicas de FDW seccion firmas de usuario
  #123 (permalink)  
Antiguo 27/11/2004, 03:57
Avatar de San Lorenzo  
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 19 años, 4 meses
Puntos: 0
¿Saber saber quien nos linkea?

Por medio de la variable $HTTP_REFERER

El codigo a continuacion guarda las datos en un archivo (referer.log).

Código PHP:
<?php

if(isset($HTTP_REFERER)){

    if(!
eregi($HTTP_HOST$HTTP_REFERER)){

        
$fp fopen("referer.log""a");

        
$referer .= "URL: " $HTTP_REFERER "\n";
        
$referer .= "---------------------------------------------------------------------------\n";

        
fwrite($fp$referer);

        
fclose($fp);

    }

}

?>
Espero que les sea de utilidad.
__________________
Favor de Revisar Politicas de FDW seccion firmas de usuario
  #124 (permalink)  
Antiguo 08/12/2004, 09:23
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Tema: Mostrando resultados
Pregunta: ¿Cómo convertir los saltos de lineas invisibles por <br> en el código?
Respuesta:

Muy util cuando tenemos un texto que viene de un <textarea> o quizás cuando tenemos texto en nuestras bases de datos separados por ENTERs y queremos que se muestren igual en HTML.

Existen 2 formas de hacer esto:

Forma 1:
Código PHP:
$texto=str_replace(Chr(13), "<br />"$texto); 
Forma 2:
Código PHP:
$texto=nl2br($texto); 
Cualquiera es totalmente válida, es cuestión de gustos. Oviamente, nl2br() es una función específicamente diseñada para realizar ese trabajo, por lo tanto es recomendado usarla.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.

Última edición por Takitei; 10/12/2004 a las 08:21
  #125 (permalink)  
Antiguo 08/12/2004, 20:50
 
Fecha de Ingreso: diciembre-2004
Mensajes: 5
Antigüedad: 19 años, 4 meses
Puntos: 1
Y bueno aqui estoi, voi a enseñarles a REgistrar usuarios en la Base de datos y logearlos!.
Aqui vamos :D.
Archivos necesarios:
- Conexion.inc.php
- Registrarse.php
- Registrado.php
- Logearse.php
- Logeado.php

--------------------------------------------------------------------------
Conexion.inc.php:
<?
$conn;
function conectar()
{
global $conn
$conn = mysql_connect("host","user","passwd") or die (mysql_error());
mysql_select_db("db",$conn) or die (mysql_error());
}
function desconectar() {
mysql_close($conn);
}
?>
Terminamos el conexion.inc.php.
--------------------------------------------------------------------------
Registrarse.php
Este es super simple, creamos 3 campos de texto
Usuario
Passwd
Mail
y a los campos les damos esos nombres
osea:
Usuario = $Usuario
Passwd = $Passwd
Mail = $Mail.
y hacemos un formulario! y al boton Submit le llamamos enviar.
Terminamos el Registrarce.php
--------------------------------------------------------------------------
Registrado.php
<?
requiere("Conexion.inc.php");
conectar()
if(isset($enviar))
{
mysql_query("INSERT INTO mi_base_de_datos (usuario,passw,mail) VALUE ('$Usuario', '$Passwd', '$Mail')");
echo "Registro Exitoso! Usuario: $Usuario Mail: $Mail";
}
?>
Terminamos el Registrado.php
--------------------------------------------------------------------------
Logearse.php
Este es super Simple es igual que el registrarse.php solo que aqui
hacemos 2 campos de Txt Usuario y Passwd ($Usuario y $Passwd)
y el boton Submit = enviar.
Terminamos el Logearse.php
--------------------------------------------------------------------------Logeado.php
<?
requiere("Conexion.inc.php");
conectar()
if(isset($enviar))
{
$a = mysql_quey("SELECT user, passwd FROM mi_base_de_datos WHERE user='$Usuario' AND passwd='$Passwd'",$conn);
if(mysql_num_rows($a) == 1) {
echo "Estas Registrado! Bienvenido $Usuario";
}
else {
echo "Error de Usuario Y/o Contraseña";
}
?>
Terminamos el Tutorial XD.
Ojo
$a = mysql_quey("SELECT user, passwd FROM mi_base_de_datos WHERE user='$Usuario' AND passwd='$Passwd'",$conn);
user, passwd fueron los nombres que le puse a los campos en la base de datos!! si uds les ponen a a usuario y b a passwd pos..remplazan!

Atte Dark_Fox ( www.teamcarrete.cl ) Cualquier duda me avisan!.
  #126 (permalink)  
Antiguo 11/12/2004, 21:43
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Tema: Tips & Tricks
Pregunta: ¿Cómo reemplazar palabras de una cadena?
Respuesta:

Como bien sabemos, tenemos la función str_replace(), muy útil para reemplazos sencillos. Pero cuando necesitamos de más complejidad, debemos recurrir a las expresiones regulares.

Supongamos que tenemos la siguiente cadena:

"Esta es la formacion del ion"

Y queremos reemplazar la palabra "ion" por "anion". Si usamos str_replace() obtendremos algo asi:

"Esta es la formacanion del anion"

Para que eso no ocurra, debemos aplicar preg_replace() con la siguiente expresión regular:

Código PHP:
$resultado preg_replace("/\bion(s)?\b/i""anion""Esta es la formacion del ion"); 
Y obtendremos lo que buscamos:

"Esta es la formacion del anion"

NOTA: La "i" que se encuentra después del slash indica "case insensitive".
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #127 (permalink)  
Antiguo 06/01/2005, 01:14
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 9 meses
Puntos: 53
Tema: Funciones

Pregunta: Como puedo optener la IP del Cliente??

Respuesta : Usa este algoritmo!!

Código PHP:
function Saber_IP(){
        if(
getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")){
                 
$ip getenv("HTTP_CLIENT_IP");
        }
           elseif(
getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){
               
$ip getenv("HTTP_X_FORWARDED_FOR");
           }
           elseif(
getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")){
               
$ip getenv("REMOTE_ADDR");
           }
           elseif(isset(
$_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){

               
$ip $_SERVER['REMOTE_ADDR'];
           }
           else {
               
$ip "Unknown";
           }
          return 
$ip;
    }

//La forma para usarse es asi:

$IP Saber_Ip();

echo 
"Tu IP es: ".$IP

Última edición por stock; 07/01/2005 a las 18:16
  #128 (permalink)  
Antiguo 10/01/2005, 13:02
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Tema: E-mails
Pregunta: ¿Cómo ocultar mi e-mail de contacto para evitar SPAM?
Respuesta:

Todos luchamos contra el SPAM. Si colocamos nuestro e-mail en nuestro sitio web para que los visitantes nos contacten... algún bot o crawler tomará nuestro correo para enviarnos basura.

Se me ocurrió una idea muy sencilla, y muy eficaz al mismo tiempo. Para ello comenzaremos creando un archivo llamado "contacto.php" el cual contendrá el siguiente código:

Código PHP:
<?php
echo '<meta http-equiv="Refresh" content="0;url=index.php">';
header('Location: mailto:[email protected]');
?>
Luego... en lugar de hacer un vínculo a nuestro e-mail, lo haremos a:

<a href="contacto.php">Contáctenos</a>

Tan sencillo como eso. Cuando el visitante de clic, se abrirá la famosa ventanita para enviar un correo, bien sea de Outlook, Thunderbird, etc.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #129 (permalink)  
Antiguo 10/01/2005, 13:15
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Tema: Tips & Tricks
Pregunta: ¿Cómo crear etiquetas personalizadas para nuestra web?
Respuesta:

En algunas ocasiones nos preguntamos... ¿cómo hacer para resumir una etiqueta... <a href... bla bla bla... o una <img src="......?

Si usamos bases de datos, lo mejor será crear alguna etiqueta personalizada asi como la que usan estos foros, para no tener que usar código HTML directo. Esto es muy sencillo. Primeramente creamos un archivo que procesará nuestras etiquetas asi:

Código PHP:
//esta linea convierte las etiquetas [img]
$texto=preg_replace("`\[img](.*)?\[/img\]`is","<img src=\"$1\" />",$texto);

//esta linea convierte las etiquetas [url]
$texto=preg_replace("`\[url=(.*)?\](.*)?\[/url\]`is"'<a href="$1">$2</a>'$texto);

//$texto es la variable que contiene nuestro texto junto con las etiquetas, puede provenir de una base de datos o algo asi. 
Ahora... cada que almacenemos algo en nuestra BD, podremos insertar imágenes o vínculos con solo aplicar las siguientes etiquetas:

[img]url de la imagen[/img]

[url=vinculo]nombre del vinculo[/url ]

PHP se encargará de convertirlas a código HTML válido. Suerte!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.

Última edición por Takitei; 10/01/2005 a las 13:16
  #130 (permalink)  
Antiguo 16/01/2005, 10:43
 
Fecha de Ingreso: noviembre-2003
Mensajes: 798
Antigüedad: 20 años, 4 meses
Puntos: 8
¿Cómo puedo mostrar en un formulario select valores de un directorio?

Tema: Formularios
Créditos: Zsamer
Pregunta: ¿Cómo puedo mostrar en un formulario select valores de un directorio?
Respuesta:

Código PHP:
<?php
$content 
.=  "</br>";
$content .=  "<center>";
$content .=  "<form action=\"skins.php\" method=\"post\">";
$content .=  "<select name=\"skins\">";
$handle=opendir('skins');
while (
$file readdir($handle)) {
    if ( (!
ereg("[.]",$file)) ) {
            
$themelist .= "$file ";
    }
}
closedir($handle);
$themelist explode(" "$themelist);
sort($themelist);
for (
$i=0$i sizeof($themelist); $i++) {
        if(
$themelist[$i]!="") {
            
$content .=  "<option value=\"$themelist[$i]\" ";
        if(((
$userinfo[theme]=="") && ($themelist[$i]=="$Default_Theme")) || ($userinfo[theme]==$themelist[$i])) $content .=  "selected";
        
$content .=  ">$themelist[$i]\n";
        
    }}
$content .=  "</option>";
$content .=  "</select>";    
$content .=  "</br>";
$content .=  "</br>";
$content .=  "<input type=\"submit\" value=\"Cambiar\">";
$content .=  "</form>";
echo 
$content
?>
  #131 (permalink)  
Antiguo 27/01/2005, 18:47
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Manejando archivos multiples con generacion ilimitada

TEMA: Manejo de Archivos Múltiples ilimitado.

PREGUNTA: ¿Cómo hago para subir mas de 1 archivo, o talvez las cantidad que yo desee sin limitaciones?

RESPUESTA:

Código PHP:
<form action="" method="post" enctype="multipart/form-data" name="form1">
      Cantidad: <select name="cantidad">
                    <script type="text/javascript">
                    for(x=1;x<=10;x++){
                    document.write("<option value="+ x +">"+ x+"</option>");
                    }
                    </script>
      </select>
      <input type="submit" name="Submit" value="Submit"><br>
      

<?php    
 $uploaddir
=$_SERVER['DOCUMENT_ROOT']."/upload/imagenes/";

if(isset(
$_POST['Submit'])){
        echo 
"Elegir Im&aacute;genes para Subir<br>";
            for(
$i=1;$i<=$_POST['cantidad'];++$i){
                echo 
"<input type=\"file\" name=\"archivo[]\"><br>";
            }
        echo 
"<input type=\"submit\" name=\"Submit2\" value=\"Submit2\">";
        echo 
"<input type=\"hidden\" name=\"cant1\" value=\"$i\">";
    }
    
    if(isset(
$_POST['Submit2'])){
        
$cantidad2 =count($_FILES["archivo"]);
        for (
$j=0;$j<=$cantidad2;$j++){
                
$archivo $_FILES["archivo"]["tmp_name"][$j]; 
                
$tamanio $_FILES["archivo"]["size"][$j];
                
$tipo    $_FILES["archivo"]["type"][$j];
                
$nombre  $_FILES["archivo"]["name"][$j];

                    
$x=$j;
             do{
             
$x++;
                if( 
$archivo != "" ){
                           
$fp fopen($archivo"rb");
                           
$contenido fread($fp$tamanio);
                           
$contenido addslashes($contenido);
                           
fclose($fp);
                           
//AQUI  INSERTE EN LA BASE DE DATOS
                           
                           
if(copy($archivo$uploaddir.$nombre))
                                {
                                   echo 
$nombre." Subido con Exito<br>";
                                }
                           }
                        }while(
$x<$j);
             }
        }
        
?>
</form>
Espero que sea de ayuda
__________________
www.dataautos.com

Última edición por asinox; 12/12/2007 a las 14:52
  #132 (permalink)  
Antiguo 18/02/2005, 16:47
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
El abc de crear una imagen Espectacular.

No se tu, pero cuando me pille esto en el manual de PHP, (buscando por imagecolorallocatealpha), quede anonadado, correlo, (y estudialo), solo necesitas tener la libreria GD, la imagen se crea TODA con estas lineas, nada de includes ni otras librerias:

Código PHP:
<?php
$size 
300;
$image=imagecreatetruecolor($size$size);

// something to get a white background with black border
$back imagecolorallocate($image255255255);
$border imagecolorallocate($image000);
imagefilledrectangle($image00$size 1$size 1$back);
imagerectangle($image00$size 1$size 1$border);

$yellow_x 100;
$yellow_y 75;
$red_x    120;
$red_y    165
$blue_x   187;
$blue_y   125
$radius   150;

// allocate colors with alpha values
$yellow imagecolorallocatealpha($image255255075);
$red    imagecolorallocatealpha($image2550075);
$blue   imagecolorallocatealpha($image0025575);

// drawing 3 overlapped circle
imagefilledellipse($image$yellow_x$yellow_y$radius$radius$yellow);
imagefilledellipse($image$red_x$red_y$radius$radius$red);   
imagefilledellipse($image$blue_x$blue_y$radius$radius$blue);

// don't forget to output a correct header!
header('Content-type: image/png');

// and finally, output the result
imagepng($image);
imagedestroy($image);
?>
Hermoso, verdad?.

Salu2!.
  #133 (permalink)  
Antiguo 23/02/2005, 16:19
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
Libreria GD

Utilizando GD para crear Efectos Dinámico parte 1


Pregunta : Como hago para crear bordes a mis imágenes?

Respuesta : Es bastante simple pero para el que no sabe nada...primero un repasito por lo basico :P
para crear una imagen nueva dinamicamente, sin contenido y mostrarla

Código PHP:
<?php
  header
("Content-type: image/png");
  
//definimos el tamaño de la imagen
  
$alto 60;
  
$ancho 150;
  
$im imagecreatetruecolor($ancho,$alto);
  
$white imagecolorallocate($im255,255,255);
  
imagefill($im,0,0,$white);  
imagepng ($im);
imagedestroy($im);
?>
Por ejemplo si quisieramos usar una imagen ya existente

Código PHP:
<?php
  header
("Content-type: image/png");
  
//definimos el tamaño de la imagen
  
$archivo "imagen.png";   
  
$im imagecreatefrompng  ($archivo);
   
imagepng ($im);
  
imagedestroy($im);
  
?>
Es bastante facil en el siguiente ejemplo usare la funcion line y dibujare una imagen nueva

Código PHP:
<?php
  header
("Content-type: image/png");
  
//definimos el tamaño de la imagen
  
$alto 60;
  
$ancho 150;
  
$im imagecreatetruecolor($ancho,$alto);
  
//definimos algunos colores
  
$grey imagecolorallocate($im107,107,107);
  
$white imagecolorallocate($im255,255,255);
  
//creamos un primer fondo liso
  
imagefill($im,0,0,$white);
  
//creamos los bordes
  
imageline($im0,0$ancho0,$grey);
  
imageline($im$ancho-1,0$ancho-1$alto$grey);
  
imageline($im0$alto-$ancho$alto-1$grey);
  
imageline($im0,$alto00,$grey);
  
//realizamos la salida al navegador 
  
imagepng ($im);
  
imagedestroy($im);
  
?>
Ahora veremos como hacerlo con un borde "doble"

Código PHP:
<?php
  header
("Content-type: image/png");
  
//definimos el tamaño de la imagen
  
$alto 60;
  
$ancho 150;
  
$im imagecreatetruecolor($ancho,$alto);
  
//definimos algunos colores
  
$grey imagecolorallocate($im107,107,107);
  
$white imagecolorallocate($im255,255,255);
  
//creamos un primer fondo liso
  
imagefill($im,0,0,$white);
  
//creamos los bordes
  
imageline($im0,0$ancho0,$grey);
  
imageline($im$ancho-1,0$ancho-1$alto$grey);
  
imageline($im0$alto-$ancho$alto-1$grey);
  
imageline($im0,$alto00,$grey);
// bordes internos
imageline($im2,2$ancho-32,$grey);
imageline($im$ancho-3,2$ancho-3$alto-3$grey);
imageline($im2$alto-$ancho-3$alto-3$grey);
imageline($im2,$alto-322,$grey);

//realizamos la salida al navegador 
imagepng ($im);
imagedestroy($im);
?>
Como crear un borde con trazo no continuo (Ej: "- - - - - -")?
si bien existe una funciona llamada imagedashedline definiendo styles es mucho mejor.
Código PHP:
<?php
  header
("Content-type: image/png");
  
//definimos el tamaño de la imagen
  
$alto 60;
  
$ancho 150;
  
$im imagecreatetruecolor($ancho,$alto);
  
//definimos algunos colores
  
$grey imagecolorallocate($im107,107,107);
  
$white imagecolorallocate($im255,255,255);
  
//creamos un primer fondo liso
  
imagefill($im,0,0,$white);
  
/*
  cada color es un pixel esto dara una linea punteada de 4 pixeles grises y 4 pixeles blancos
  */
  
$style = array($grey,$grey$grey$grey$white$white$white$white);
  
imagesetstyle($im$style);  
  
//creamos los bordes
  
imageline($im0,0$ancho0,IMG_COLOR_STYLED);
  
imageline($im$ancho-1,0$ancho-1$altoIMG_COLOR_STYLED);
  
imageline($im0$alto-$ancho$alto-1IMG_COLOR_STYLED);
  
imageline($im0,$alto00,IMG_COLOR_STYLED);
//realizamos la salida al navegador 
imagepng ($im);
imagedestroy($im);
?>

Última edición por Nefertiter; 23/02/2005 a las 16:31
  #134 (permalink)  
Antiguo 18/03/2005, 11:38
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
Sonrisa Utilizando GD para crear Efectos Dinámico PARTE 2 - Fondos

Como logro crear un fondo en degradado lineal?

Si hablamos de un fondo en degradado lineal, la respuesta es bastante simple, podemos usar el metodo line y dibujar lineas con los colores que deseemos.
Estos primeros ejemplos nos serviran para ver como podes definir colores



Código PHP:
<?php
header
("Content-type:  image/png");
//definimos el tamaño de la  imagen
$alto 60;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
//definimos un color usando  imagecolorallocate 
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i 0$i $alto+$i  ++){ 
/*
int imageline ( int im,  int x1, int y1, int x2, int y2, int col) 
*/ 
imageline($im0$i$ancho$i,  imagecolorallocate($im255 -  $r,255 $g ,255 -$b) ); 
$r += 3;
$g += 3;
$b += 3;

imagepng ($im);
imagedestroy($im);
?>
Ahora simplemente cambiando la manera en que los r,g,b aumentan podemos conserguir "colores" como azules por ejemplo o aleatorios
Para obtener azules:



Código PHP:
<?php
header
("Content-type:  image/png");
$alto 60;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i 0$i $alto+$i  ++){ 
imageline($im0$i,  $ancho$iimagecolorallocate($im255 $r,255 $g ,255 -$b) ); 
if(
$r 255$r  += 3;
if(
$g 255)  $g += 2;
if(
$b 255$b += 1;

imagepng ($im);
imagedestroy($im);
?>
Para conseguir aleatorios :

Código PHP:
<?php
header
("Content-type:  image/png");
$alto 60;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i 0$i $alto +1$i  ++){ 
imageline($im0$i,  $ancho$iimagecolorallocate($im255 $r,255 $g ,255 -$b) ); 
/*
int rand ( [int min [, int max]]) 
*/  
if($r 255)  $r += Rand(0,5);
if(
$g <  255$g += Rand(0,5);
if(
$b <  255$b += Rand(0,5);

imagepng ($im);
imagedestroy($im);
?>
desde ya que pueden utilizar otras maneras para obtener colores aleatorios otra opcion viendo los dos codigos anteriores es poner un rand (0,4), rand (0,3) y rand (0,2) y de esa manera obtener variantes en un color mas determinado.

Como crear un degradado lineal inclinado?

Código PHP:
<?php
header
("Content-type:  image/png");
$alto 60;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i = -($alto0.5) ; $i $alto *  1.5 $i ++){ 
imageline($im0$i$ancho$i $alto/imagecolorallocate($im255 -  $r,255 $g ,255 -$b) ); 
if(
$r 255$r += 1;
if(
$g 255$g  += 1;
if(
$b 255)  $b += 2;

imagepng  ($im);
imagedestroy($im);
?>
Como realizar un degradado circular?

La manera mas facil sin duda seria poner un serie de circulos concentricos haciendo variar el color de cada uno, para eso tenemos la funcion imagefilledellipse que nos permite crear elipces

Código PHP:
<?php
header
("Content-type:  image/png");
$alto 150;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i $i < ($ancho 2) ; $i  ++){
$radio = ($ancho  /2) - $i;
/*
bool  imagefilledellipse ( resource image, int cx, int cy, int w, int  h, int color)
*/ 
imagefilledellipse($im$ancho /2$alto /$radio$radio,imagecolorallocate($im255 $r255 $g,  255 -$b));
if(
$r <  255$r += 3;
if(
$g 255$g  += 2;
if(
$b 255)  $b += 1;

imagepng  ($im);
imagedestroy($im);
?>
a notar que todos los circulos son concentricos si esto variara podemos obtener un efecto muy "divertido" y usando colores alpha podriamos observas las superpocisiones



Código PHP:
<?php
header
("Content-type:  image/png");
$alto 150;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i $i < ($ancho 2) ; $i  ++){
$radio = ($ancho  /2) - $i;
/*definimos un  color usando imagecolorallocatealpha , que es exactamente igual a  imagecolorallocate 
salvo que recibe un parametro extra que representa su  transparencia */
imagefilledellipse($imrand(20,$ancho), rand(20,$alto) , $radio$radio,imagecolorallocatealpha($im255 $r255 $g255 -$b,75));
if(
$r 255$r  += 3;
if(
$g <  255$g += 2;
if(
$b 255$b  += 1;

imagepng ($im);
imagedestroy($im);
?>
De manera muy similar a lo anterior se puede responder a la pregunta de como hacer un degradado cuadrado, y seria poniendo un seria de cuadrados concentricos y ir cambiandolos de color y para esto tenemos imagerectangle






Código PHP:
<?php
header
("Content-type:  image/png");
$alto 150;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i $i $ancho $i  ++){
/*
int imagerectangle ( int  im, int x1, int y1, int x2, int y2, int col) 
dibuja los bordes de un  rectangulo con coordenas de diagoan x1,y1 - x2y, y2 
*/ 
imagerectangle ($im$i ,$i $ancho $i ,  $alto $iimagecolorallocate($im255 $r,  255 $g255 -$b));
if(
$i == 0$r  += 3;
if(
$i == 0)  $g += 2;
if(
$b 255$b += 1;

imagepng ($im);
imagedestroy($im);
?>
Si quisieramos volver a hacer ese efecto "divertido" que usamos con los circulos tendriamos que usar imagefilledrectangle algo asi

Código PHP:
<?php
header
("Content-type:  image/png");
$alto 150;
$ancho 150;
$im imagecreatetruecolor($ancho,$alto);
$white imagecolorallocate($im255,255,255);
imagefill($im,0,0,$white);
for (
$i  $i $ancho $i ++){
/*
int  imagefilledrectangle ( int im, int x1, int y1, int x2, int y2,  int col) 
*/ 
imagefilledrectangle ($imrand(0,$ancho-50) ,rand(0,$ancho-50) , rand(30,$ancho) ,rand(30,$ancho), imagecolorallocatealpha($im255 $r255 $g255 -$b,90));
if(
$i == 0$r  += 3;
if(
$i == 0)  $g += 2;
if(
$b 255$b += 1;

imagepng ($im);
imagedestroy($im);
?>


nos quedaria pendiente como realizar fondo en degradado conicos

Última edición por Nefertiter; 18/03/2005 a las 11:41
  #135 (permalink)  
Antiguo 28/04/2005, 15:50
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
De acuerdo Como enviar mail desde localhost sin servidor smtp local

Para este fin utilizamos la clase phpmailer combinada con una funcion que adaptamos para que esta funcion sea nuestra nueva funcion de envio de email y asi no usar mail().

Debemos tomar en cuenta que se requiere la carpeta include que tiene las clases php mailer que las pueden bajar de aqui:
http://phpmailer.sourceforge.net/

La funcion se encarga de llamar por require a las clases desde esta estructura que puede ser cambiada dependiendo a la carpeta donde este ubicado el script que usara esta funcion.
Código HTML:
Estructura
./includes
./includes/class.phpmailer.php
./enviarmail.php
./functionmail.php
La funcion se le debe editar el smtp host, usuario y password que deben ser una cuenta de smtp real.

Código PHP:
function SendMAIL($para,$subject,$body,$altbody,$mailFROM,$mailNameCompany){
require 
"includes/class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir "includes/";
$mail->Mailer "smtp";
$mail->Host "mail.servicioweb.net"# Editar el Host smtp
$mail->SMTPAuth true;
$mail->Username "usuario"# editar el usuario
$mail->Password "password"# Editar el password
$mail->From $mailFROM;
$mail->FromName $mailNameCompany;
$mail->Subject $subject;
$email $para;
$body $body;

$mail->Body $body;
$mail->AltBody $altbody;
$mail->Timeout=20;
$mail->AddAddress($email);
$exito $mail->Send();
     
$intentos=1
       while((!
$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
       
sleep(5);
            
$exito $mail->Send();
            
$intentos=$intentos+1;                
       }
    
    if (
$mail->ErrorInfo=="SMTP Error: Data not accepted") {
       
$exito=true;
        }
return 
$exito;

Los valores que se le deben agregar son:
SendMAIL($para,$subject,$body,$altbody,$mailFROM,$ mailNameCompany)
$para = la persona a la que se le envia
$subject = Titulo del email
$body = Email con html
$altbody = aqui el email pero en solo texto, es bueno llenar las dos opciones porque si el webmail que ve el email no acepta html podra ver el email en formato texto.
$mailFROM = aqui el email de quien envia
$mailNameCompany = aqui el nombre de la persona que envia o de la empresa.

Y para usarla solo se emplea asi, se le puede colocar un if para verificar si el envio se hizo correctamente:
Código PHP:
<?php
$para 
"[email protected]";
$subject "Mensaje de Prueba";
$body "<font color=red>Hola esto es una prueba</font>";
$altbody "Hola esto es un mensaje de prueba";
$mailNameCompany "Mi Nombre";
if(
SendMAIL($para,$subject,$body,$altbody,$mailFROM,$mailNameCompany)){
 echo 
"Se envio correctamente";
}
else{
 echo 
"No se envio";
}
?>
Saludos,
By dwaks.

Última edición por dwaks; 07/05/2005 a las 10:33
  #136 (permalink)  
Antiguo 06/05/2005, 11:59
Avatar de dwaks  
Fecha de Ingreso: agosto-2002
Ubicación: Panamá
Mensajes: 962
Antigüedad: 21 años, 8 meses
Puntos: 15
Información Como Paginar Registros de una base de datos.

Bueno aqui coloco un script que hize para manejar los registros y mostrarlos de forma ordenada una cantidad x de registros por paginas que usted le dara el valor necesario.

Quiero explicar como fue la estructura y como trabaja, para paginar registros es necesario saber:
1- cuantos registros se desean mostrar
2- cuantos registros mostrar por pagina
3- desde donde se mostraran los registros(aqui me baso en saber si va a iniciar a mostrar en la pagina 2 del registro 5 hasta el 10 ya que la pagina 1 muestra del 1 al 5)

Con estos datos obtenidos y estructurados se obtienen los resultados deseados.

EL SCRIPT:
Código PHP:
<?php
########################################################
## PAGINAR REGISTROS
## POR: Marco A. Castillo
## EMAIL: [email protected]
########################################################

# Funcion para conectar a la base de datos
function conectar($host,$user,$pass,$db){
$link = @mysql_connect($host,$user,$pass) or die("Error Conectando a la Base de datos");
@
mysql_select_db($db,$link) or die("Error Seleccionando base de datos.");
return 
$link;
}

$host "localhost";
$user "root";
$pass "";
$db "directorio";

# Se crea la variable $link que es para identificar la coneccion
# a la base de datos
$link conectar($host,$user,$pass,$db);

# aqui colocan la tabla que se utilizara para
# extraer los registros y paginarlos
$tabla "licencias";

# aqui se extrae la cantidad de registros totales
$rsC mysql_query("Select count(*) from ".$tabla);
$resultC mysql_fetch_array($rsC);
$count $resultC[0];

# Aqui se pone la cantidad de registros por pagina
# que se quieren mostrar
$hasta 2;

if(
$pag==""){
 
$desde 0;
 
$pag 1;    
}
else{
 
$pag $_GET["pag"];
 
$pagS $pag 1;
 
$desde $hasta $pagS;    
}

$rs mysql_query("select * from ".$tabla." limit $desde,$hasta");
if(
$count!=0){
 while(
$result=mysql_fetch_array($rs)){
  
# Aqui colocan su tabla html y sus datos a mostrar
  # solo se usa el array $result[""] y entre comillas
  # el nombre de la celda a mostrar.
  
echo $result["licencia"]."<br>\n";    
  
# fin del despliegue personalizado.
 
}
}
else{
 echo 
"No tenemos registros.";    
}
mysql_close($link);

# aqui se llama a la funcion que muestra los links por paginas
# la variable $extra_variables es para anexar mas variables al url
# si es necesario para los querys que hagan.
# Solo se debe concatenar los datos nombre1=valor1&nombre2=value2
# NOTA: puede ubicar en cualquier parte de su codigo esta funcion
# para que aparesca dentro de la celda que desee.
# link totales es una variable al ser definida le dices a la funcion
# cuantos links quieres que aparescan por pantalla ya que si tienes
# 100 paginas no deberas ver los 100 links y solo muestres los necesarios
$link_totales 4;
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
## Inicia Paginador
paginar($count,$hasta,$pag,$link_totales,$extra_variables);

# Funcion paginar
# Inicia
function paginar($count,$hasta,$pag,$link_totales,$extra_variables){
    if(
$link_totales==1)$link_totales=2;
    
$links $count $hasta;
    
$arriba $link_totales 2;
    
$abajo $pag 1;
    if(
$abajo==0)$abajo 1;
    
$temp_r $links $pag;
    if(
$temp_r>=$arriba){
     
$link_break $pag $arriba;
    }
    else{
     
$link_break $links;
     
$abajo $pag $arriba;
     if(
$pag==$links-1)$abajo $pag $arriba;
     if(
$pag==$links)$abajo $pag $arriba;
    }
    
    if(
$pag==1)$link_break $link_totales;
    if(
$abajo==0)$abajo=1;
    if(
strlen($extra_variables)!=0$extra_variables "&".$extra_variables;
    
    if(
$pag==1){
     
$anterior 1;    
    }
    else{
    
$anterior $pag 1;    
    }
    if(
$pag!=1){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$anterior.$extra_variables."><< Anterior | </a>";
    }
    
    for(
$i=$abajo;$i<=$links;$i++){
     if(
$link_break<$i){
      break;
     }
     else{
        if(
$pag==$i){
        echo 
$i." | ";    
        }
        else{
        echo 
"<a href='".$_SERVER['PHP_SELF']."?pag=".$i.$extra_variables."'>";
        echo 
$i;
        echo 
" | </a>";
        }
     }
    }
    if(
$pag==$links){
    
$siguiente $links;
    }
    else{
    
$siguiente $pag 1;
    }
    if(
$pag!=$links){
    echo 
"<a href=".$_SERVER['PHP_SELF']."?pag=".$siguiente.$extra_variables.">Siguiente >></a>";
    }
}
?>
Es importante saber que en esta parte del codigo:
Código PHP:
while($result=mysql_fetch_array($rs)){
  
# Aqui colocan su tabla html y sus datos a mostrar
  # solo se usa el array $result[""] y entre comillas
  # el nombre de la celda a mostrar.
  
echo $result["licencia"]."<br>\n";    
  
# fin del despliegue personalizado.
 

dentro del while se coloca el html que usted estructuren para mostrar las noticias bien elegantes a los usuarios y si quien mostrar el titulo en una parte del html solo deben poner en la parte html donde parecera el titulo esta variable:
$result["titulo"] tomando en cuenta que titulo se llama su campo.

NOTA: vean que aparece esta linea asi:
Código HTML:
# se llama la funcion paginar
# los links si tiene un css podran tomar la estructura y color que le pongas
paginar($count,$hasta,$pag,$link_totales,$extra_va  riables);

# Funcion paginar
function paginar($count,$hasta,$pag,$link_totales,$extra_va  riables){
no se porque parece asi ya que no lo escribi asi pero solo deben cambiar el nombre de la variable $extra_va riables que esta separada y ponerla asi solo en estas lineas: $extra_variables

Saludos,

Última edición por dwaks; 07/05/2005 a las 08:48
  #137 (permalink)  
Antiguo 17/05/2005, 15:14
 
Fecha de Ingreso: octubre-2004
Mensajes: 82
Antigüedad: 19 años, 6 meses
Puntos: 1
Subir archivos grandes a MySQL en Windows/Linux

Tema: Configuraciones para subir archivos binarios grandes a MySQL.

Pregunta: ¿ Como subir archivos grandes a MySQL en Windows/Linux ?

Respuesta:

Que tal un saludo, aqui les escribo estas consideraciones que se me presentaron cuando quise subir archivos mayores a 1MB a MySQL y la verdad es que si me costo un buen solucionarlo, es por eso que les dejo esto, a alguien le servira se los aseguro:

Aqui les pongo los sistemas y las versiones de APM en lo que lo hice:

Windows Xp Profesional/Fedora Core 1
Apache: 2.0.48
Php: 4.3.4
Mysql: 5.0.0

chequen tambien este link:

http://www.forosdelweb.com/f18/subir-archivos-grandes-mysql-linux-294768/



PHP:

WINDOWS Y LINUX:

En el php.ini

file_uploads = On // en On

max_execution_time = 120 // los segundos que consideren

max_input_time = 120 // los segundos que consideren

memory_limit = 16M // por lo regular el mismo tamaño del archivo a subir o quizas mas

upload_tmp_dir = /xyz // su directorio temporal con permisos de R/W

post_max_size = 10M // el tamaño maximo de su archivo a subir

upload_max_filesize = 10M // el tamaño maximo de su archivo a subir


*** Hacer restricciones en su código a cerca del tamaño máximo de los archivos que quieren subir (para ver que en realidad sube a MySQL o NO)

SI LO VAN A HACER EN LINUX:

consideren lo siguiente:

PHP:

si no tienen este archivo (php.conf) en este directorio (conf.d) HAY QUE CREARLO:

Yo lo he creado aqui:

/usr/local/apache2/conf.d/php.conf


con el siguiente contenido en el php.conf:


# PHP Configuration for Apache
# Load the apache module
#LoadModule php4_module modules/libphp4.so

# Cause the PHP interpreter handle files with a .php extension.

### ESTO SERÁ LO IMPORTANTE
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 10240000 // PARA 10MB o +
</Files>
### LO ANTERIOR FUE LO IMPORTANTE

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

# Add index.php to the list of files that will be served as directory
# indexes.
DirectoryIndex index.php



APACHE:

DENTRO DEL httpd.conf del Apache incluir el archivo que creamos de la siguiente manera como lo indico:

...
Listen 80

# Dynamic Shared Object (DSO) Support
# To be able to use the functionality of a module which was built as a DSO you ...

LoadModule php4_module modules/libphp4.so

### ASI LO INCLUYEN
Include conf.d/*.conf
...

REINICIAN EL APACHE: /usr/local/apache2/bin/
./apachectl restart




MYSQL:

WINDOWS:

Busquen el archivo de configuración de Mysql; se puede llamar así: my.ini y lo configuran:

//my.ini en mi caso y esta en c:\windows\my.ini


y agregarle la siguiente línea:

set-variable = max_allowed_packet=10M // para 10MB

la siguiente línea solo la descomente(le quite el #):

set-variable=key_buffer=10M

pero con la de arriba es mas que suficiente ya que lo comprobe, aunque al final deje la de abajo también configurada.


LINUX:

Hacer lo mismo que en Windows solo que haora el archivo se llama: my.cnf o my.cfg o my.conf

busquenlo desde la consola asi: locate my.cnf
si no lo encuentra el sistema busquenlo ustedes mismos, debe de estar ubicado en: /etc/my.cnf; una vez localizado lo configuramos:


en la sección [mysqld] editamos o agregamos (según su caso):

key_buffer = 16M
max_allowed_packet = 10M // los 10 MB
table_cache = 64
sort_buffer_size = 10M // Yo lo deje asi
read_buffer_size = 10M // Yo lo deje asi
myisam_sort_buffer_size = 8M

OJO: mysql tiene por default 4 archivos de configuración para que los editemos y estos son y estan en:

/usr/local/mysql/support-files/

my-huge.cnf
my-large.cnf
my-medium.cnf
my-small.cnf

CHEQUENLOS Y PUEDEN EDITARLOS LES ACONSEJO QUE LO HAGAN UNICAMENTE EN LA SECCIÓN de [mysqld]


*** EN DADO CASO DE QUE NO HAYAN ENCONTRADO EL ARCHIVO my.cnf (como fue mi caso) hay que crearlo o copiarlo asi:

cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

COMO LES DIJE ARRIBA ESA ES LA RUTA EN LA QUE DEBE DE ESTAR: /etc/my.cnf. Apartir de hay, modifican lo que les comento, pero principalmente estas 2 lineas:

key_buffer = 16M
max_allowed_packet = 10M // los 10 MB

REINICIAN EL MYSQL: /etc/init.d/
./mysql.server stop
./mysql.server start


ASI ES QUE SI USTEDES QUIEREN SUBIR ARCHIVOS A MYSQL MAYORES A 1 MB CON LO ANTERIOR LO PUEDEN RESOLVER YA QUE YO LO HE RESUELTO ASÏ, Y PRINCIPALMENTE PARA AQUELLOS QUE OCUPEN CÓDIGO SIMILAR AL SIGUIENTE:

<?
$archivo = $_FILES["archivito"]["tmp_name"];
$tamanio = $_FILES["archivito"]["size"];
$tipo = $_FILES["archivito"]["type"];
$nombre = $_FILES["archivito"]["name"];
$titulo = $_POST["titulo"];
if ( $archivo != "none" )
{
$fp = fopen($archivo, "rb");
$contenido = fread($fp, $tamanio);
$contenido = addslashes($contenido);
fclose($fp);

$qry = "INSERT INTO archivos ...

para los que NO quieran subir archivos a MySQL sino que los quieran subir a su disco duro solo configuren lo basico que encuentran en este mismo foro y con eso jala, les dejo el codigo, probado en WINDOWS/LINUX:


$upload = $_FILES[upload];
$upload_tmp = $_FILES['archivoCor']['tmp_name'];
$upload_name = $_FILES['archivoCor']['name'];
$destino ="{$_SERVER['DOCUMENT_ROOT']}/pentiumonce/".$areaArt."/{$_FILES['archivoCor']['name']}";
move_uploaded_file($upload_tmp,$destino) or DIE("Upload incorrecto");
echo "<BR><BR><BR>Archivo cargado correctamente";



Un saludo.
  #138 (permalink)  
Antiguo 27/05/2005, 17:40
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 3 meses
Puntos: 0
Dar Formato a la salida de filesize()

Pregunta: como puedo dar formato a la salida de la funcion filesize() de tal forma que me muestre en Kb, Mb y con la precision que yo quiera?

Respuesta: con esta funcion.

Código PHP:
function tam_arch($tam,$pre){
    if(
$pre==0){
        
$pre=-1;
    }else if(
$pre<0){
        
$pre=2;
    }
    
$tam/=1024;
    if(
$tam>1048576){
        
$tam_a=$tam;
        
$tam_a/=1048576;
        if(
$tam_a>1000){
            
$tam_a=substr($tam_a,0,5+$pre)." GB.";
        }else if(
$tam_a>100){
            
$tam_a=substr($tam_a,0,4+$pre)." GB.";
        }else if(
$tam_a>10){
            
$tam_a=substr($tam_a,0,3+$pre)." GB.";
        }else{
            
$tam_a=substr($tam_a,0,2+$pre)." GB.";
        }
    }else if(
$tam>1024){
        
$tam_a=$tam;
        
$tam_a/=1024;
        if(
$tam_a>1000){
            
$tam_a=substr($tam_a,0,5+$pre)." MB.";
        }else if(
$tam_a>100){
            
$tam_a=substr($tam_a,0,4+$pre)." MB.";
        }else if(
$tam_a>10){
            
$tam_a=substr($tam_a,0,3+$pre)." MB.";
        }else{
            
$tam_a=substr($tam_a,0,2+$pre)." MB.";
        }
    }else{
        
$tam_a=$tam;
        if(
$tam_a>1000){
            
$tam_a=substr($tam_a,0,5+$pre)." KB.";
        }else if(
$tam_a>100){
            
$tam_a=substr($tam_a,0,4+$pre)." KB.";
        }else if(
$tam_a>10){
            
$tam_a=substr($tam_a,0,3+$pre)." KB.";
        }else{
            
$tam_a=substr($tam_a,0,2+$pre)." KB.";
        }
    }
    return 
$tam_a;

la salida sera dependiendo del tamaño y presicion con que se haya configurado, lo normal es que sea 12 decimales de presicion la salida de la funcion arroja algo como esto 123.45KB , 12.34MB, 123.345.GB.

como se usa??
Código PHP:
$tam_a=filesize('./galerias/imagen.jpg');
$pre=2;
$tam=tam_arch($tam_a,$pre); 
La variable $tam ya estara formateada

por ejemplo

presicion 0: 1 KB o 1 MB 1 GB
presicion 1: 12.3 KB o 123.2 MB o 1.2G B
presicion 2: 12.12 KB o 123.45 MB o 12.12 GB

Ojala les ayude es algo facil pero cuando uno esta apurado y con pega hasta el cuello.......
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl

Última edición por The_Dark_Roy; 01/09/2005 a las 14:54
  #139 (permalink)  
Antiguo 06/06/2005, 14:12
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 18 años, 11 meses
Puntos: 4
Tema: Conexion a BD
Pregunta: ¿Como puedo ejecutar procedimientos almacenados desde php hacia MS SQL?

Respuesta:
Pues lo unico que se necesita es ejecutar un par de instrucciones del tipo mssql_xxxx y listo, les dejo un ejemplo.

Código PHP:
<?
$msuscriptor_numero
='79714306';
$msuscriptor_nombre="";
$db_conexionmssql_connect(hostuserpass) or die("No se pudo conectar a la Base de datos");
mssql_select_db("base de datos") or die(mssql_error());

   
$stmt=mssql_init("buscarXnumero",$db_conexion); //buscar por numero es el nombre del procedimiento almacenado 
[b]//aqui agregados los parametros de entrada[/b]
   
mssql_bind($stmt,"@suscriptor_numero",$msuscriptor_numero,SQLINT4);

[
b]//aqui agregamos los parametros de salida[/b]
mssql_bind($stmt,"@suscriptor_nombre",&$msuscriptor_nombre,SQLVARCHAR,TRUE,False,50);

[
b]//aqui agregamos el parametro return del procedimiento almacenado[/b]

   
mssql_bind($stmt,"RETVAL",&$filas,SQLINT4);

[
b]aqui ejecutamos el procedimiento almacenado [/b]
   
mssql_execute($stmt);
    echo 
"<h2>numero ".$msuscriptor_numero." Nombre ".$msuscriptor_nombre." </h2>";
   
mssql_close($db_conexion);
?>
bueno basicamente con la instruccion INIT inicializamos la llamada al procedimiento almacenado.
con bind agregamos nuestros parametros, ojo, si son de entrada, enviamos nuestras variables PHP directamente mssql_bind($stmt,"@suscriptor_numero",$msuscriptor _numero,SQLINT4);
pero si nos va a retornar un valor, debemos pasarlo por referencia mssql_bind($stmt,"@suscriptor_nombre",&$msuscripto r_nombre,SQLVARCHAR,TRUE,False,50);

dudas o comentarios hstanleycrow AT hotmail PUNTO com

Última edición por xcars; 22/06/2008 a las 23:03
  #140 (permalink)  
Antiguo 22/06/2005, 09:09
Avatar de elangelcaido  
Fecha de Ingreso: septiembre-2003
Ubicación: Oviedo
Mensajes: 1.068
Antigüedad: 20 años, 7 meses
Puntos: 4
Tema: Especificaciones documentacion PHP
Pregunta: ¿Donde puedo conseguir informacion de cómo documentar mis programas PHP?
Respuesta:
En la siguiente direccion www.phpdoc.org podras ver todas las especificaciones para poner tus comentarios, y demás cosas, en tus programas PHP.
__________________
Ta Luego! Al final sólo puede quedar uno...
________
lukos.org
  #141 (permalink)  
Antiguo 02/07/2005, 22:27
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Tema: Imagenes
Pregunta: ¿Como puedo insertar marcas de agua o logos a las imagenes?
Respuesta:
Bueno aqui esta el script, no es dificil solamente ingenio. Se usa 2 imagenes en el script, el logo con extención PNG (ya que la extención GIF ya no es soportada en las ultimas verciones de GD) he optado por por esta extención ya que soporta transparencias que es lo mejor para colocar una marca de agua. Y la otra imagen es JPG puede ser cualquier extención es indiferente. El script esta comentado para que sea lo mas claro y entendible.

Código PHP:
<?php

// Esta imagen es el logo que se pondra.
$imagen_logo imagecreatefrompng("logo.png");
// Defino ancho, alto del logo.
$ancho_logo imagesx($imagen_logo);
$alto_logo imagesy($imagen_logo);

// Creo la imagen a cual se le pondra el logo.
$imagen_dest imagecreatefromjpeg("prueba.jpg");
// Defino ancho, alto de la imagen que se le colocara el logo.
$ancho_dest imagesx($imagen_dest);
$alto_dest imagesy($imagen_dest);

// Defino la posicion donde se mostrara el logo dejando
// 10 pixeles de espacio. Se mostrara en la parte
// inferior derecho.
$ancho_muestra = ($ancho_dest $ancho_logo) - 10;
$alto_muestra = ($alto_dest $alto_logo) - 10;

//Envio la cabecera para mostrar la imagen.
header("Content-type: image/jpeg");

// Sobre pongo el logo a la imagen.
imagecopyresized($imagen_dest,$imagen_logo,$ancho_muestra,$alto_muestra,0,0,$ancho_logo,$alto_logo,$ancho_logo,$alto_logo);

// Guardo la imagen que ya tiene el logo.
imagejpeg($imagen_dest,"prueba.jpg",75);
// Muestro la imagen.
imagejpeg($imagen_dest,"",75);

// Destruyo las imagenes.
imagedestroy($imagen_dest);
imagedestroy($imagen_logo);

?>
Aclaracion: Creo que es claro que el logo tiene que ser menor en dimenciones que a la imagen que se le pondra, porque sino no se comportara como se desea. Lo aclaro por es un error darlo por echo.

Para los que no sepan:
http://ar2.php.net/manual/es/functio...opyresized.php
  #142 (permalink)  
Antiguo 11/07/2005, 16:22
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 20 años, 3 meses
Puntos: 0
Thumnails para cualquier formato

Tema: Generacion de imagenes con gd2
Requisitos: tener cargada la libreria gd2(descomentada en php.ini)
Pregunta: Como genero thumnails de las imagenes de mis galerias?
Respuesta: con este script:
thumnails.php
Código PHP:
<?php
    $ext_file
=split("[.]",$file);
    
$ext strtolower($ext_file[2]);
    
$tam=getimagesize($file);
    if((
$tam[1]/$tam[0])>10){
        
$n_alto=80;
        
$n_ancho=($n_alto*($tam[0]/$tam[1]));
    }else{
        
$n_ancho=80;
        
$n_alto=($n_ancho*($tam[1]/$tam[0]));
    }
    if(
$ext=="jpg" || $ext=="jpeg"){     
        
$origen  imagecreatefromjpeg($file); 
         
$imagen  imagecreatetruecolor($n_ancho,$n_alto); 
         
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]); 
        
header("Content-type: image/jpeg");  
         
imagejpeg($imagen); 
    }else if(
$ext=="png"){ 
         
$origen  imagecreatefrompng($file); 
         
$imagen  imagecreatetruecolor($n_ancho,$n_alto); 
      
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]);
        
header("Content-type: image/png"); 
        
imagepng($imagen); 
    }else if(
$ext=="gif"){ 
      
$origen  imagecreatefromgif($file); 
      
$imagen  imagecreatetruecolor($n_ancho,$n_alto); 
      
imagecopyresampled($imagen,$origen,0,0,0,0,$n_ancho,$n_alto,$tam[0],$tam[1]); 
      
header("Content-type: image/gif"); 
        
imagegif($imagen);  
    }else{ 
            return 
false
    }
?>
como usarla bueno se hace de la siguiente forma:

Código HTML:
<img src="thumnails.php?file=./galerias/queseyo/usuarios/yo.jpg"> 
nota:
si no se cuenta con la libreria gd2 y solo tienes la gd entonces tienes que reeplazar las funciones imagecreatetruecolor por imagecreate, imagecopyresampled por imagecopyresized

oajal les sirva
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl

Última edición por The_Dark_Roy; 14/07/2005 a las 22:32
  #143 (permalink)  
Antiguo 04/08/2005, 00:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Tema: Registro de Usuarios / Base de Datos
Pregunta: ¿Cómo evitar guardar registros duplicados en mi BD?
Respuesta:

Siguiendo estos pasos:
  1. Obtener los datos que se quieren guardar.
  2. Buscarlos en la Base de Datos.
  3. Ver si hubo coincidencias. Para esto se usa la función mysql_num_rows() que devuelve el número de resultados de una consulta.
    1. Si: Evita que se guarde el registro
    2. No: Guarda...

Código PHP:
<?php
/* Para este código (simplemente ilustrativo) suponemos se recive un formulario dónde se ingresó un "usuario" y un "password" para ser agregados en la BD.
Queremos evitar haya 2 usuarios iguales.

Nuestra Tabla tendría que tener 3 campos:
                     - id (INT autonumerico)
                     - usuario (VACHAR)
                     - password (VACHAR)
*/

// Paso 1: Recibimos el formulario:
$user$_POST['user'];
$passwordmd5($_POST['password']); // www.php.net/md5

// Obviamente conectamos
mysql_connect("servidor""usuario""contraseña");
mysql_select_db("nombre_dela_BD");

// Paso 2: Hacemos la consulta a la Tabla por el usuario
$busquedamysql_query("SELECT usuario FROM tabla WHERE usuario='$user'");


// Paso 3: vemos si hubo coincidencias
if(mysql_num_rows($busqueda)>0) { // ó " !=0 " como se quiera ver
      // Inciso a: 
      
echo "El nombre de usuario no se encuentra disponible. Por favor intente con otro.<br>";
      echo 
"<a href=\"javascript:history.back()\">Regresar</a>";
} else {
      
// Inciso b:
      
mysql_query("INSERT INTO tabla(usuario, password) VALUES ('$user', '$password')");
      echo 
"$user ha sido registrado.";
}
Igual faltarían cosas como valiaciones y demás, pero son otros temas.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 01/07/2006 a las 03:43 Razón: Faltó cerrar unas comillas :-s
  #144 (permalink)  
Antiguo 09/09/2005, 13:18
Avatar de K3NNY
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: ARGENTINA!
Mensajes: 1.493
Antigüedad: 20 años, 1 mes
Puntos: 20
De acuerdo Gracias sergiold

Tematica: Web Multilingüe
Pregunta: Como pueda hacer una web multilingüe, que los visitantes puedan elegir el idioma y la web recuerde la eleccion?
Respuesta: Usando el siguiente codigo:

[root]
  • Index.php
    Código PHP:
    <?php
        session_start
    ();
        if(!isset(
    $_SESSION['varIdioma']) || !empty($_GET['lang'])){
            
    $lang=$_GET['lang'];
            if(empty(
    $lang)){
                
    $lang="es";
            }
            
    $_SESSION['varIdioma']=$lang;
        }
        switch (
    $_SESSION['varIdioma']) {
        case 
    $_SESSION['varIdioma']: require("lang/".$_SESSION['varIdioma'].".inc.php"); break; }
    ?>
    <html>
    <head>
        <title>Web bilingue / Bilingual web</title>
    </head>
    <body>
        <a href="index.php?lang=es">Español</a>
        <a href="index.php?lang=en">English</a>
        <br />
        <?php echo $TEST1;?>
    </body>
    </html>
  • [lang]
    • [es]
      • lang.inc.php
        Código PHP:
        <?php
            $TEST1
        ="Esto es una prueba";
        ?>
    • [en]
      • lang.inc.php
        Código PHP:
        <?php
            $TEST1
        ="This is a test";
        ?>

Nota: En el archivo Index.php el codigo PHP tiene que estar antes que el tag <HTML>.
__________________
delFuego.com.ar
mi tumblelog sobre diseño

La dedicación en mi respuesta es directamente proporcional a la dedicación en tu pregunta.
  #145 (permalink)  
Antiguo 14/09/2005, 19:45
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
Tematica: Generar ComboBox dinamicamente!!!
Pregunta: Como puedo hacer para generar combobox dinamicamente con datos de una DB ?
Respuesta:
Cargar_combo.php
Código PHP:
<?php
include("funciones.php");
cargar_combo("tabla","id","opcion");
?>
Bueno en el doc cargar_combo.php lo que hago es incluir el archivo con las funciones, en este caso con el mismo nombre. y llamamos a la funcion cargar_combo("LA_TABLA","VALOR_QUE_OBTIENE_EL_VALU E","OPCION_A_MOSTRAR");
Código PHP:
<?php
function cargar_combo($tabla,$value,$opt){
$enlace mysql_connect("localhost""root""") or die("No pudo conectarse : " mysql_error());
    
mysql_select_db("prueba") or die("No pudo seleccionarse la BD.");
    
$sql "select * from ".$tabla;
    
$res mysql_query($sql) or die (mysql_error());
    echo 
"<select name='$tabla' class='botones'>";
    while(
$fila mysql_fetch_assoc($res)){
        echo 
"<option value='$fila[$value]'>$fila[$opt]</option>";
    }
    echo 
"</select>";
             
mysql_close($enlace);
}
?>
La función se encarga de generar el campo con los datos que nosotros pasamos como parametros, y el nombre del select es el nombre de la tabla... Saludos, y espero que les sea util!!!

AGREGADO EL 07/02/06

gonazalezmfrank me ha mandado una modificacion del codigo, que permite establecer un valor selecionado si lo hubiera ... y tambien nos deja que le mandemos el nombre que queremos que tenga el select, por si llegamos a necesitar hacer el mismo select mas de una ves ...

La funcion ...
Código PHP:
<?
#################################################################################################
#
#  filename              : config.php
#
#################################################################################################

function cargar_combo($tabla,$varform,$old_valor,$value,$opt){
    
$sql "select * from ".$tabla;
    
$res mysql_query($sql) or die (mysql_error());
    if (
mysql_num_rows($res) != ) {
        echo 
"<select name=\"$varform\">\n";
        echo 
"<option value=\"\"> Seleccione ... </option>\n"
        while(
$fila mysql_fetch_assoc($res)){
            if (
$old_valor == $fila[$value]){
                echo 
"<option value=\"".$fila[$value]."\" selected>".$fila[$opt]."</option>\n";
            } else {
                echo 
"<option value=\"".$fila[$value]."\">".$fila[$opt]."</option>\n";
            }
        }
        echo 
"</select>";
        
mysql_free_result($res);
        return 
$varform;
    }else{
        echo 
"No Existen Registros en la Base de Datos..";
    }
}
?>
el codigo aqui ...
Código PHP:
<?php
// incluye la funcion del combobox
require("config.php");
// conecta a la BD
require("conectar.php");

// Muestra el Combobox para seleccionar el valor de la BD
//
// Considera que existe la funcion en el archivo de funciones o configuracion
// Considera que tiene un script para conectarse a la BD - es  utilizado segun se quiera
//
// Variables que se le pasan a la funcion 
// 1. Nombre de la Tabla
// 2. Nombre de la Variable que requiere retorno en el Form
// 3. Variable que contiene el valor del <Selected> en la Sentencia <Select> de la funcion
// 4. Valor del Campo Indice para la Tabla
// 5. Valor que se quiere mostrar en el Front-END
//
// Si tiene un valor seleccionado este se coloca en la variable $old_valor para pasarlo a
// la funcion si no existe o es vacio simplemente no pasa nada.....
// 
if (empty($_POST['muestra'])){
    
$old_valor $_POST['tipoobs'];
    echo 
"<form action='combotest.php' method='POST'>";
    
cargar_combo("tipo_observa","tipoobs",$old_valor,"ID","tipo_obs");
    echo 
"<input type='submit' value='mostrar' name='muestra'>
    </form>"
;
}else{
    
// Muestra el resultado
    
echo " Valor Seleccionado : ".$tipoobs;
    echo 
"<form action='combotest.php' method='POST'>";
    echo 
"<input type='hidden' name='tipoobs' value='$tipoobs'>";
    echo 
"<input type='submit' name='submit' value='Otro Valor'>
    </form>"
;
}
// cierro la BD
mysql_close();
?>
gracias gonazalezmfrank
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!

Última edición por turco_7; 07/02/2006 a las 07:18
  #146 (permalink)  
Antiguo 19/10/2005, 14:27
Avatar de Vaalegk  
Fecha de Ingreso: abril-2005
Mensajes: 154
Antigüedad: 19 años
Puntos: 2
Tema: Recursividad/Arboles
Pregunta: Como crear un arbol jerarquico a partir de una tabla en la DB
Respuesta:

Este metodo funciona para tablas con referencias a ellas mismas,como por ejemplo en un sistema que se desee mantener relaciones padre hijo sin usar tablas intermedias

Ejemplo de estructura (sin ninguna DB en mente):

Tabla:
catetoria
--cat_id //indice
--parent_id //indice al id del padre (en este caso una referencia a cat_id)
--nombre
--...mas campos

Cabe destacar que con esta estructura se restringe a un solo padre por elemento, los nodos padre o raiz tendran su campo "parent_id" en 0.

ahora bien para construir/imprimir un arbol con esos datos, la manera mas facil es utilizar una funcion recursiva asi:

Código PHP:
/*
funcion generica
Parametros:
    $tabla     = Nombre de la tabla en la DB
    $id_field  = Nombre del campo llave de la tabla
    $show_data = Campo a mostrar en el arbol
    $link_field= Campo que establece la relacion padre hijo
    $parent       = padre actual
    $prefix    = string con un campo a mostrar en cada entrada del arbol
*/
function crearArbol($tabla,$id_field,$show_data,$link_field,$parent,$prefix){
    
/*Armar query*/
    
$sql='select * from '.$tabla.' where '.$link_field.'='.$parant;

    
/*Asumiendo que se usa MySQL (se puede cambiar facilmente a otra db)*/

    
$rs=@mysql_query($sql);
    if(
$rs){
           
/*Recorrer todos las entradas */
           
while($arr=mysql_fetch_array($rs)){
        
/* Imprimir campo a mostrar*/
                
echo($prefix.$arr[$show_data].'<br>');
        
        
/* imprimir arbol the "hijos" de este elemento*/
                
crearArbol($tabla,$id_field,$show_data,
                               
$link_field,$arr[$id_field],$prefix.$prefix);
           }
    }    


Código PHP:
/*
ahora, asumiendo que se tiene una tabla con una estructura
como la mencionada anteriormente se utilizaria asi:
*/

crearArbol('categoria','cat_id','nombre','parent_id',0,'-'); 

/*
  lo cual tendra un output algo asi (dependiendo de los datos):

 -categoria1
 --categoria2
 -categoria3
 --categoria4
 ----categoria5 

*/ 
Ahora, Como y porque funciona?:

Dadas las condiciones de la estructura de datos, donde el padre siempre es "0" para los elementos raiz, al llamar la funcion el query devuelve todos los elementos raiz en su primera llamada, al recorrer cada elemento, la funcion es llamada para imprimir todos los elementos hijos de este elemento, y asi "recursivamente" hasta terminar con
todos los elementos.

trabajare en otra funcion para un escenario de muchos a muchos padre<->hijos, lo cual seria bastante parecido


Saludos,
  #147 (permalink)  
Antiguo 27/10/2005, 20:25
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 18 años, 8 meses
Puntos: 5
De acuerdo Consultas a un Archivo de texto

Tema : Manejo de archivos de texto con PHP
Pregunta : ¿Cómo puedo hacer una consulta a un TXT?
Respuesta: Con la siguiente guía y algoritmo
========================
Muchos de nosotros tenemos sistemas que se ejecutan en D.O.S. como el FOXPRO por ejemplo y los cuales nos pueden exportar una tabla a un formato TXT y nosotros queremos hacer consultas desde nuestra WEB a éste archivo (txt).

Bien les diré que si es posible hacer la consulta de la siguiente manera.

1. Tenemos nuestro archivo de texto por ejemplo que lo llamaremos data.txt
con las siguientes columnas:
CODIGO : (03 caracteres)
FECHA : (10 carateres)
CLIENTE : (25 caracteres)

data.txt
Cita:
de la siguiente manera

xxx xx/xx/xxxx xxxxxxxxxxxxxxxxxxxxxxxxx

algunos datos de ejemplo :
254 12/10/2005 Juan Casqui Rios
124 01/10/2005 Marco Villanes Soza
144 05/05/2005 Luciana Marquez Castillo
235 17/11/2005 Jose Santillan Vera
014 16/02/2005 Simon Laurente Saenz

(mantener siempre la estructura)


Ahora nuestro archivo html

pguno.html
Código PHP:

<HTML>
<
HEAD>
<
TITLEConsulta </TITLE>
</
HEAD>
<
BODY>
    <
FORM METHOD=POST ACTION="pgdos.php">
        
CODIGO:<br>
        <
INPUT TYPE="text" NAME="codigo" size="6" maxlength="3"> <br>
        <
INPUT TYPE="submit" value="Enviar" name="Enviar">    
    </
FORM>
</
BODY>
</
HTML
ahora pgdos.php
Código PHP:

<?php
$i
=0// variable Inicial para comprobar si se encontró algun valor
//Si no está vacio  y si la  variable  existe
if((!empty($_POST['codigo']))|| isset($_POST['codigo'])){
// abriendo el archivo de texto que se encuentra en el mismo directorio 
//que los archivos html  y php
$file fopen ("data.txt""r");
//Para el indice de mi array
$v=0;
//recorrido del archivo  TXT
while (!feof($file)) {    
    
// consideramos linea por linea
    
$linea fgets($file,41);
    
//linea por linea enviamos a un array
    
$cadena[$v]=$linea;
    
//contador incremental
    
$v++;    
}
//obtenido los datos del archivo cerramos el archivo
fclose ($file); 
// recorremos nuestro array  y trabajarlo con nuestro algoritmo
foreach($cadena as $pasar)
{
    
// comparamos si el codigo ingresado en el TEXTBOX
    //coincide con alguno que tenemos en nuestro TXT
    
if($_POST['codigo']==substr($pasar,0,3))
        {
        
// si es asi mostramos los datos que corresponden
            
echo "<br>";
            echo 
"CODIGO  :".substr($pasar,0,3);
            echo 
"<br>";
            echo 
"FECHA : ".substr($pasar,4,10);
            echo 
"<br>";
            echo 
"CLIENTE : ".substr($pasar,15,25);
            echo 
"<br>";
            
// indica que encontró algo
            
$i=1;
        }
}
}
// Si no se encontró nada  simplemente mostramos este texto
if($i=='0')
{
    echo 
"Su Nro de CODIGO  no fué encontrado ....";
    echo 
"<br> Intente nuevamente ";
    echo 
'<A HREF="pguno.html">Anterior</A>';
}
?>
Los tres archivos (txt,html,php) deberán estar en el mismo directorio.

Eso es todo amigos espero que les sirva de algo.
Cualquier sugerencia, critica, etc. espero su mensaje.

Salu2 a to2
__________________
. .: El mejor Inicio :. .

Última edición por atak; 29/10/2005 a las 06:35
  #148 (permalink)  
Antiguo 21/11/2005, 16:46
 
Fecha de Ingreso: mayo-2003
Ubicación: Cuernavaca, Mor.
Mensajes: 117
Antigüedad: 20 años, 11 meses
Puntos: 2
Una sencilla

Pregunta:¿como encripto con md5 una contraseña?

Respuesta: Con el siguiente Script

Código PHP:
<?php
$clave_md5 
"clave";//Esta sera la cadena a encriptar
$md5_result md5($clave_md5); 
$sql "INSERT into tabla (campo_clave)
VALUES ('$md5_result')"
;

mysql_query($sql);

?>
Nota: El campo: campo_clave debe tener una longitud de 32 caracteres.

si queremos ver el resultad impreso solo ponemos:
Código PHP:
echo $md5_result

Última edición por vic_mx; 21/11/2005 a las 17:40
  #149 (permalink)  
Antiguo 01/12/2005, 09:51
Avatar de K3NNY
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: ARGENTINA!
Mensajes: 1.493
Antigüedad: 20 años, 1 mes
Puntos: 20
De acuerdo Como mostrar citas aleatorias guardadas en un txt?

Poniendo este codigo donde queres mostrar las citas...

Código PHP:
<?php
$archivo 
"carpeta/archivo.txt"#Aca tenes que poner la URL donde esta el archivo TXT.
$lineas file($archivo);
$numero rand(0,sizeof($lineas) -1);
echo 
$lineas[$numero];
?>
...y el archivo TXT que contiene las citas tiene que tener una cita por linea (puede contener codigo XHTML)...

Código:
<strong>Cita numero 1</strong>
Cita numero 2
<a href="http://www.google.com">Cita numero 3</a>
PD: Gracias a alvlin por el codigo.
__________________
delFuego.com.ar
mi tumblelog sobre diseño

La dedicación en mi respuesta es directamente proporcional a la dedicación en tu pregunta.
  #150 (permalink)  
Antiguo 03/12/2005, 16:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tema: Configuración instalación PHP
Pregunta: He configurado un .htaccess para personalizar la configuración de PHP para mi sitio. Obtengo este error: The server encountered an internal error or misconfiguration and was unable to complete your request (error 500)

Respuesta:

Sucede cuando se instala PHP activando el PHPsuexec. De esta forma, cada usuario en el servidor tiene su própia configuración de PHP (php.ini) que podría modificar a su gusto fuera de la que el servidor usa de forma global para todos los usuarios por defecto.

PHPsuexec implica que nuestros scripts PHP se ejecutan como CGI y tienen las mismas políticas de restricción de uso que los scripts en Perl y otros CGI. En ese caso es el usuario que crea el archivo es su dueño y no el que usa Apache o "nobody" como sucede cuando se ejecuta PHP como módulo de Apache. El "dueño" de nuestros scripts en este caso será el usuario que nos asignan para nuestro sitio, suele ser el mismo que usariamos para conectarse por FTP, es decir, un usuario concreto del Sistema Operativo de ese servidor .. no uno común.

Los permisos de archivos (scripts .php .. etc) serán como máximo de: 755

¿Como saber si nuestro servidor está configurado como PHPsuexec?:

¿ PHP corre como módulo de Apache o como CGI ?

- Cuando PHP corre como CGI, en phpinfo() Server API muestra: 'CGI'
- Cuando PHP corre como un Módulo de Apache, en phpinfo() Server API muestra: 'Apache' o 'Apache + versión' o 'Apache Handler' o cualquiera de las combinaciones de ellos.

¿ Tenemos control sobre php.ini ?

- Si en phpinfo() Configuration File (php.ini) Path lo muestra dentro de un directorio al que tenemos acceso (ej.: '/home/domain/public_html/php.ini'), tenemos control sobre él.

En resumen:
* PHP corriendo como CGI no podemos usar .htaccess para modificar configuración de PHP. Debemos usar php.ini bajo nuestro DocumentRoot asignado. (Este detalle de la ruta concreta que tenemos asignada también la podemos ver con un phpinfo())
* Revisar los permisos de ejecución de los scripts involucrados .. no pueden ser mayor que 755.

FAQ relacionada:
http://www.forosdelweb.com/showpost....&postcount=123

Autor orginal:
Shockly

Referencia y nacimiento de esta FAQ:
http://www.forosdelweb.com/f18/duda-sobre-upload_max_filesize-353895/

Última edición por Cluster; 03/12/2005 a las 16:12
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 106 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 06:05.