Error de php: "session-start" con securimage

Status
Not open for further replies.

berty

New Member
Messages
11
Reaction score
0
Points
0
Hola, soy nuevo en x10hosting, aunque ya he estado en otros servidores de hosting, pero por ahora el que mas confianza me inspira es este. ;)

Bueno, mi problema es que estoy utilizando securimage (un script que crea una imagen captcha, de la web: www.phpcaptcha.org) y al hacer la validacion me da este error: "Warning: session_start() [function: session-start]: Cannot send session cache limiter - headers already sent (output started at"

Este script me ha funcionado en otros hosts, no entiendo porque aqui no...

¿Alguien sabe porque?


Gracias de antemano!
 

TonnyORG

I Code Things
Community Support
Messages
5,907
Reaction score
16
Points
38
Primero k nada bienvenido y pues x10 hasta el momento para mi es el mejor hoster en toda la www ^^
mira, lo ke pasa k aki el php esta dividido, dividido? si veras el php se divide en tres versiones basic (permite pokos scripts), intermediate (permite la mayoria de los scripts php) y no rekuerdo el nombre de la otra (agarra scripts muy muy especiales y poko utilizados), por defaul esta la version basica de php, lo que debes hacer es entrar a x10hosting.com/account y pedir la version intermediate de php y con esa todo trabajara bien ^^


salu2
 
Last edited:

Fedlerner

Former Adm & Team Manager
Community Support
Messages
12,934
Reaction score
6
Points
38
Veo que ya tienes la versión "Intermediate" de PHP.
El error que te da me parece que es un error de tu script. Vuelve a descargarlo de la web del creador y subelo de vuelta. Si sigue sin funcionar te recomendaría que postees en el foro de donde hallas descargado dicho script. Depende de lo que te digan veremos si es un problema que nosotros podamos solucionar o no.

Saludos!
 

berty

New Member
Messages
11
Reaction score
0
Points
0
Gracias por las respuestas, pero he de decir, que no hay problema alguno con mi script, pues siempre me ha funcionado en otros hosts, y he subido a x10 hosting exactamente el mismo archivo, y ahora por alguna razon me da error...

I si, tengo la version intermediate de php, ¿seria necesario que enviara una petición para una version superior de php?

Gracias de nuevo!
 

TonnyORG

I Code Things
Community Support
Messages
5,907
Reaction score
16
Points
38
si el script esta correcto supongo k si ^^


salu2
 

Kansy

Community Advocate
Community Support
Prime Account
Messages
2,621
Reaction score
9
Points
38
mmm sinceramente... en intermediate deberia estar solucionado, podrias postear el error entero porfavor?
 

berty

New Member
Messages
11
Reaction score
0
Points
0
Error completo:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /*/*/public_html/encabezado.php:7) in /*/*/public_html/securimage/securimage.php on line 422

(he puesto arteriscos en los nombres de carpeta, por seguridad nada mas)

Gracias de nuevo a todos :)

EDICION: Se me olvido añadir: El script funciona perfectamente: es un formulario de contacto con esta imagen CAPTCHA, generada por securimage.php: lo que hace es enviar un email a mi cuenta de correo. El email se envia cuando introduzco correctamente el codigo CAPTCHA, pero me molesta mucho estéticamente ese error de php, pues da la imágen de que el email en realidad no se envió, cuando si se ha enviado, pues lo tengo en mi bandeja de entrada.
 
Last edited:

Fedlerner

Former Adm & Team Manager
Community Support
Messages
12,934
Reaction score
6
Points
38
Dame un link a el formulario que te este tirando el error. Así reproduzco el error y veo cual puede ser el problema.
Si no queres postearlo públicamente mandamelo por PM.

Saludos!
 

berty

New Member
Messages
11
Reaction score
0
Points
0
Muchas gracias por vuestra ayuda. Bueno este es el código de mi formulario:
PHP:
<?php

$para = "tu@servidor.com"; /*Persona que recibira el mensaje*/
$minmensaje=40; /*Numero minimo de caracteres para el mensaje*/

if (!isset($_POST['enviar'])) { /*Si no se ha pulsado el boton enviar, muestra el formulario*/

  mostrarFormulario();

} else { /*Se comprueba que no hay errores y si es asi, se envia*/

/******************************************
* COMPROBAR QUE NO HAY ERRORES
*
*******************************************/

  $errores = 0; /*Numero de errores*/

  if(empty($_POST['nombre'])) {
    $errores = $errores+1;
    $errstr[] = "Por favor, introduzca su nombre."; /*$errstr: Array que incluye todos los mensajes de error*/
  }
  if(empty($_POST['email'])){
    $errores = $errores+1;
    $errstr[] = "Por favor, introduzca una direcci&oacute;n de email.";
  }else{
   require ("verifyemail.php");
   if(!Validate_Email_Address_Format($_POST['email'])) {
    $errores = $errores+1;
    $errstr[] = "Por favor, introduzca una direcci&oacute;n de email v&aacute;lida.";
   }
  }
  if (empty($_POST['asunto'])) {
    $errores = $errores+1;
    $errstr[] = "Por favor, introduzca el asunto.";
  } 
  
   if(empty($_POST['mensaje'])) {
    $errores = $errores+1;
    $errstr[] = "Por favor, introduzca el mensaje.";
  }else{
    $longitudmensaje=strlen($_POST['mensaje']);
   if ($longitudmensaje < $minmensaje) {
     $errores = $errores+1;
     $errstr[] = "El m&iacute;nimo de caracteres para el mensaje son " . $minmensaje . ".";
   }
  }
  
  if(empty($_POST['code'])) {
    $errores = $errores+1;
    $errstr[] = "Por favor, escriba los caracteres de la im&aacute;gen.";
  } else {
      include("securimage/securimage.php");
      $img = new Securimage();
      $valid = $img->check($_POST['code']);
         if(!$valid) {
           $errores = $errores+1;
           $errstr[] = "El c&oacute;digo introducido es incorrecto.";
         }
  }

  
  
/******************************************
* MOSTRAR ERRORES
* Si hay errores, se muestran de uno en uno
********************************************/

  if ($errores == 1) { /*Si solo hay un error, muestra el mensaje de error y el formulario de nuevo*/
    echo "\n<h3>Ha ocurrido un error:</h3>\n";
    foreach($errstr as $err) {
    echo "<li> " . $err . "</li>\n";
    }

    echo "\n\n<br />\n\n";
    mostrarFormulario();
    
    
    }else if($errores > 1){ /*Si hay mas de un error enumera los mensajes de error y muestra el formulario de nuevo*/
        echo "\n<br /><h3>Han ocurrido " . $errores . " errores:</h3>\n";
    foreach($errstr as $err) {
      echo "<li> " . $err . "</li>\n";
    }

    echo "\n\n<br />\n\n";
    mostrarFormulario();


  } else { /*Si no hay errores, se envia el email*/
    @mail($para, "Mensaje enviado de la web - " . $_POST['asunto'],
    "Enviado el " . date("r") . ". " . $_POST['nombre'] . " (" . $_POST['email'] . ") envio el siguiente mensaje:\n" . "\n\n" . stripslashes($_POST['mensaje']), "From: {$_POST['nombre']} <{$_POST['email']}>");

    echo <<<EOD
    <center>Mensaje enviado correctamente.</center><br />
EOD;

  }

} 

function mostrarFormulario() /*Función que simplemente muestra el formulario de contacto*/
{
  $_POST['mensaje'] = @htmlspecialchars(@$_POST['mensaje']);

   echo <<<EOD
<br />
<form method="POST">
<table class="dl" cellpadding="5" cellspacing="1" width="100%" align="center">
  <tr align="left" valign="top">
    <td width="55" class="body">Nombre:</td>
    <td class="body"><input type="text" name="nombre" value="{$_POST['nombre']}" /></td>
  </tr>
  <tr align="left" valign="top">
    <td class="body">Tu email:</td>
    <td class="body"><input type="text" name="email" value="{$_POST['email']}" /></td>
  </tr>
  <tr align="left" valign="top">
    <td class="body">Asunto:</td>
    <td class="body"><input type="text" name="asunto" value="{$_POST['asunto']}" /></td>
  </tr>
  <tr align="left" valign="top">
    <td class="body">Mensaje:</td>
    <td class="body"><textarea name="mensaje" rows="8" cols="36">{$_POST['mensaje']}</textarea></td>
  </tr>
</table>
<table class="dl" cellpadding="5" cellspacing="1" width="100%" align="center">
  <tr align="left" valign="bottom">
    <td width="55" class="body"></td>
    <td class="body"><br /><img src="/securimage/securimage_show.php?sid=
EOD;
echo md5(uniqid(time()));
echo <<<EOD
"></td>
  </tr>
  </table>
<table class="dl" cellpadding="5" cellspacing="1" width="100%" align="center">
  <tr align="left" valign="top">
    <td width="227" class="body"><br />Introduce los caracteres de la im&aacute;gen:</td>
    <td class="body"><br /><input type="text" name="code" /><p><br /></p></td>
  </tr>
  <tr align="left" valign="bottom">
    <td width="227" class="body"></td>
    <td class="body"><input type="submit" name="enviar" value="Enviar" /></td>
  <tr>
</table>
    </form>
EOD;

}

?>
Bueno el código de securimage.php es muuyy largoo, y aqui no cabe, pero lo podeis descargar de aqui: http://www.phpcaptcha.org/latest.zip
 
Last edited:

Kansy

Community Advocate
Community Support
Prime Account
Messages
2,621
Reaction score
9
Points
38
Puedes poner el codigo de encabezado.php ¿?
 

berty

New Member
Messages
11
Reaction score
0
Points
0
encabezado.php no aparece en este script (al menos yo no lo veo) pero vamos es simplemente un php que genera el codigo html del encabezado de todas las paginas de mi sitio web.


Por cierto, acabo de instalarme un servidor apache y php 5.2.5. He probado el script de mi formulario con la configuracion de php.ini por defecto y me funciona perfectamente, sin error alguno. ¿Podría ser una mala configuración de php.ini de x10hosting?
 
Last edited:

Kansy

Community Advocate
Community Support
Prime Account
Messages
2,621
Reaction score
9
Points
38
No tendria por que....


Dije lo de encabezado, porque a lo mejor algo hay en encabezado.php que ya crea la sesion y entra en conflicto con el script...

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /*/*/public_html/encabezado.php:7) in /*/*/public_html/securimage/securimage.php on line 422

ves... headers already sent (output started at /*/*/public_html/encabezado.php:7


Alguna relacion tiene que haber en el error...
 

berty

New Member
Messages
11
Reaction score
0
Points
0
Gracias a todos de nuevo por vuestra ayuda!

El encabezado no crea ninguna sesion, o eso creo...:
encabezado.php:
PHP:
<?php $nombre="Nombre de la web" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title><?php echo $nombre ?> - <?php echo $pagina ?></title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<meta name="description" content="description"/>
<meta name="keywords" content="keywords"/> 
<meta name="author" content="author"/>
<link rel="stylesheet" type="text/css" href="/estilos.css" media="screen"/>
<?php include("encabezado.html"); //Simplemente la estructura de la página (incluye la barra de navegacion, etc) ?>

Al inicio de cada pagina tengo este código (incluyendo la del formulario de contacto):
PHP:
<?php
$pagina="Cont&aacute;ctanos";//O "Pagina principal"
include("encabezado.php");
?>


No hay nada aparte de securimage.php que este creando una sesion.

Como ya dije antes, tengo instalado php 5.2.5 y apache 2.2 en mi ordenador y funciona perfectamente sin mostrar ningún error. Cual es la configuracion del php.ini de x10 hosting, con el plan "intermediate" de php? (si se puede conocer)

Gracias de nuevo a todos!
 
Last edited:

Kansy

Community Advocate
Community Support
Prime Account
Messages
2,621
Reaction score
9
Points
38
Veo que en la página de contacto ya no tienes el error.

Cierro tema... Recuerda que puedes reabrirlo cuando quieras ^^

cerradoff0.png
 

berty

New Member
Messages
11
Reaction score
0
Points
0
Perdon creo que no me expresé bien. Lo que queria decir es que he probado el script php en MI ORDENADOR SIN subirlo al servidor de X10hosting y en MI ORDENADOR funcionaba perfectamente sin mostrar ningun error (tengo php 5.2.5 y apache 2.2 instalados).Tengo la configuracion de php.ini por defecto.

Cuando subo el script al servidor de x10hosting y lo pruebo ya me muestra el error:
Warning: session_start() [function:session-start]: Cannot send session cache limiter - headers already sent (output started at /*/*/*/encabezado.php:7) in /*/*/*/securimage/securimage.php on line 422

El mensaje de email realmente SI se envia, pero aparece ese mensaje de error...

¿Como puedo saber la configuración de php.ini en mi cuenta? Asi configuro mi ordenador de la misma forma e intento arreglar el script.

Saludos.
 

Danfelbm

Member
Messages
364
Reaction score
0
Points
16
No sé que complicado es tu problema en realidad, aunque creo que sé por donde va pero no estoy seguro... Igual te hiria sugiriendo que uses otro script que te dé menos problemas, de tipo contacto hay muchos, uno bueno es el de VictorCL (victorcl.com) hay buenos ahí.
 

berty

New Member
Messages
11
Reaction score
0
Points
0
El script del formulario de contacto es mio y con ese no hay ningun problema, el problema es el generador de la imagen CAPTCHA, que me funciona perfectamente en todos los servidores de hosting gratuito con php, excepto en x10hosting, pues me muestra un error de compilación que no debería de aparecer.

Por favor, si no hay solucion posible a mi problema diganmelo y asi no pierdo el tiempo en este hosting, y me busco uno en el que me funcione el script.

Gracias de nuevo por vuestra ayuda a todos!
 
Status
Not open for further replies.
Top