Ayuda con inicio de sesión

Iniciado por [@], 8 Abril 2010, 18:29 PM

0 Miembros y 1 Visitante están viendo este tema.

[@]

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.

Red Mx

Código (php) [Seleccionar]
if (!isset($_SESSION)) {
session_start();
}



Ese if no sirve de nada.


Ademas

Código (php) [Seleccionar]
session_start();

Debe ir antes de todo.

ejemplo


Código (php) [Seleccionar]
<?php 
session_start
();
require_once(
'Connections/conexionejemplo.php'); 
?>


lo que hace session_start();  es basicamente prepararse para el uso de sesiones las cuales mas adelante puede usar $_SESSION['PrevUrl']

Desarrollar Malware Es Causa De Cancer...

[@]

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

Shell Root

y cual es la linea 13 del archivo conexionejemplo.php
Además de la linea 61 del archivo login.php
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

[@]

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. ?>

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

[@]

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.