hacer que mi formulario PHP funcione en un servidor [duplicado]

Posible duplicado:
Encabezados ya enviados por PHP

Advertencia: session_start() [function.session-start]: no se puede enviar la cookie de sesión; los encabezados ya se enviaron (salida iniciada en D:\USBWebserver_v8_en\root\pages\login.php:1) en D:\USBWebserver_v8_en\root\pages \login.php en la línea 0

Creé un formulario de inicio de sesión con código html, tengo mi servidor configurado con todas las configuraciones y todo eso, estoy usando USB Webserver V8, tiene la función phpmyadmin, así que creé una base de datos y usé Dreamweaver. Para vincular los campos de la base de datos y esas cosas, luego usé la función de campo de validación de inicio de sesión en Dream Weaver para hacer que la página vaya a donde sea que tenga éxito o no.

Cuando lo abro en mi servidor, recibo los siguientes errores incluso antes de escribir algo

Advertencia: session_start() [function.session-start]: no se puede enviar la cookie de sesión; los encabezados ya se enviaron (salida iniciada en D:\USBWebserver_v8_en\root\pages\login.php:1) en D:\USBWebserver_v8_en\root\pages \login.php en la línea 0

Advertencia: session_start() [function.session-start]: no se puede enviar el limitador de caché de sesión: los encabezados ya se enviaron (salida iniciada en D:\USBWebserver_v8_en\root\pages\login.php:1) en D:\USBWebserver_v8_en\root\pages \login.php en la línea 0

Advertencia: session_regenerate_id() [function.session-regenerate-id]: no se puede regenerar el id de la sesión; los encabezados ya se enviaron en D:\USBWebserver_v8_en\root\pages\login.php en la línea 62

cuando se escribe algo, no se produce ninguna validación y también recibo otro mensaje Advertencia: No se puede modificar la información del encabezado: los encabezados ya enviados por (salida iniciada en D:\USBWebserver_v8_en\root\pages\login.php:1) en D:\USBWebserver_v8_en\ root\pages\login.php en la línea 70

Este es el código en mi formulario

<form METHOD="POST" action="<?php echo $loginFormAction; ?>" id="form2">
<p>&nbsp;</p>
<p><span class="letter">Username:</span>
<input type="text"name="username""username id="username"">
</p>
<p><span class="letter">Password: </span>
<input type="password"name="password"/>
</p>
<p>
<input name="submit" type="submit" class="content1" value="Login" />
</p>
<p>&nbsp;</p>
<!-- end .content -->
</form>

y este es mi código php

<?php virtual('/Connections/reuben1.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "",  $theNotDefinedValue = "") 
{
if (PHP_VERSION < 6) {
$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['username'])) {
$loginUsername=$_POST['username'];
$password=$_POST['password'];
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "/Pages/Home.html";
$MM_redirectLoginFailed = "/Pages/Help.html";
$MM_redirecttoReferrer = false;
mysql_select_db($database_reuben1, $reuben1);

$LoginRS__query=sprintf("SELECT username, passwowrd FROM users WHERE username=%s AND   passwowrd=%s",
GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

$LoginRS = mysql_query($LoginRS__query, $reuben1) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
if (PHP_VERSION >= 5.1) {session_regenerate_id(true);} else {session_regenerate_id();}
//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 );
}
}
?>

No tengo ni idea de por qué no funciona :(

preguntado el 03 de mayo de 12 a las 20:05

Pregunta demasiado larga, mala sangría, no vale la pena leer... :( -

@MikeB: Algún día crearé un asistente interactivo que pueda responder este tipo de preguntas. -

@hakre El regreso de recortado? :D -

2 Respuestas

Mire la línea 1 de D:\USBWebserver_v8_en\root\pages\login.php

Está generando algo allí que lo detiene al iniciar la sesión. Esto podría ser una línea vacía o un espacio antes de la etiqueta php de apertura

contestado el 03 de mayo de 12 a las 20:05

sí, tenías razón, había otra etiqueta php inicial después de la etiqueta php inicial, pero aún así volví a cargar el archivo y aún nada, estaba pensando que podría tener que ver con que estoy usando el servidor usb 8.0 cuando el último es 8.5 ¿quizás? - Rubén Perryman

@ReubenPerryman: No. Lea el mensaje de error. Entiendelo. Solucione el problema. Todo está bien entonces. - hakré

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent

Lo que esto significa es que PHP ya ha enviado algunos datos al navegador, lo que significa que no puede establecer ningún encabezado (los elementos establecidos antes de que se envíe cualquier HTML). En este caso, por lo general significa que hay algún código antes de la primera etiqueta PHP de apertura. En login.php, asegúrese de que haya nada antes de la primera etiqueta PHP de apertura - incluso espacios en blanco (espacios, líneas nuevas, etc). La misma regla se aplica para /Connections/reuben1.php - asegúrese de que tampoco tenga ningún espacio en blanco al comienzo.

contestado el 03 de mayo de 12 a las 20:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.