Ayuda con sistema de noticias en php

Hola! (sí, ya estoy preguntando algo de nuevo xD)

Estaba creando un sistema para publicar noticias en php, aquí están los códigos:

noticias.php (donde están las noticias)
<html> 
<head> 
<title>Sistema de noticias</title> 
</head>
<body>
<? 
//conectamos a la base 
$connect=mysql_connect("[COLOR="red"]localhost[/COLOR]","[COLOR="red"]miusuariodelabasededatos[/COLOR]","[COLOR="red"]micontraseña[/COLOR]")'; 
//Seleccionamos la base 
mysql_select_db("[COLOR="red"]mibasededatos[/COLOR]",$connect);

//hacemos las consultas 
$result=mysql_query("select * from noticias order by fecha Desc", $connect); 
$totalregistros=mysql_num_rows($result); 
?> 
</head> 
<body> 
//Recogemos las consultas en un array y las mostramos 
<? 
while($row=mysql_fetch_array($result)) 
{ 
echo '<h2>'.$row[titulo].'</h2><br><p>'.$row[articulo].'</p><br><div>'.$row[autor].'|'.$row[fecha].'| '.$row[categoria].' | 
'<a href="ver.php?id='.$row[id_noticia].'">comentarios()</a> | 
<a href="editar.php?id='.$row[id_noticia].'">editar</a>';</div>
} 
mysql_free_result($result) 
?>
</body> 
</html>

Y me da error en la línea 22, que es:
echo '<h2>'.$row[titulo].'</h2><br><p>'.$row[articulo].'</p><br><div>'.$row[autor].'|'.$row[fecha].'| '.$row[categoria].' | 
El errror es: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/doodleoc/public_html/noticias.php on line 22


administrar.php (Donde se envían las noticias, pero esto no me da error)
<html>
<head>
<title>Administrar noticias</title>
</head>
<body>
<form action="procesanoticia.php" method="post"> 
Título noticia:<br> 
<input type="text" name="titulo"><br> 
Autor:<br> 
<input type="text" name="autor"><br> 
Categoría:<br> 
<input type="text" name="categoria"><br> 
Escriba el articulo<br> 
<textarea name="articulo" cols="50" rows="10"></textarea><br> 
<input type="submit" value="Publicar"><br> 
</form>
</body> 
</html>


procesanoticia.php (Lo que procesa la noticia, esto sí que me da error tmbn)
<? 
//recibimos las variables enviadas por el formulario 
$titulo=$_POST[titulo]; 
$autor=$_POST[autor]; 
$categoria=$_POST[categoria]; 
$articulo=$_POST[articulo]; 
//conectamos a la base 
$connect=mysql_connect("[COLOR="red"]localhost[/COLOR]","[COLOR="red"]mibasededatos[/COLOR]","[COLOR="red"]micontraseña[/COLOR]")'; 
//Seleccionamos la base 
mysql_select_db("[COLOR="red"]mibasededatos[/COLOR]",$connect); 
//insertamos los registros almacenados en las variables 
mysql_query("insert into noticias(titulo,autor,categoria,articulo,fecha)
values('$titulo','$autor','$categoria','$articulo',NOW()",$connect)  
header("location: index.php"); 
?>

Y me da error en la línea 13, que es:
values('$titulo','$autor','$categoria','$articulo',NOW()",$connect) 
El error es: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/doodleoc/public_html/procesanoticia.php on line 13
Hola, si es que no me equivoco, el error es porque debes poner comillas simples a los índices de los arreglos, o sea, debe ser así:

$row['indice'];

Por otro lado, te faltan un par de punto y coma (;) en el segundo error (también ocurre que al presionar enter en una función, sin utilizar el punto para concatenar, el interprete PHP no sabrá que es una sola línea) y, en el primero, dejas el </div> fuera de la función echo:

echo '<h2>'.$row.'</h2><br><p>'.$row.'</p><br><div>'.$row.'|'.$row.'| '.$row.' |
'<a href="ver.php?id='.$row[id_noticia].'">comentarios()</a> |
<a href="editar.php?id='.$row[id_noticia].'">editar</a>';</div>

Debería quedar así:

echo '<h2>'.$row['titulo'].'</h2><br /><p>'.$row['articulo'].'</p><br /><div>'.$row['autor'].'|'.$row['fecha'].'| '.$row['categoria'].' |
'<a href="ver.php?id='.$row['id_noticia'].'">comentarios()</a> |
<a href="editar.php?id='.$row['id_noticia'].'">editar</a></div>';

Si comentarios() es una función, entonces debes concatenarla con puntos (.): ...>'.comentarios().'</a>....

Espero no haberme equivocado :D, saludos.
Voy a probar y te cuento, también me he fijado que en procesanoticia.php la antepenúltima línea pone mysq_query en vez de mysql_query.
Lo de comentarios no es una función, se supone que entre ese paréntesis pondrá el número de comentarios, pero ese código aún no lo he puesto, primero que se puedan publicar las noticias, todo a su tiempo jejeje
Nada, sigue dándome error en la línea 22 de noticias.php
<html> 
<head> 
<title>Sistema de noticias</title> 
</head>
<body>
<? 
//conectamos a la base 
$connect=mysql_connect("localhost","doodleoc_noticias","unaxD123")'; 
//Seleccionamos la base 
mysql_select_db("doodleoc_noticias",$connect);

//hacemos las consultas 
$result=mysql_query("select * from noticias order by fecha Desc", $connect); 
$totalregistros=mysql_num_rows($result); 
?> 
</head> 
<body> 
//Recogemos las consultas en un array y las mostramos 
<? 
while($row=mysql_fetch_array($result)) 
{ 
echo '<h2>'.$row['titulo'].'</h2><br /><p>'.$row['articulo'].'</p><br /><div>'.$row['autor'].'|'.$row['fecha'].'| '.$row['categoria'].' | 
'<a href="ver.php?id='.$row['id_noticia'].'">comentarios()</a> | 
<a href="editar.php?id='.$row['id_noticia'].'">editar</a></div>';
} 
mysql_free_result($result) 
?>
</body> 
</html>

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/doodleoc/public_html/noticias.php on line 22


Por lo que veo tiene que ser un error de sintáxis, pero no lo encuentro :S
Dejándolo todo en una línea queda así:
<html> 
<head> 
<title>Sistema de noticias</title> 
</head>
<body>
<? 
//conectamos a la base 
$connect=mysql_connect("localhost","mibasededatos","micontraseña")'; 
//Seleccionamos la base 
mysql_select_db("mibasededatos",$connect);

//hacemos las consultas 
$result=mysql_query("select * from noticias order by fecha Desc", $connect); 
$totalregistros=mysql_num_rows($result); 
?> 
</head> 
<body> 
//Recogemos las consultas en un array y las mostramos 
while($row=mysql_fetch_array($result)) 
<?
{
echo '<h2>'.$row['titulo'].'</h2><br /><p>'.$row['articulo'].'</p><br /><div>'.$row['autor'].'|'.$row['fecha'].'| '.$row['categoria'].' | '<a href="ver.php?id='.$row['id_noticia'].'">comentarios()</a> | <a href="editar.php?id='.$row['id_noticia'].'">editar</a></div>';
}
mysql_free_result($result) 
?>
</body> 
</html>

Pero sigue dándome error :S Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/doodleoc/public_html/noticias.php on line 22
Ahora sí, el siguiente código debería funcionar:

<html>
<head>
<title>Sistema de noticias</title>
</head>
<?php
//conectamos a la base
$connect=mysql_connect("localhost","mibasededatos","micontraseña");
//Seleccionamos la base
mysql_select_db("mibasededatos",$connect);

//hacemos las consultas
$result=mysql_query("select * from noticias order by fecha Desc", $connect);
$totalregistros=mysql_num_rows($result);
?>
</head>
<body>
<?php
//Recogemos las consultas en un array y las mostramos
while($row=mysql_fetch_array($result)) {
echo '<h2>'.$row['titulo'].'</h2><br /><p>'.$row['articulo'].'</p><br /><div>'.$row['autor'].'|'.$row['fecha'].'| '.$row['categoria'].' | <a href="ver.php?id='.$row['id_noticia'].'">comentarios()</a> | <a href="editar.php?id='.$row['id_noticia'].'">editar</a></div>';
}
mysql_free_result($result);
?>
</body>
</html>

Espero que ahora sí :D.
Perfecto, ahora sí que ya no me da ningún error! Muchas gracias!

Pero me sigue quedando el error de procesanoticia.php :S
Intenta con esto (procesanoticia):

<?
//recibimos las variables enviadas por el formulario
$titulo=$_POST['titulo'];
$autor=$_POST['autor'];
$categoria=$_POST['categoria'];
$articulo=$_POST['articulo'];
//conectamos a la base
$connect=mysql_connect("localhost", "mibasededatos", "micontraseña");
//Seleccionamos la base
mysql_select_db("mibasededatos", $connect);
//insertamos los registros almacenados en las variables
mysql_query("INSERT INTO noticias (titulo,autor,categoria,articulo,fecha) VALUES ('$titulo','$autor','$categoria','$articulo', NOW()", $connect);
header("location: index.php");
?>

Avísame si sirve :D.
Muchísimas gracias, ya no me da ningún error, pero... cuando publico la noticia en administrar.php me dirige a index.php (supongo que por el header ("location: index.php");), y si cambio index.php por noticias.php no pasa nada, me dirige a la página de noticias.php pero no se inserta la noticia ni nada :S
¿Y quieres que la noticia se inserte o te refieres a que no muestra las noticias? Si es lo último, entonces escribe print 'num_rows: ' .mysql_num_rows($result). '<br /><br />'; después de $result = mysql_query(...);. Si no muestra nada, entonces hay un error en la extracción o inserción de datos, en cuyo caso tendrías que revisar la base de datos y ver si se han ingresado los datos.

Suerte :D.