Problema con el correo y autenticación

Hola de nuevo. Bueno la pregunta va relacionada sobre el tema de recibir el formulario de autenticación del usuario, y luego desde la página referenciada en action, en este caso "correo.php", decido si el usuario tiene privilegios de usuario o no, y si los tiene, puede escribir un formulario que sera el cuerpo del correo que
Se enviara a todos los pertenecientes a la tabla usuarios, y esto lo quiero hacer en esta misma página, es decir correo.php, que creo que es lo que se llama autorecogida de variables de formulario, el caso es que algo no me funciona y me pone un error muy extraño, quizás tu sepas de que se trata, te dejo todo el código de la página correo.php:
<?php
$nombre_usuario= $_POST['nombre_usuario'];
$password=$_POST['password'];
$password=mysql_escape_string($password);
$nombre_usuario=mysql_escape_string($nombre_usuario);
$conexion=mysql_pcconnect('localhost','david','aikido');
$conexion=mysql_select_db('Usuarios',$conexion);
$consulta=mysql_query("SELECT * FROM datos WHERE nombre='$nombre_usuario',password='$password' ",$conexion);
$privilegio=mysql_fetch_row($consulta);
if($privilegio['privilegios']<>10)
{
die("a chuparla,no tienes privilegios de administrador");
}
$_SESSION['privilegios']=$privilegio['privilegios'];
session_start();
if (!isset( $_SESSION['privilegios'])) {
die("a chuparla");
} else {
if ($_SESSION['privilegios'] < 10) {
die("a chuparla");
} else { ?>
<form action="correo.php" method="post">
<P><font color="#FF6600" size="4" face="Geneva, Arial, Helvetica, sans-serif"><strong>Escribe aqui tu correo:</strong></font></P>
<textarea name="body" cols="40" rows="15"></textarea>
<input type="submit" name="Submit" value="Enviar">
</form>
<?php
$body=mysql_escape_string($_POST['body']);
if (!isset($body))
{
die("no has escrito ningun mensaje");
}
else
{ if(mysql_fetch_row($consulta))
{
$correo=mysql_fetch_row($consulta);
mail($correo['email'],"Novedades",$body,"From: [email protected]");
}
}
}
session_unset();
mysql_free_result ( $consulta );
mysql_close ( $conexion );
?>
El error que me da es este:
Parse error: parse error, unexpected $ in c:\foxserv\www\david\correo.php on line 69
Por favor si ves algo en el código que se pueda mejorar de forma sencilla, no dudes en decírmelo, muy agradecido por tu tiempo, david.
Respuesta
1
Aquí te va el script con los errores solucionados y con comentarios de algunos errores de programación que posees:
<?php
$nombre_usuario = isset($_POST['nombre_usuario'])?$_POST['nombre_usuario']:null; // Que pasa si no pones usuario entoces te da un Error o Warning en el mejor de los casos
$password = isset($_POST['password'])?$_POST['password']:null; // LO mismo que lo de arriba
$password = mysql_escape_string($password);
$nombre_usuario = mysql_escape_string($nombre_usuario);
$conexion = mysql_pcconnect('localhost','david','aikido'); // Ten cuiddado con las conexiones persistentes, se comenta que por mas que hagas mysql_close() no cierran la conexion
$conexion = mysql_select_db('Usuarios',$conexion);
$consulta = mysql_query("SELECT * FROM datos WHERE nombre='$nombre_usuario',password='$password' ",$conexion);
$privilegio = mysql_fetch_row($consulta);
if($privilegio['privilegios']<>10){
die("a chuparla,no tienes privilegios de administrador");
}
session_start(); // Primero se pone el sesion_start sino la variable $_SESSION['privilegios'] nunca tomara el valor que contenga la asigbnacion que le haces
$_SESSION['privilegios'] = $privilegio['privilegios'];
if(!isset( $_SESSION['privilegios'])){
die("a chuparla");
}elseif($_SESSION['privilegios'] < 10){
die("a chuparla");
?>
<form action="correo.php" method="post">
<P><font color="#FF6600" size="4" face="Geneva, Arial, Helvetica, sans-serif"><strong>Escribe aqui tu correo:</strong></font></P>
<textarea name="body" cols="40" rows="15"></textarea>
<input type="submit" name="Submit" value="Enviar">
</form>
<?php
$body = mysql_escape_string(isset($_POST['body'])?$_POST['body']:null); // LO mismo que te coemente en la primera linea
}elseif(!isset($body)){
die("no has escrito ningun mensaje");
}elseif(mysql_fetch_row($consulta)){
$correo=mysql_fetch_row($consulta);
mail($correo['email'],"Novedades",$body,"From: [email protected]");
}
session_unset();
mysql_free_result ( $consulta );
mysql_close ( $conexion );
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas