Llevo más de una semana con estos errores y no hay manera de arreglarlos en el hosting que estoy ahora (recién cambiado). Me cambié porque quería contratar un servicio que el anterior hosting que estaba no tenía.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/vhost/ejemplo.net/home/html/Connections/conexionejemplo.php:13) in /var/www/vhost/ejemplo.net/home/html/login.php on line 33
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/ejemplo.net/home/html/Connections/conexionejemplo.php:13) in /var/www/vhost/ejemplo.net/home/html/login.php on line 59
La página la subí de prueba a un hosting gratuito y funciona perfecta (puedo loguearme sin problemas) y en el hosting que la tengo ahora mismo me aparecen esos errores.
He leído ya muchas veces que lo de session_start(); debe ponerse al principio del código de la página, pues si hago eso desaparecen esos errores pero cuando me logueo aparece otro error que es:
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /var/www/vhost/ejemplo.net/home/html/login.php on line 17
Fatal error: Call to undefined function getsqlvaluestring() in /var/www/vhost/ejemplo.net/home/html/login.php on line 19
También he visto lo de los espacios en blanco y todo.
Aquí pongo el código:
<?php require_once('Connections/conexionejemplo.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
session_start();
}
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
if (isset($_POST['nombre'])) {
$loginUsername=$_POST['nombre'];
$password=$_POST['contrase'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "admin.php";
$MM_redirectLoginFailed = "index.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_conexionejemplo, $conexionejemplo);
$LoginRS__query=sprintf("SELECT nombre, contrase FROM administrar WHERE nombre=%s AND contrase=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text"));
$LoginRS = mysql_query($LoginRS__query, $conexionejemplo) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
//declare two session variables and assign them
$_SESSION['MM_Username'] = $loginUsername;
$_SESSION['MM_UserGroup'] = $loginStrGroup;
if (isset($_SESSION['PrevUrl']) && false) {
$MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_redirectLoginSuccess );
}
else {
header("Location: ". $MM_redirectLoginFailed );
}
}
?>
Ya he pedido ayuda al hosting y nada, parece que no quiere ayudarme.
He escrito muchas veces y esta es una de las respuestas:
Estimado cliente:
Te informamos que los errores mostrados son referentes al codigo. Te hemos facilitado anteriormente una URL donde se puede verificar la configuración del servicio para adecuar la programación y/o solicitar los cambios de configuración que estimes necesários.
Te recordamos que nosotros no facilitamos soporte de desarrollo.
Aquí pongo la configuración php de session del hosting donde da problemas la página:
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
Y aquí del hosting donde no da problemas:
session
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
Si alguien quiere ayudarme lo agradecería.