Título: Ayuda con inicio de sesión Publicado por: [@] en 8 Abril 2010, 18:29 pm 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. Título: Re: Ayuda con inicio de sesión Publicado por: Red Mx en 8 Abril 2010, 18:41 pm Código
Ese if no sirve de nada. Ademas Código Debe ir antes de todo. ejemplo Código
lo que hace session_start(); es basicamente prepararse para el uso de sesiones las cuales mas adelante puede usar $_SESSION['PrevUrl'] Título: Re: Ayuda con inicio de sesión Publicado por: [@] en 8 Abril 2010, 18:52 pm Gracias, he cambiado eso, pero ahora cuando inicio sesión me aparece sólo 1 error que es:
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 61 Título: Re: Ayuda con inicio de sesión Publicado por: Shell Root en 8 Abril 2010, 19:05 pm y cual es la linea 13 del archivo conexionejemplo.php
Además de la linea 61 del archivo login.php Título: Re: Ayuda con inicio de sesión Publicado por: [@] en 8 Abril 2010, 19:47 pm He modificado ahora los archivos y ahora las líneas de los errores son otras:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhost/ejemplo.net/home/html/Connections/conexionejemplo.php:10) in /var/www/vhost/ejemplo.net/home/html/login.php on line 59 Archivo conexionejemplo: 1. <?php 2. # FileName="Connection_php_mysql.htm" 3. # Type="MYSQL" 4. # HTTP="true" 5. $hostname_conexionejemplo = "mysql.ejemplo.net"; 6. $database_conexionejemplo = "prueba"; 7. $username_conexionejemplo = "prueba"; 8. $password_conexionejemplo = "ejemplo321"; 9. $conexionejemplo = mysql_pconnect($hostname_conexionejemplo, $username_conexionejemplo, $password_conexionejemplo) or trigger_error(mysql_error(),E_USER_ERROR); 10. ?> Nota: el nombre de la base de datos y el nombre de usuario es el mismo. Archivo login.php 33. <?php 34. // *** Validate request to login to this site. 35. $loginFormAction = $_SERVER['PHP_SELF']; 36. if (isset($_GET['accesscheck'])) { 37. $_SESSION['PrevUrl'] = $_GET['accesscheck']; 38. } 39. if (isset($_POST['nombre'])) { 40. $loginUsername=$_POST['nombre']; 41. $password=$_POST['contrase']; 42. $MM_fldUserAuthorization = ""; 43. $MM_redirectLoginSuccess = "admin.php"; 44. $MM_redirectLoginFailed = "index.php"; 45. $MM_redirecttoReferrer = false; 46. mysql_select_db($database_conexionejemplo, $conexionejemplo); 47. $LoginRS__query=sprintf("SELECT nombre, contrase FROM administrar WHERE nombre=%s AND contrase=%s", 48. GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 49. $LoginRS = mysql_query($LoginRS__query, $conexionejemplo) or die(mysql_error()); 50. $loginFoundUser = mysql_num_rows($LoginRS); 51. if ($loginFoundUser) { 52. $loginStrGroup = ""; 53. //declare two session variables and assign them 54. $_SESSION['MM_Username'] = $loginUsername; 55. $_SESSION['MM_UserGroup'] = $loginStrGroup; 56. if (isset($_SESSION['PrevUrl']) && false) { 57. $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; 58. } 59. header("Location: ". $MM_redirectLoginSuccess ); 60. } 61. else { 62. header("Location: ". $MM_redirectLoginFailed ); 63. } 64. } 65. ?> Título: Re: Ayuda con inicio de sesión Publicado por: Shell Root en 8 Abril 2010, 19:54 pm mmm leed :http://www.comunidadhosting.com/programacion-y-diseno-web/1657-error-php-warning-cannot-modify-header-information-headers-already-sent.html
Título: Re: Ayuda con inicio de sesión Publicado por: [@] en 8 Abril 2010, 20:01 pm Ya funciona!!!!!!!!!!!!!
Gracias!! Leí esa página hace varios días e hice eso, pero ahora lo he repasado otra vez y junto con lo que me había dicho Red Mx y tú ya está arreglado. |