Foros del Web » Programando para Internet » PHP »

Diferencias entre PHP y PHP 4

Estas en el tema de Diferencias entre PHP y PHP 4 en el foro de PHP en Foros del Web. Hola Amigos Foreros: En las ultimas semanas me he topado con una gran muralla, en mi web host, hubiera preferido un host dentro de la ...
  #1 (permalink)  
Antiguo 10/11/2003, 04:31
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
Diferencias entre PHP y PHP 4

Hola Amigos Foreros:

En las ultimas semanas me he topado con una gran muralla, en mi web host, hubiera preferido un host dentro de la matrix antes de sufrir lo que he sufrido en estos ultimos dias.

El problema se trata de un formulario para enviar un mensaje y se deposite en una cuenta de correo. Segui todos los pasos de un tutorial hasta lograr hacer funcionar en phpform en un servidor linux... todo hasta ahi iba bien; pero a la hora de querer utilizar ese mismo phpform en mi sitio... :-p :-p ... que le hace feo mi sitio y no me permite que funcione.

Leyendo las especificaciones del servidor en donde estoy alojado me encuentro con que es un windows server y que acepta php4.

Que tiene de diferente php a php4 que no me permita enviar mi formulario y me mande la pagina como error??

Intente cambiar la extension de php a php4, pero aun asi no funciono; realmente soy nuevo en php, pero si necesito help de como poder solucionar mi problema de php o donde podre encontrar un mailform hecho en php 4.

Por su atencion, gracias, cualquiere informacion es valiosa!!
__________________
STANMX • Buscando la accesibilidad :arriba:
  #2 (permalink)  
Antiguo 10/11/2003, 05:11
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

PHP es el nombre generico del lenguaje. Este tiene versiones, y subversiones. Por ejemplo, la ultima version estable es la 4.3.4 (o 4.3.3, no recuerdo), pero ya hay betas de la version 5.

Luego tambien hay tener en cuenta que PHP es tan flexible que dependiendo de la configuracion, la misma version puede ser totalmente incompatible de una configuracion a otra. El solo cambio de una directiva, por ejemplo la register_globals, puede hacer que un script deje de funcionar.

Asi que no es tanto de versiones, sino de configuraciones. Puedes ver la configuracion usando la funcion phpinfo() (www.php.net/phpinfo).

Como no se a que te refieres con "phpform" (no se si es un prefabricado o simplemente como llamas a un formulario con PHP), no puedo decirte cual es la causa concreta.

Pero si va de formularios, mira la directiva register_globals, mira en las FAQs la que trata de ella, veras que problemas da, como hay que usarla, el uso de los arrays superglobales ($_POST, $_GET, etc, altamente recomendado), ... . Suele ser lo que da mas problemas.

Ahora leo que era un mailform. Eso quiere decir que tambien depende de la configuracion de email de PHP y del servidor. Si el servidor no acepta el envio de emails, no te funcionara el mailform.

Y sobre un mailform que funcione, hace tiempo se hizo uno en un mensaje, no se si se puso en la FAQ. Pero si buscas en el foro por 'mailform' o 'formmail' (no se como se llama) deberia salir. O si alguien se acuerda del link.

Suerte.

<editado> En una primera busqueda he localizado http://www.forosdelweb.com/showthrea...5&pagenumber=1 </editado>
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 10/11/2003 a las 05:16
  #3 (permalink)  
Antiguo 10/11/2003, 06:12
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
Josemi... este es el codigo que ultilice en form.

<----------------------------------------------------------------->
<form method=post action="thanks.php"><table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="108"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Su Nombre:</font></td>
<td width="192">
<input type="text" name="name">
</td>
</tr>
<tr>
<td width="108"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Su E-mail:</font></td>
<td width="192">
<input type="text" name="thereemail">
</td>
</tr>
<tr>
<td width="108" valign="top"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Su
Mensaje:</font></td>
<td width="192">
<textarea name="message"></textarea>
</td>
</tr>
<tr>
<td width="108">&nbsp;</td>
<td width="192">
<input type="submit" name="Submit" value="Enviar Mensaje">
</td>
</tr>
</table>
</form>
__________________
STANMX • Buscando la accesibilidad :arriba:
  #4 (permalink)  
Antiguo 10/11/2003, 06:13
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
y este en thanks.php

<---------------------------------------------------------------------->
<?php
if($sentemail == "2"){
include("sorry.php");
}else{
$num = $sentmessage + 1;
setcookie("sentemail","$num",time()+600); //set the cookie
$email = "Sender Name:\t$name\nSender E- Mail:\t$thereemail\nMessage:\t$message\nIP:\t$REMO TE_ADDR\n\n";
$to = "[email protected]";
$subject = "Site Message";
$mailheaders = "From: $thereemail <> \n";
$mailheaders .= "Reply-To: $thereemail\n\n";
mail($to, $subject, $email, $mailheaders);
include("thanksecho.php");
}
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

</body>
</html>
__________________
STANMX • Buscando la accesibilidad :arriba:
  #5 (permalink)  
Antiguo 10/11/2003, 06:15
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
thanksecho.php y sorry.php no contienen codigo php, solo son las extensiones.

Espero puedas ayudarme a ver que es lo que no entra dentro de los estandares de php 4, ya me estuve documentando; pero aun no encuentro el problema. GRaciaS.
__________________
STANMX • Buscando la accesibilidad :arriba:
  #6 (permalink)  
Antiguo 10/11/2003, 06:34
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Bueno, ya te he dicho que dependiendo configuraciones, este codigo funcionaria en PHP 4.

Pero por lo que veo, este codigo solo funciona si la directiva register_globals esta a ON. Si miras en uno de los primeros mensajes de las FAQs, Cluster explica que supone esto.

Mira en el php.ini o el lo devuelto por phpinfo() (www.php.net/phpinfo) el valor de esa directiva. Si esta a OFF, tendras que usar los arrays superglobales para acceder a las cookie y a los parametros del formulario.

El otro posible problema es la funcion mail(). La funcion mail() devuelve false en caso de error de envio del email al servidor de salida. Si haces algo como:
Código PHP:
if (mail($to$subject$email$mailheaders)) {
  include(
"thanksecho.php"); 
} else {
  echo 
"error de mail";

Y tambien ten en cuenta que aunque mail() devuelva true (correcto), el email puede no llegar al destino por innumerables causas (filtros antispam, limite de emails salientes de tu server, ...).

Y ahora que me fijo, otro problema puede ser la directiva include_path. Si esta directiva no incluye el '.', para referencian un fichero a incluir del mismo directorio, tienes que indicarselo con "./thanksecho.php".

Pero ya te digo, que son cambios de la configuracion, no de la version de PHP.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 11/11/2003, 00:55
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
entonces deberia de usar...

if (mail($to, $subject, $email, $mailheaders)) {
include("/thanksecho.php");
} else {
echo "correcto el mail";
}


??????????????????????????
__________________
STANMX • Buscando la accesibilidad :arriba:
  #8 (permalink)  
Antiguo 11/11/2003, 01:10
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
Mira... create un archivo llamado "info.php" que sólo contenga lo siguiente:

<?
phpinfo();
?>

Luego lo subes a tu servidor y lo abres en tu navegador.
Te saldrán unas tablas con información de la configuración del php instalado en el servidor.
Hay una tabla cuya primera columna se llama "directivas"... busca la directiva "register_globals" y mira si está en "on" o en "off"... y nos cuentas.

Saludos
  #9 (permalink)  
Antiguo 11/11/2003, 01:17
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
Cita:
Que tiene de diferente php a php4 que no me permita enviar mi formulario y me mande la pagina como error??
Creo que se nos ha olvidado preguntarte

¿cuál es e mensaje de error que te da?Los mensajes de error te indican el archivo en el que se produjo y además la línea de código. Pues nos cuentas qué dice ese error y qué hay en las líneas que te indica como error...

Saludos
  #10 (permalink)  
Antiguo 11/11/2003, 01:27
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
jpinedo. el mensaje que me aparece de error es:

The page cannot be displayed
The page you are looking for cannot be displayed because the page address is incorrect.

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

Please try the following:

If you typed the page address in the Address bar, check that it is entered correctly.

Open the www.sistemasitt.com home page and then look for links to the information you want.
HTTP 405 - Resource not allowed
Internet Information Services

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

Technical Information (for support personnel)

More information:
Microsoft Support
__________________
STANMX • Buscando la accesibilidad :arriba:
  #11 (permalink)  
Antiguo 11/11/2003, 01:28
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
sobre lo que me dijiste de poner

<?
phpinfo();
?>

no me aparece nada... solo en blanco; si elimino el resto del codigo y solo dejo este aparece el mismo codigo.

http://www.sistemasitt.com/info.php
__________________
STANMX • Buscando la accesibilidad :arriba:
  #12 (permalink)  
Antiguo 11/11/2003, 01:37
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 2 meses
Puntos: 41
Si no me equivoco...
La página de tu formulario se ve bien... tú llenas los campos y le das a "Enviar mensaje"... y zaz! te sale ese error...
Si es así, entonces antes que nada... verifica que el nombre de archivo que pones el el action del formulario sea exactamente igual al nombre del archivo.... o sea que el archivo se llame "thanks.php"... así, todo en minúsculas y nada más...

saludos
  #13 (permalink)  
Antiguo 11/11/2003, 01:53
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
<form method=post action="thanks.php">

y se llama thanks.php el archivo

http://www.sistemasitt.com/form.htm
__________________
STANMX • Buscando la accesibilidad :arriba:
  #14 (permalink)  
Antiguo 11/11/2003, 02:01
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
Lo mejor para saber cuales son las diferencias entre versiones es leerse el Chagelog que indica los cambios .....
__________________
Usuario registrado de Linux #288725
  #15 (permalink)  
Antiguo 11/11/2003, 02:05
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
chagelog??
__________________
STANMX • Buscando la accesibilidad :arriba:
  #16 (permalink)  
Antiguo 11/11/2003, 02:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

He intentado acceder al link donde pones info.php y me da la opcion de descargar la pagina. Es decir, no soporta PHP con la extension .php.

Lo mejor es que hables con tu empresa de hosting y que te de los pasos basicos para usar PHP: extension de los ficheros. Luego crea el info con esa extension (y usa <?php ?>, no <? ?>).

Una vez que veas la configuracion de PHP en esa pagina, sabras que PHP funciona en tu servidor. Porque puede ser que tu hosting soporte PHP, pero que no lo tengas activado en tu cuenta.

Dada la flexibilidad de configuracion de PHP, lo mas rapido es que le preguntes a tu hosting. Nosotros como mucho podemos ir diciendote cosas que probar.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #17 (permalink)  
Antiguo 11/11/2003, 08:18
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años
Puntos: 5
perdon, Changelog y puedes verlos en: http://cvs.php.net/cvs.php/php-src?login=2
__________________
Usuario registrado de Linux #288725
  #18 (permalink)  
Antiguo 11/11/2003, 14:13
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
checare eso con mi proveedor y gracias por poder contar con su apoyo, apenas me estoy iniciando en esto de php, pero me gustaria llegas mar adentro con el.
__________________
STANMX • Buscando la accesibilidad :arriba:
  #19 (permalink)  
Antiguo 11/11/2003, 14:16
Avatar de stanmx  
Fecha de Ingreso: noviembre-2002
Ubicación: Tijuana
Mensajes: 192
Antigüedad: 22 años
Puntos: 0
epplestun vere que show con los changelog... thanks a todos.
__________________
STANMX • Buscando la accesibilidad :arriba:
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 14:08.