Foros del Web » Programando para Internet » PHP »

Como imprimir el # del dia con php?

Estas en el tema de Como imprimir el # del dia con php? en el foro de PHP en Foros del Web. Cordial saludo, Con este script imprimo perfectamente el # del dia: <?php echo date(w); ?> Pero los maestros indican, (acerca de los errores): "Por eso ...
  #1 (permalink)  
Antiguo 17/01/2004, 11:55
 
Fecha de Ingreso: enero-2004
Mensajes: 89
Antigüedad: 20 años, 2 meses
Puntos: 0
Como imprimir el # del dia con php?

Cordial saludo,

Con este script imprimo perfectamente el # del dia:

<?php echo date(w); ?>

Pero los maestros indican, (acerca de los errores):

"Por eso mi recomendación de mostrar todos los mensajes en las primeras fases de desarrollo."

Tonces yo coloque mi php.ini que estava asi:

error_reporting=E_ALL & ~E_NOTICE

A esto:

error_reporting=E_ALL

Y entonces lo que me imprime es:

####################
# Notice: Use of undefined constant w - assumed 'w' in C:\222\felicidad\index.php on line 14
# 6
####################

Como pueden ver, al final me imprime el # del dia.

Tambien intente esto:

<?php $dia = date(w); echo $dia; ?>

Y tambien me va muy mal... : (
------------------------------------------
Tonces

1 // trabajando con:
"error_reporting=E_ALL"
Cual es la forma correcta de imprimir el # del dia?

2 // Por favor me indican lo mas que puedan e como trabajar correctamente con: "error_reporting=E_ALL".

Muchas gracias.

Última edición por CHAMO01; 17/01/2004 a las 11:58
  #2 (permalink)  
Antiguo 17/01/2004, 13:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Si te fijas en la documentación de date() .. el parámetro que acepta esa función es un "string" (cadena) y como tal ha de ir entre comillas .. (simples o dobles) .. pero si lo dejas SIN comillas .. PHP en primera instancia intentará interpretarlo como una CONSTANTE (y ese es el "noticice" que te está avisando de que NO es un nombre de constante válido .. Pero hubiera sido que ese w fuese una constante .. ahí no hubieras obtenido el valor esperado y todavía estarías preguntandote el "por qué":

www.php.net/date

Código PHP:
<?php echo date("w"); ?>
Recuerda siempre tener a mano el manual oficial de PHP para ver la sintax correcta y tipo de parámetros que acepte la función que uses.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 17/01/2004, 14:56
 
Fecha de Ingreso: enero-2004
Mensajes: 89
Antigüedad: 20 años, 2 meses
Puntos: 0
Gracias CLUSTER.

Pues.... imaginate que llevo meses de meses haciendo las cosas sin comillas...

Eso podria hacer que mis paginas fueran mas lentas?, (Ya las estoy corrigiendo).

Eso podria hacer mis paginas más vulnerables a ataques de hackers?

Te doy un ejemplo:

He corregido mi script de dias asi:

<?php

switch(date('w')) {
case "0";
$dia = 'Domingo';
break;
case "1";
$dia = 'Lunes';
break;
case "2";
$dia = 'Martes';
break;
case "3";
$dia = 'Miercoles';
break;
case "4";
$dia = 'Jueves';
break;
case "5";
$dia = 'Viernes';
break;
case "6";
$dia = 'Sabado';
break;
default;
$dia = "";
}
?>

Podrias tener la amabilidad de decirme por que utilizar para este script por ejemplo, comillas sencillas (''), o comilas dobles ("").

Que criterio debo tener a la hora de utilizarlas?.

Lo unico que se es que las sencillas me permiten utilizar dobles adentro sin error.

Por ejemplo:

$salida = 'Haz dejado el campo "Nombre" vacio';

De lo contrario tu sabes que tendria que haber utilizado \".

Ahora que pretendo corregir mis paginas tu me dices:

Utiliza dobles o sencillas.

Y yo me digo...

Quisiera utilizar las correctas.

Gracias.

Por favor indicame cuando simples y cuando dobles, o "cuales son "mas peligrosas"... Yo que se. no me se explicar muy bien.
  #4 (permalink)  
Antiguo 17/01/2004, 15:00
 
Fecha de Ingreso: enero-2004
Mensajes: 89
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta Entonces le hecho mano a las arrobas?

Por dar un ejemplo bobo como reneofito que soy:

Yo utilizaria sencillas por que me consumen menos bytes.

(creo).

Gracias si me enseñas +.

-----------------------------------------------------------------------------------

Pero ahora me salio este "rollo":

$HTTP_REFERER no siempre esta defiinida.

Por ejemplo si se ingresa directamente al URL.

Intente asi y no funciono:

<?php

if(!$HTTP_REFERER)
{$desde = 'Origen indefinido';}else{$desde = $HTTP_REFERER;}
echo $desde;

?>

Entonces definitivamente LO MAS CORRECTO ES ASI?:

<?php

$desde = @$HTTP_REFERER;
echo $desde;
echo "<A HREF='$PHP_SELF'>Index</A>";

?>

Colocando "@" al comienzo de las varibles?

Última edición por CHAMO01; 17/01/2004 a las 16:00
  #5 (permalink)  
Antiguo 19/01/2004, 08:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
** Toda función como ya te comenté requiere de X parámetros .. los cuales (su tipo) los definen en la documentación de esa función .. Si dice que tal parámetro es una cadena (string) . así debe ser "entrecomillada" sea simple o doble pero no sin comillas .. por qué las "constantes" son así en PHP. Y en PHP puedes definir constantes tu (con define() ) o bien podría interferir con las que PHP tiene definidas por defecto (que son muchas).

** El uso de comillas simples o dobles .. Si PHP tiene una cadena tipo:

$nose="bla blab la";

PHP va a "entrar" a "parsear" (interpretar) esa cadena en busca de posíbles variables que darle su valor .. como por ejemplo:

$nose = "bla bla $variable bla";

Sin embargo .. si usas comillas simples . PHP no entra a evaluar esa cadena .. por ende .. para el caso primero sería algo más optimo el tiempo/recursos de proceso de esa asignación de variable ...

Recuerda que puedes concatenar para hacer cosas como:

$nose = 'bla bla'.$variable.' bla';

** La arroba delante de variables/funciones eliminan sólo el mensaje de error que puedan ocasionar .. pero el -error- sigue estando ahí.

Por ejemplo .. para vers si una variable está definida o no puedes usar:

if (isset($HTTP_REFFERER)){
//hacer algo ..
}

o empty() ..

** El uso de las variables no es del todo SEGURO .. usas $HTTP_REFERER asumiendolo como global .. cuando deberías usar (si usas PHP 4.1.0 en adelante) los array superglobales: $_SERVER ... (para tu caso: $_SERVER['HTTP_REFERER'] ) o en su defecto (PHP versión inferior a 4.1.0 y desde 4.0.6 en adelante): $HTTP_SERVER_VARS (array) .. En una de las primeras FAQ's está comentado este tema. Revisalá.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:15.