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. Encuentras el FAQ en: http://www.forosdelweb.com/wiki/PHP Categorías: Conceptos Confguración Formularios Manejo de Archivos Integración con Bases de Datos Sesiones Extensiones y librerías Seguridad Funciones Clases y ...

  #1 (permalink)  
Antiguo 08/11/2002, 14:49
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años
Puntos: 69
De acuerdo FAQ's de PHP

Encuentras el FAQ en: http://www.forosdelweb.com/wiki/PHP

Categorías:
Agregar FAQ al Wiki.

Update marzo 2009: Estamos probando el funcionamiento del FAQ de PHP desde el Wiki del foro.

Última edición por cvander; 24/03/2009 a las 06:34
  #2 (permalink)  
Antiguo 08/11/2002, 14:54
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años
Puntos: 69
Tema: Para Novatos con PHP
Créditos: Cluster, BooMeranGz, El_Metallick
Pregunta: ¿Cómo puedo comenzar con PHP? ¿Dónde puedo obtener información/software sobre PHP?
Respuesta:


Página web oficial de PHP:
(la madre del cordero, es bueno visitarla de vez en cuando y ver los "change-log" y demas informacíon de las nuevas revisiones de PHP .. )
Manual en línea de PHP:
Nota: Lamentablemente las versiones en castellano no las actualizan al mismo tiempo q la versión en ingles .. así q lo mejor suele ser ver en ingles el tema y luego en castellano .. si parece ser q es lo mismo .. pues te lo lees en castellano si quieres .. Pero suele ser mas completo en Ingles.
Pre-instaladores WAPM (Windows+Apache+PHP+Mysql):Más info en Maestros del Web

Guía de Instalación manual:
Tutoriales en castellano:
Tutoriales y artículos sobre PHP (en ingles):
Recursos (Scripts/código):
Editores de Código PHP:
De interes:

Sitio especializado en pruevas a aplicaciones PHP comunes .. avisan de vulnerabilidades .. Está bueno apuntarse a su lista de correo .. sobre todo si sueles usar aplicaciones PHP como; PHP-Nuke, phpbb, etc ...
http://www.phpadvisory.com/

Seguridad bajo PHP, prevenir SQL injection .. Cross-Site Scripting .. asegurar sesiones .. etc. (gracias a "fullmental")
http://phpsec.org/projects/guide/

Última edición por jam1138; 08/10/2008 a las 08:30
  #3 (permalink)  
Antiguo 08/11/2002, 16:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Estoy intentando recoger unas variables que paso de un script a otro y no me llegan.

Tema: Configuración.

Pregunta:
Estoy intentando recoger unas variables que paso de un script a otro y no me llegan .. ¿que puede ser?

Respuesta:
Desde la versión 4.2.x en adelante, los chicos de PHP.net dejaron la directiva register_globals a OFF por defecto (ver php.ini).

Edita tu php.ini .. ahi veras la directiva:
register_globals = OFF .. pasalo a ON para trabajar de la forma habitual con tus variables que envias de formularios/URL's entre otras.

Un saludo,
  #4 (permalink)  
Antiguo 08/11/2002, 16:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
register_globals .. ON u OFF? variables Globales?

Tema: Seguridad/buenas maneras xD

Pregunta:
Que diferencias hay entre usar para pasar variables de un script a otro: $variable_nombre, $HTTP_xxx_VARS['variable_nombre'], $_XXX['variable_nombre'].

Respuesta:
Cuando recogemos variables via $variable, estamos asumiendo que son Globales, es decir q da igual por el metodo/tipo de envio que se use (en caso de formularios es lo q se indica en el method= .. si entran por el URL es GET .. si son cookies, sessiones, variables de servidor ... etc no distinguimos.).

Con array $HTTP_xxx_VARS[] (donde xxx es el metodo/tipo: GET, POST, SERVER, COOKIE, SESSION, FILES .. etc) filtramos las variables que recogemos segun su metodo de envio esperado. Es decir, no aceptamos nada mas q lo q esperamos. Si enviamos variables por metodo POST las recogeriamos:
$HTTP_POST_VARS['variable']
Y no aceptariamos ninguna variable (con nombre "variable") que venga por GET .. ademas de distinguirla con respecto a si es una variable de session, cookie, file .. etc.
Este array $HTTP_xxx_VARS está disponible desde las versiones 4.0.x en adelante y hoy por hoy (ver fecha de la faq) estan habilitadas y se pueden usar .. auque "dicen" q a futuro desaparecera en nuevas versiones de PHP.

El array "superglobal" ($_GET, $_POST, $_SERVER .. etc) que denomina PHP, está disponible desde la versión 4.1.x en adelante y es a futuro lo q deberiamos usar a la hora de recoger nuestras variables de formularios y demas medios.
Ademas $_xxx te permite trabajar sin problemas con servidores con la directiva register_globals a ON u a OFF.
Su forma de trabajar seria igual q para $HTTP_xxx_VARS .. solo q el array "superglobal" ahora es "global" es decir .. si llamanos en una funcion a $_GET por ejemplo .. no debemos de declararlo como global $_GET.


mas info
Variables predefinidas de PHP:
http://www.php.net/manual/es/languag...predefined.php

Un saludo,

Última edición por jam1138; 04/01/2009 a las 23:15 Razón: Elimino enlace caducado.
  #5 (permalink)  
Antiguo 08/11/2002, 16:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
¿Que es una "sesion" de PHP?

Tema: Sesiones

Pregunta:
¿Que es una "sesion" de PHP?

Respuesta:
Básicamente es una forma de almacenar variables (sean simples, arrays e incluso objetos) -temporalmente- en el servidor. No así como las cookies q se almacenan en el cliente (PC del usuario).
Estas variables se guardan en el servidor en un fichero que se crea en el momento de que almacenamos una variable. La ubicación la determina la directiva de php.ini session.save_paht.
El nombre que se le da a ese fichero creado es: sess_asdf234arfae34q (similar) donde el "código" que hay despues de _ es lo que denominan "SID" Identificador Unico de Sessión.

Lea también una versión más completa al respecto sobre Sesiones, en esta FAQ:
http://www.forosdelweb.com/showpost....&postcount=129

Última edición por Cluster; 10/11/2004 a las 06:41
  #6 (permalink)  
Antiguo 08/11/2002, 16:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Como guardo y leo una variable de sesión

Tema: Sesiones

Pregunta:
Como guardo y leo una variable de sesión.

Respuesta:

Para PHP > 4.1.x y register_globals a ON o a OFF ... Preferentemente usar este método.
(en el ejemplo se asume que se propaga el SID automático ... ese parametro lo define la directiva de php.ini session.use_trans_sid = 1 (1 activado, 0 desactivado .. propagación manual).)

guarda_variable_session.php
Código PHP:
<?
session_start
(); // incio de uso de sesiones.
// Necesario cada vez que se lean
// o guarden variables de sesión.
$_SESSION['variable']="valor";
?>

lee_variable_session.php
Código PHP:
<?
session_start
(); // incio de uso de sesiones.
$variable=$_SESSION['variable']; // asignamos a $variable la
// variable de la session áctiva.
?>
Y el método tradicional: (PHP > 4.0.x .. register_globals a ON .. SID propagación automática)

guarda_variable_session.php
Código PHP:
<?
session_start
(); // inicio sesiones.
session_register("variable"); // registrar $variable en session.
$variable="valor"// El valor de la $variable se puede dar
// en cuanquier momento.
?>
lee_variable_session.php
Código PHP:
<?
session_start
(); // inicio sesiones
// Se asume como global $variable.
// No distinguiendo si es de sesión o de otro metodo 
// Si fallase el inico de session, una $variable
// entrando por GET podria ser considerado  
// como la varaible de la sesión:
// lee_variable_session.php?variable=mi_valor_trampa
echo $variable
?>
Lea también una versión más completa al respecto sobre Sesiones, en esta FAQ:
http://www.forosdelweb.com/showpost....&postcount=129

Última edición por Cluster; 10/11/2004 a las 06:41
  #7 (permalink)  
Antiguo 09/11/2002, 19:45
Avatar de Aleph  
Fecha de Ingreso: agosto-2001
Ubicación: Kenolandia
Mensajes: 1.061
Antigüedad: 23 años, 3 meses
Puntos: 3
Esta es conocida

Tema: Instalación

Pregunta: No puedo instalar PHP como módulo de Apache, por qué?

Respuesta:

En plataformas Windows , los directorios son referidos con una barra invertida "\" (ASCII 92), es por eso que en algunos archivos de configuración deben reemplazarse las barras comunes "/" éstas.
El archivo de instalación de PHP nos indica que debemos agregar la línea:

Código:
LoadModule php4_module C:/php/sapi/php4apache.dll
En este caso, las barras deberán ser reemplazadas para que funcione correctamente, de esta forma:

Código:
LoadModule php4_module C:\php\sapi\php4apache.dll
  #8 (permalink)  
Antiguo 11/11/2002, 09:52
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Tema Mostrar datos de BD

Pregunta ¿Cómo distribuir los resultados de un query en columnas?

Respuesta Usando la función módulo de PHP.

Código de ejemplo con comentarios:

Código PHP:
<?php
echo "<table align=center>";

$columnes 4# Número de columnas (variable)

if (($rows=mysql_num_rows($result))==0) {
  echo 
"<tr><td colspan=$columnes>No hay resultados en la BD.</td></tr> ";
} else {
  echo 
"<tr><td colspan=$columnes>$rows Resultados </td></tr>";
}

for (
$i=1$row mysql_fetch_row ($result); $i++) {
$resto = ($i $columnes); # Número de celda del <tr> en que nos encontramos
if ($resto == 1) {echo "<tr>";} # Si es la primera celda, abrimos <tr>
    
echo "<td>$row[1]</td>"
if (
$resto == 0) {echo "</tr>";} # Si es la última celda, cerramos </tr>
}
if (
$resto <> 0) { # Si el resultado no es múltiple de $columnes acabamos de rellenar los huecos
$ajust $columnes $resto# Número de huecos necesarios
for ($j 0$j $ajust$j++) {echo "<td>&nbsp;</td>";}
echo 
"</tr>"# Cerramos la última línea </tr>
}
mysql_close($connexion);
echo 
"</table>";
?>
__________________
M a l d i t o F r i k i

Última edición por josemi; 01/09/2004 a las 15:30 Razón: Solucionado un Notice de variable no definida.
  #9 (permalink)  
Antiguo 11/11/2002, 09:56
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Tema Formato de número

Pregunta ¿Cómo puedo formatear un número?

Respuesta Con number_format()

Sintaxis:
number_format(numero, decimales, separador_decimal, separador_miles)

Ejemplo:

$numero = 12345.2534

$number = number_format($numero, 2); // $number = 12345.25$number = number_format($numero, 0); // $number = 12345
$number = number_format($numero, 2, ".", ","); // $number = 12,345.25
$number = number_format($numero, 4, ",", "."); // $number = 12.345,2534
__________________
M a l d i t o F r i k i
  #10 (permalink)  
Antiguo 15/11/2002, 09:59
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 22 años, 3 meses
Puntos: 4
Tema: SEGURIDAD

Pregunta: Autentificar usuarios en base de datos

Respuesta:

Puedes hacer lo siguiente:
  • Creas una tabla en tu base de datos (para el ejemplo: MySQL) donde tendras al menos el nombre de usuario (usr_login ) y su contraseña (usr_pass ).
  • es una buena práctica que pongas la conexión a la base de datos en un módulo aparte que sea llamado desde todas las paginas que usan la base de datos (en el ejemplo me conecto directamente)
  • crea un módulo (yo lo llamo seguridad.php ) y coloca el siguiente código en él:
    Código PHP:
    <?
    /* Autenticación
    */
      
    $muerte 'Acceso Denegado!!!!  :-p';

      if(!isset(
    $PHP_AUTH_USER)) {
        
    header('WWW-Authenticate: Basic realm="Nombre del Site"');
        
    header('HTTP/1.0 401 Unauthorized');
        echo 
    $muerte;
        exit;
      } else {
        
    // valido mi clave en el servidor ...
        
    if (@$db_link mysql_connect("localhost""usuario""clave")) {
            @
    mysql_select_db("base_de_datos");
        }

        
    $sql "select * from usuarios 
                    where ((usr_login = '$PHP_AUTH_USER') 
                         and (usr_pass = '$PHP_AUTH_PW')) "
    ;

        
    $qpassmysql_query($sql$db_link);
        if(
    mysql_num_rows($qpass)<>1)  {
          echo 
    $muerte;
          exit;
        }

      }
    ?>
  • Ahora al principio de cada una de tus páginas que necesite autenticar al usuario colocarás
    Código PHP:
    <? include("seguridad.php");?>
  • Para terminar te recuerdo que queda en tus manos el mejorar el código, por ejemplo puedes validar un límite de intentos fallidos, registrar fecha y hora de acceso del usuario así como las páginas "autenticadas" que ha visitado. También puedes darle más seguridad al código validando errores en el SQL, y muchos etcés ...

Nota: Este tipo de autentificación es via HTTP y funciona bajo PHP instalado como Módulo de Apache y no como CGI
__________________
_________________________
La computadora nació para resolver problemas que antes no existían

Última edición por temaqueja; 15/11/2002 a las 17:09
  #11 (permalink)  
Antiguo 17/11/2002, 15:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
TEMA: Manejo de cadenas

PREGUNTA: PHP no me respeta los saltos de linea de mi texto.

RESPUESTA:

Si tu texto proviene de un campo <textarea> de un formulario o de un fichero, los saltos de linea vendran como caracteres \n. Y como el texto lo quieres mostrar dentro de una pagina HTML, debes cambiar esos caracteres por la cadena <br>, que es el salto de linea de HTML. La forma mas sencilla de hacerlo es con la funcion nl2br(). Su uso es muy sencillo:

Código PHP:
$var_con_saltos_de_linea="Este texto\ntiene saltos\nde linea.";
$var_con_br=nl2br($var_con_saltos_de_linea);
echo 
$var_con_br;
echo 
"\n<br>\n";
echo 
$var_con_saltos_de_linea
Es recomendable almacenar los textos con el salto de linea codificado como \n y convertirlo con nl2br() justo antes de mostrarlo en la pagina. Ademas de ocupar menos espacio, podremos usar el texto almacenado para otros formatos distintos de HTML.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 17/11/2002 a las 15:39
  #12 (permalink)  
Antiguo 20/11/2002, 15:33
Avatar de GhostRider  
Fecha de Ingreso: julio-2001
Ubicación: en mi propio infierno
Mensajes: 248
Antigüedad: 23 años, 4 meses
Puntos: 0
Tema: Archivos
Pregunta: ¿Cómo puedo subir archivos a través de un formulario?
Respuesta: Con el siguiente ejemplo.

Código PHP:
<?php
if (isset($_POST['submit'])) { 
    if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) { // verifica haya sido cargado el archivo
        
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name'])) { // se coloca en su lugar final
                    
echo "<b>Upload exitoso!. Datos:</b><br>";
            echo 
"Nombre: <i><a href=\"".$_FILES['fichero']['name']."\">".$_FILES['fichero']['name']."</a></i><br>";
            echo 
"Tipo MIME: <i>".$_FILES['fichero']['type']."</i><br>";
                    echo 
"Peso: <i>".$_FILES['fichero']['size']." bytes</i><br>";
                        echo 
"<br><hr><br>";
        }
    }

// A continuación el formulario
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data">
    Archivo: <input name="fichero" type="file">
    <input name="submit" type="submit" value="Upload!"> 
</form>
Funciona de la siguiente manera:

El código sube un archivo via HTTP POST, este se guarda automaticamente con un nombre y en una carpeta temporales del servidor mientras corre el codigo, despues el mismo servidor lo borra (por seguridad). La función is_uploaded_file() verifica que este procedimiento haya sido exitoso. Posteriormente el archivo es movido a su posición final con la función move_uploaded_file().


Notas:
  • Es necesario el atributo enctype="multipart/form-data" del formulario, es lo que indica que se están enviando archivos.
  • El primer key de $_FILES corresponde al name del filebox; En el ejemplo "fichero".
  • Si se quiere condicionar la carga del archivo según su peso y/o tipo se deberá hacer a través de los datos arrojados por la variable superglobal $_FILES antes de colocarlo en su posición final. Por ejemplo:
Código PHP:
If(is_uploaded_file($_FILE['fichero']['tmp_file']) {
    If(
$_FILES['fichero']['type']=="image/jpeg") {
        
// Proseguimos solo si se trata de un JPG
        
move_uploaded_file("...etc..."); 
    } else echo 
"El archivo no es una imágen JPG";
// bien puede condicionarse $_FILES['fichero']['size'] > XXXX
// donde 'XXXX' es un número entero representando los bytes máximos del archivo 
  • Listas de los MIME TYPE hay muchas en internet. Una muy completa se encuentra en webmaster-toolkit
  • En el ejemplo el archivo es guardado en la misma carpeta, si se quiere modicar esto ha de cambiarse el parámetro correspondiente de la función move_uploaded_file(). Por ejemplo:
Código PHP:
$ruta"carpeta/".$_FILES['fichero']['name']; // Se guardaría dentro de "carpeta" con el nombre original
// $ruta= "carpeta/nuevo_nombre.jpg"; si también se quiere renombrar
move_uploaded_file($_FILES['fichero']['tmp_name'], $ruta);

// Puede guardarse $ruta en una Base de Datos para su uso posterior 
  • El ejemplo funciona con versiones PHP 4.1.x ó superior y con register_globals en OFF.
  • La carga de archivos es dependiente de la configuración del servidor: disponer de permisos, no exeder el tamaño límite, el nombre de la carpeta personal, etc.
  • Para detalles lease la documentación oficial: www.php.net/features.file-upload

Espero les sea de utilidad.

Última edición por jam1138; 10/10/2005 a las 04:54 Razón: Actualización/Ampliación
  #13 (permalink)  
Antiguo 25/11/2002, 20:29
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
Mensaje Las clásicas...

Tema: Como envio un email en formato HTML
Respuesta:
Código PHP:
<?php
$sfrom
=""//cuenta que envia
$sdestinatario=""//cuenta destino
$ssubject=""//subject
$shtml=""//mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);
?>
** Consideraciones a tomar en cuenta para diseñar el e-mail HTML (sobre uso de CSS y/o peculiaridades según cliente de correo que lo lea):

http://css-discuss.incutio.com/?page=StyleInEmail

(grácias a uamistad por el link)

Última edición por Cluster; 27/04/2006 a las 06:17
  #14 (permalink)  
Antiguo 25/11/2002, 20:37
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
Mensaje Mas clasicas

Tema: Archivos
Pregunta: Como genero un reporte en EXCEL a partir de una tabla
Respuesta: Solo necesitas grabar una Tabla HTML y salvarla con extension XLS. EXCEL reconocera automaticamente el formato.
Ejemplo:
Código PHP:
<?php
$shtml
="<table>";
$shtml=$shtml."<tr>";
$shtml=$shtml."<td>Id</td><td>Codigo</td><td>US$</td>";
$shtml=$shtml."</tr>";
$shtml=$shtml."<tr>";
$shtml=$shtml."<td>1</td><td>C4325</td><td>2000.00</td>";
$shtml=$shtml."</tr>";
$shtml=$shtml."<tr>";
$shtml=$shtml."<td>2</td><td>DX456</td><td>1000.00</td>";
$shtml=$shtml."</tr>";
$shtml=$shtml."<tr>";
$shtml=$shtml."<td>3</td><td>&nbsp;</td><td>-50.00</td>";
$shtml=$shtml."</tr>";
$shtml=$shtml."<tr>";
$shtml=$shtml."<td>4</td><td>A18-TG</td><td>20.64</td>";
$shtml=$shtml."</tr>";
$shtml=$shtml."</table>";
$scarpeta=""//carpeta donde guardar el archivo.
//debe tener permisos 775 por lo menos
$sfile=$scarpeta."/xxxx.xls"//ruta del archivo a generar
$fp=fopen($sfile,"w");
fwrite($fp,$shtml);
fclose($fp);
echo 
"<a href='".$sfile."'>Haz click aqui</a>";
?>

Última edición por Mickel; 29/11/2002 a las 00:39
  #15 (permalink)  
Antiguo 25/11/2002, 20:48
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
Mensaje Y mas...

Tema: Conexion Base de Datos
Pregunta: No se como trabajar con PHP y MySQL
Respuesta:
Código PHP:
$sserver="localhost"
$suser=""//usuario de la base de datos
//No sabes lo que es? Preguntale a tu hoster!
$spassword=""//password de la base de datos
//No sabes lo que es? Preguntale a tu hoster tambien!
$sdb=""//nombre de la base de datos
//No sabes cual es? que acaso no tienes panel de control?
//Si no tienes panel de control y el hoster no responde
//   cambia de hoster...
$ilink=mysql_connect($sserver,$suser,$spassword) or die("RIP");
mysql_select_db($sdb,$ilink);
$squery="Select (campos) from (tabla) (where) (order)";
//no sabes lo que es SELECT? pues a aprender sintaxis SQL!
$iquery=mysql_query($squery,$ilink);
if (
$iquery>0) {
   
$irow=0;
   
$ilastrow=mysql_num_rows($iquery);
   while (
$irow<$ilastrow) {
        
$campo=mysql_result($iquery,$irow,"(campo)");
        
//asi obtienes los datos de un campo
        //repetir segun sea necesario
       
$irow++;
   }
}
//quieres actualizar algo?
$squery="Delete/Insert/Update...";
mysql_query($squery,$ilink); 

Última edición por Mickel; 29/11/2002 a las 00:40
  #16 (permalink)  
Antiguo 27/11/2002, 08:41
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 3 meses
Puntos: 2
TEMA: Encuestas en php y mysql

PREGUNTA: Como hacer una encuesta en php

RESPUESTA:
Para hacer una encuesta con sus resultados graficados debes crear un tabla con los siguients campos (optativos)
1.- Idencuesta: identificador de cada encuesta

2.- pregunta:campo que almacena las pregunta

3.- respuesta1: campo que almacenara la respuesta a tu encuesta

4.- respuesta2:lo mismo que lo anterior esto dependera de la catidad de respuesta que tenga tu encuesta (por lo general 3 o 4)

5.- valor1: este campo almacena la cantidad de respuestas a cada respuesta o sea valor1 guardara todos los clic o respuestas que den en respuesta1.

6.- total:almacena el total de la suma de los campos valor1, valor2 o los que tengas

7.-Crea una imagen pequeña de uno 4x9 gif o cualquier formato para que te muestre los resultados graficados


****ENCUESTA:PHP****
Código PHP:
<?
$servidor 
"localhost"
$usuario "";
$password "";
$base_de_datos "encuesta";
$conextar=mysql_connect ($servidor,$usuario,$password);
    
mysql_select_db($base_de_datos);
    
$sqlupdate "UPDATE encuestas SET valor$voto = valor$voto+1, total = total+1";
    
mysql_query($sqlupdate,$conextar);
    
$sql "SELECT * FROM encuestas ORDER BY idencuesta desc LIMIT 1";
    
$resultados mysql_query($sql,$conextar);
    
$row mysql_fetch_array($resultados);
    
?>
<script type="text/javascript" language="JavaScript">
function resultados(){
window.open("resultados.php","","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=320,height=200");
}
</script>
<form name="form1" method="post" action="<?= $PHP_SELF?>">
  <table width="256" border="0" align="center" cellpadding="0" cellspacing="0" class="forumline">
    <tr valign="baseline"> 
      <td colspan="2" class="row1"> 
        <?=$row['pregunta']; ?>
        <br>
      </td>
    </tr>
    <tr> 
      <td width="110"> 
        <?=$row['respuesta1'];?>
      </td>
      <td width="146"><input type="radio" name="voto" value="1">
      </td>
    </tr>
    <tr> 
      <td> 
        <?=$row['respuesta2'];?>
      </td>
      <td><input type="radio" name="voto" value="2"></td>
    </tr>
    <tr> 
      <td> 
        <?=$row['respuesta3'];?>
      </td>
      <td><input type="radio" name="voto" value="3"></td>
    </tr>
    <tr align="center"> 
      <td height="20" colspan="2"><input type="submit"  class="post"name="Submit" value="Votar" onClick=window.open("resultados.php","","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=320,height=200");
></td>
    </tr>
  </table>
  <p>&nbsp;</p></form>
****RESULTADOS.PHP****************
Código PHP:
<html>
<head>
<title>Resultados de la encuesta</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
    background-color: #FFFFDD;
}
td {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 10px;
}
-->
</style>
</head>
<body>
<?
$servidor 
"localhost"
$usuario "";
$password "";
$base_de_datos "encuesta";
$conextar=mysql_connect ($servidor,$usuario,$password);
    
mysql_select_db($base_de_datos);
    
//$sqlupdate = "UPDATE encuestas SET valor$voto = valor$voto+1, total = total+1";
    //mysql_query($sqlupdate,$conextar);
    
$sql "SELECT * FROM encuestas ORDER BY idencuesta desc LIMIT 1";
    
$resultados mysql_query($sql,$conextar);
    
$row mysql_fetch_array($resultados);
 
$res1round ($row['valor1']*100/$row['total'],2);
 
$res2round ($row['valor2']*100/$row['total'],2);
 
$res3round ($row['valor3']*100/$row['total'],2);
 
?>
<p>Resultados parciales de la encuesta</p>
<?=$row['pregunta']; ?><br>
<br>

<TABLE WIDTH="300"  BORDER="1" ALIGN="center"  BORDERCOLOR="#3097A3">
  <TR>
     <TD WIDTH="100"><?=$row['respuesta1']; ?></TD> 
    <TD WIDTH="*"><IMG HEIGHT="15" WIDTH="<?=$row["valor1"]*100/$row["total"]?>%" SRC="encuesta/barra.gif"></TD>
    <TD ALIGN="center" WIDTH="70"><? echo $res1."%";?> </TD>
  </TR>
  <TR>
   <TD WIDTH="100" ><?=$row['respuesta2']; ?></TD>
    <TD WIDTH="*"><IMG HEIGHT="15" WIDTH="<?=$row["valor2"]*100/$row["total"]?>%" SRC="encuesta/barra.gif"></TD>
    <TD ALIGN="center" WIDTH="70"><? echo $res2."%";?> </TD>
  </TR>
  <TR>
     <TD WIDTH="100"><?=$row['respuesta3']; ?></TD>
    <TD WIDTH="*"><IMG HEIGHT="15" WIDTH="<?=$row["valor3"]*100/$row["total"]?>%" SRC="encuesta/barra.gif"></TD>
    <TD ALIGN="center" WIDTH="70"><? echo $res3."%";?> </TD>
  </TR>
</TABLE>
<form name="form1" method="post" action="">
  <div align="center">
    <p>
      <input type="submit" name="Submit" value="Cerrar Ventana" onclick="window.close();">
    </p>
    <p>&nbsp; </p>
  </div>
</form>
</body>
</html>
Dudas o comentarios favor de enviar mensaje privados
Gracias

NOTA: .. la llamada a la funcion javascript window.open( .. parametros) .. Ha de estar en una sola linea y sin espacios entre los parametros, pese q si hacen un cut-and-paste veran esos saltos de línea y algun espacio por medio.

Última edición por vito_gris; 01/04/2005 a las 15:33
  #17 (permalink)  
Antiguo 27/11/2002, 10:10
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Tema: Reconocer características del visitante

Pregunta: Tengo una web en varios idiomas, ¿Cómo puedo mostrar a mis visitantes la que más se ajuste a sus preferencias?

Respuesta:

Usando la cabecera HTTP_ACCEPT_LANGUAGE que nos enviará su navegador al pedirnos que le mostremos la web.

Para leer correctamente esa cabecera y no quedarnos sólo con el primer valor que contenga, usaremos el siguiente script:

Código PHP:
if ($HTTP_ACCEPT_LANGUAGE != ''){ # Verificamos que el visitante haya designado algún idioma
    
$idiomes explode(","$HTTP_ACCEPT_LANGUAGE); # Convertimos HTTP_ACCEPT_LANGUAGE en array
    /* Recorremos el array hasta que encontramos un idioma del visitante que coincida con los idiomas
    en que está disponible nuestra web */
    
for ($i=0$i<count($idiomes); $i++){
        if (!isset(
$idioma)){
            if (
substr($idiomes[$i], 02) == "ca"){$idioma "ca";}
            if (
substr($idiomes[$i], 02) == "es"){$idioma "es";}
            if (
substr($idiomes[$i], 02) == "en"){$idioma "en";}
            if (
substr($idiomes[$i], 02) == "fr"){$idioma "fr";}
        }
    }
}

# Si no hemos encontrado ningún idioma que nos convenga, mostramos la web en el idioma por defecto
if (!isset($idioma)){$idioma "ca";} 
__________________
M a l d i t o F r i k i
  #18 (permalink)  
Antiguo 29/11/2002, 00:46
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
Tema: Obtener Valores
Pregunta: ¿Como obtengo la fecha del servidor?
Respuesta:
Código PHP:
<?php
$sdate
=date("d")."/".date("m")."/".date("Y");
$stime=date("h").":".date("i");
?>
como Epplestun pone lineas abajo, esto se puede hacer con una sola llamada a date()... pero al ponerlo asi esperaba que ya no preguntasen
- como obtengo el mes?
- y el dia?
- y el año?

Última edición por Mickel; 08/12/2002 a las 19:17
  #19 (permalink)  
Antiguo 03/12/2002, 06:13
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Tema: Leer ficheros

Pregunta: ¿Cómo puedo ver el código fuente de otra página?

Respuesta:

Usando show_source().

El siguiente ejemplo presenta un formulario que se ejecuta en la misma página. Si hemos especificado ya el archivo, nos muestra el código. Si no hemos especificado el archivo, nos muestra el formulario.

Código PHP:
if (isset($arxiu)){
show_source($arxiu);
} else {
echo 
"<form action=show_source.php method=post><input type=text name=arxiu><br><input type=submit></form>";

__________________
M a l d i t o F r i k i
  #20 (permalink)  
Antiguo 03/12/2002, 06:18
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Tema: Leer ficheros

Pregunta: ¿Cómo leo los metatags de una página web?

Respuesta:

Usando get_meta_tags()

El siguiente código es una modificación del anterior. Sólo se ha incluído la parte de resolver $arxiu, por lo que se debe llamar desde un formulario con <input type="text" name="arxiu"> o pasándole a la URL ?arxiu=http://direccion

Código PHP:
$metatags get_meta_tags($arxiu,1);
if (!
count($metatags)){print "<strong>No s'han trobat metatags vàlides</strong>\n";}
for (
$i=0$i<count($metatags); $i++) {
$etiquetes each($metatags);
print 
"<strong>$etiquetes[0]:</strong> $etiquetes[1]\n";

__________________
M a l d i t o F r i k i
  #21 (permalink)  
Antiguo 03/12/2002, 20:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tema: Manejo arrays (arreglos, matrices ..)

Pregunta: Como paso un array de un script.php a otro.php

Respuesta:

Hay que serializar el array para enviarlo por el URL o en un formulario en un campo "hidden" ... Y, en el script que reciba el array debera de des-serializarlo.

A todo esto, es recomendable eliminar los slahes (\ barra invertida) que se generan si usamos magic_quotes_gpc a ON y codificar las variables con urlencode() para eviatar problemas con cartacteres en nuestros arrays tipo: puntos, comillas y otros caracteres.

enviar_array.php
Código PHP:
<?
function array_envia($array) {

    
$tmp serialize($array);
    
$tmp urlencode($tmp);

    return 
$tmp;
}

$array=array("algo","nose","otracosa");
$array=array_envia($array);

// Usando un formulario y campo hidden.
echo <<<HTML
<form action="recibir_array.php" method="POST">
   <input name="array" type="hidden" value="$array">
   <input name="enviar" type="submit" value=" Enviar ">
</form>
HTML;

// Usando un link (URL).
echo "<a href=\"recibir_array.php?array=$array\">pasar array</a>";
?>
recibir_array.php
Código PHP:
<?
function array_recibe($url_array) {
    
$tmp stripslashes($url_array);
    
$tmp urldecode($tmp);
    
$tmp unserialize($tmp);

   return 
$tmp;
}


$array=$_GET['array'];
 
// el método de envio usado. (en el ejemplo un link genera un GET. En el formulario se usa POST podria ser GET tambien ...)

$array=array_recibe($array);

foreach (
$array as $indice => $valor){
echo 
$indice." = ".$valor."<br>";
}
?>
Ahi en recibir_array.php tienes un ejemplo de como recorrer el array que has enviado . igualmente puedes acceder por su indice: $array[indice] ...

Si usasemos un formulario para enviar nuestra array .. solo tendriamos que usar un campo hidden común de formulario y alplicar la funcion array_envia().


Un saludo,

Última edición por Cluster; 08/01/2003 a las 18:18
  #22 (permalink)  
Antiguo 05/12/2002, 16:36
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 10 meses
Puntos: 2
SMTP utilizando Sockets en PHP

Estuve probando cómo hacer para autenticar usuario SMTP por Sockets y este código me ha dado buenos resultados:

/////////////// Archivo mail.php /////////////////////

set_time_limit(0);

include("cmailer.php");

$m = new cMailer();
$m->AgregaDireccion("[email protected]");
$m->AgregaDireccion("[email protected]");

$m->AgregaRemitente("[email protected]");
$m->AgregaAsunto("Mensaje de prueba");

$m->AgregaMensaje("Este es un sencillo mensaje de prueba configurando Username y Password");

$m->AgregaServidor("smtp.isp.com");

$m->AgregaNombreUsuario("nombreusuario");

$m->AgregaContrasenya("contraseña");

$m->Autenticar();

$m->Enviar();

?>


/////////////////// Archivo cmailer.php//////////////////////////////

class cMailer
{
var $_Direcciones;
var $_cantidadDirecciones = 0;
var $_ConexionSMTP;
var $_Remitente;
var $_ServidorSMTP;
var $_Asunto = "";
var $_Mensaje;
var $_NombreUsuario;
var $_Contrasenya;
var $_Autenticar = 0;

function cMailer()
{
}

function AgregaNombreUsuario($NombreUsuario)
{
$this->_NombreUsuario = $NombreUsuario;
}

function AgregaContrasenya($Contrasenya)
{
$this->_Contrasenya = $Contrasenya;
}

function Autenticar()
{
$this->_Autenticar = 1;
}

function NoAutenticar()
{
$this->_Autenticar = 0;
}

function AgregaDireccion($Direccion)
{
$this->_Direcciones[$this->_cantidadDirecciones] = $Direccion;
$this->_cantidadDirecciones++;
}

function AgregaRemitente($Remitente)
{
$this->_Remitente = $Remitente;
}

function AgregaMensaje($Mensaje)
{
$this->_Mensaje = $Mensaje;
}

function AgregaAsunto($Asunto)
{
$this->_Asunto = $Asunto;
}

function Enviar()
{
$cadenaEHLO = "EHLO ".$this->_ServidorSMTP."\r\n";
fputs($this->_ConexionSMTP, $cadenaEHLO);

if($this->_Autenticar == 1)
{
$cadenaAUTH = "AUTH LOGIN\r\n";
fputs($this->_ConexionSMTP, $cadenaAUTH);
$cadenaNombreUsuario = base64_encode($this->_NombreUsuario)."\r\n";
fputs($this->_ConexionSMTP, $cadenaNombreUsuario);
$cadenaContrasenya = base64_encode($this->_Contrasenya)."\r\n";
fputs($this->_ConexionSMTP, $cadenaContrasenya);
}

$cadenaMAIL = "MAIL FROM: ".$this->_Remitente."\r\n";
fputs($this->_ConexionSMTP, $cadenaMAIL);

for($i = 0; $i < $this->_cantidadDirecciones; $i++)
{
$cadenaRCPT .= "RCPT TO: ".$this->_Direcciones[$i]."\r\n";
}

$cadenaRCPT .= "\r\n";
fputs($this->_ConexionSMTP, $cadenaRCPT);

$cadenaDATA1 = "DATA\r\n";
fputs($this->_ConexionSMTP, $cadenaDATA1);

if($this->_Asunto != "")
{
$cadenaSubject = "Subject: ".$this->_Asunto."\r\n\r\n";
fputs($this->_ConexionSMTP, $cadenaSubject);
}


$cadenaDATA2 = $this->_Mensaje."\r\n.\r\n";
fputs($this->_ConexionSMTP, $cadenaDATA2);

fputs($this->_ConexionSMTP, "QUIT\r\n");

fclose($this->_ConexionSMTP);
}

function AgregaServidor($Servidor, $Puerto = 25)
{
$this->_ConexionSMTP = fsockopen("$Servidor", "$Puerto", $e, $em, 5) or die("No puedo abrir el socket");
echo fgets($this->_ConexionSMTP, 4096)."
\n";
$this->_ServidorSMTP = $Servidor;
}

}

?>
  #23 (permalink)  
Antiguo 07/12/2002, 03:04
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
Tema: Creacion de foros con PHP y MySQL
Pregunta:Como pyuedo crear un foro en PHP y MySQL
Respuesta
Hace mucho tiempo me pidieron que pusiera el tutorial en una web, aqui la tienen:
http://www.zonaphp.com/index.php?mod...ion=leer&id=23

Editado por josemi: Actualizado el link
__________________
Usuario registrado de Linux #288725

Última edición por josemi; 09/12/2003 a las 06:29
  #24 (permalink)  
Antiguo 07/12/2002, 14:54
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Tema: Variables
Pregunta: ¿Por qué pierde el valor mi variable dentro de mi función?
Respuesta:
Para poder acceder y modificar el valor de una variable definida fuera de una función hay que referenciarla dentro de la función con global. Por ejemplo:
Código PHP:
$var_1='Hola';
function 
funcion()
{
  global 
$var_1;
... 
Mas info: http://www.php.net/manual/en/languag...bles.scope.php
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #25 (permalink)  
Antiguo 08/12/2002, 11:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tema: Web Modulares

Pregunta: Como hago esas páginas web que las secciones q incluyen son del tipo index.php?id=2

Respuesta:

La filosofía de ese tipo de webs es en usar la funcion include() (o require()) para incluir (valga la rebundancia) el código que pertenezca a ese identificativo .. en nuestro ejemplo una variable llamada id .. como podria ser cualquier otro nombre.

La decisión de que página ha de cargar se puede hacer de varias formas .. siendo la mas común usar el condicional: switch ..

Código PHP:
<?
$id
=$_GET['id'];

switch (
$id) {
   case 
1:
       include(
"pagina1.php");
       break;
   case 
2:
       include(
"pagina2.php");
       break;
   case 
3:
       include(
"pagina3.php");
       break;
   default:
       include(
"pagina_por_defecto.php"); 
// estado default .. nos determina el estado 
// "si no es ninguna opcion de las anteriores".

?>
Las llamadas a una página seran del tipo:

nombrequeledemos.php?id=nº
(podriamos usar identificativos no numericos .. tan solo usar case tipo: case "nombre" ...

Ahora, El sistema es mas versatil .. no se trata solo de "redirecionar" (si usamos include() ) .. sino de Incluir dentro de otro "armazón" (plantilla-template) base que usemos .. por ejemplo:

Código PHP:
<html>
<head>
<title>Web Modular</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="100%" border="0" cellpadding="5">
  <tr> 
    <td colspan="2">Cabecera de nuestra Web</td>
  </tr>
  <tr> 
    <td><a href="index.php?id=1">Secci&oacute;n 1</a><br>
      <a href="index.php?id=2">Seccion 2 </a> </td>
    <td>
<?
$id
=$_GET['id'];

switch (
$id) {
   case 
1:
       include(
"pagina1.php");
       break;
   case 
2:
       include(
"pagina2.php");
       break;
   case 
3:
       include(
"pagina3.php");
       break;
   default:
       include(
"pagina_por_defecto.php"); 
// estado default .. nos determina el estado 
// "si no es ninguna opcion de las anteriores".

?>
    </td>
  </tr>
  <tr> 
    <td colspan="2">Pie de p&aacute;gina</td>
  </tr>
</table>
</body>
</html>
Un saludo,
  #26 (permalink)  
Antiguo 09/12/2002, 00:50
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años, 8 meses
Puntos: 5
Comprimir archivo a .gz

Faltaba Yo :-0

TEMA: COMPRIMIR A .GZ
DESARROLO:
Código PHP:
<?php

   $filenameIMAG
='C:/FoxServ/www/_pruebas/zlib/site.gif';
   
$filenameCOMP='C:/FoxServ/www/_pruebas/zlib/site.gif.gz';

   
/* [STEP 1] */
   
$fp fopen($filenameIMAG"rb");
   
$data fread($fpfilesize($filenameIMAG));
   
fclose($fp);
   
/* [/STEP 1] */

   /* [STEP 2] */
   
$fd fopen ($filenameCOMP"wb");
   
$gzdata gzencode($data,9);
   
fwrite($fd$gzdata);
   
fclose($fd);
   
/* [/STEP 2] */

?>
STEP:
1. Abrir en modo binario(lectura), acceder a la data y cerrar.
2. Abrir en modo binario (escritura), comprimir , escribir y cerrar

Nota: Deve estar instalada la libreria ZLIB. ver manual :)

Saludos
__________________
Hacerlo Bien Haciendo el Bien.
Jaso ezazu agur bero bat.
(c) 2002. Made in Chile.
Mi sistema es:
Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x)
!Califica este POSTEO¡

Última edición por Webstudio; 09/12/2002 a las 11:56
  #27 (permalink)  
Antiguo 10/12/2002, 05:09
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Tema: Presentación

Pregunta: ¿Cómo puedo mostrar código HTML coloreado?

Respuesta:

PHP incluye las funciones highlight_string() y show_source() para resaltar el código PHP usando colores que facilitan la comprensión del código.

Ahora bien, es necesario que el código esté emmarcado por etiquetas PHP válidas como <? ?> o <?php ?>.
Para usar estas funciones para colorear un código HTML normal, usaremos la siguiente estrategia:

Código PHP:
<?php
$thecode 
show_source("http://news.google.com"); // $thecode contiene el código HTML que queremos colorear. Yo he usado show_source() para leer un código externo.

$highlighted highlight_string("<? ".$thecode." ?>");

echo 
substr($highlighted3, -3);
?>
__________________
M a l d i t o F r i k i
  #28 (permalink)  
Antiguo 10/12/2002, 05:33
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 23 años, 1 mes
Puntos: 6
Tema: Configuracion.
Pregunta:
Necesito cmabiar la directiva register_global a On y no tengo acceso al archivo php.ini???.
Reapuesta:
Esto unicamente funciona en Apache con php como modulo del
mismo y que el usuario tenga la directiva AllowOverride seteada a all o a Options.

Si las condiones se cumplen, creen un archivo .htacces que contanga la siguiente linea.

php_flag register_globals On

Esto es muy util cuando tenemos que dejar corriendo apliaciones que no estan programadas
para usar las variables super globales $_*, en lo que se lleva acabo su pronta actualizacion.
  #29 (permalink)  
Antiguo 12/12/2002, 14:31
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Tema: Trucos.
Pregunta: ¿Como hago para alternar los colores de las filas de una tabla, como en los foros?
Respuestas:
Con este sencillo codigo:
Código PHP:
<table>
<?php
$color
='#FF0000';  // este es el primer color que queremos que aparezca
for($i=0;$i<20;$i++)
{
    echo 
"<tr bgcolor=\"$color\"><td>Hola</td></tr>";
  
$color=('#F0F0F0'==$color)?'#FF0000':'#F0F0F0';
// este es el operador ternario. Equivale a un IF-THEN-ELSE
// Es quivalente a
//  if ('#F0F0F0'==$color)
//  {
//    $color='#FF0000';
//  } else
//  {
//    $color='#F0F0F0';
//  }

}
?>
</table>
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #30 (permalink)  
Antiguo 12/12/2002, 14:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Tema: Trucos
Pregunta: Muy bonito lo de alternar dos colores, pero ¿podrias hacerlo para rotar cuatro colores?
Respuesta:
Pues claro, con ayuda de nuestros amigos los arrays:
Código PHP:
<table>
<?php
$lista_colores
=array('#F0F0F0','#FF0000','#00FF00','#0000FF');
$num_colores=4;
$indice=0;
while(
$row=mysql_fetch_array())
{
  
$color=$lista_colores[$indice $num_colores];
  
$indice++;
  echo 
"<tr bgcolor=\"$color\"><td>Hola</td></tr>";
}
?>
</table>
Y simplemente modificando el valor de $num_colores y añadiendo los colores al array $lista_colores este codigo funciona para 5,6 y los que sean. Incluso para uno o dos colores.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 18:12.