Este codigo que os pego solo me funciona con php5. Tengo instalado en local el paguete
WAMP que te da opcion a cambiar entre php4 y php5 pues bien solo me funciona 
el siguiente scrip si esta activo php5 y la verdad es que no se por que 
 
Con php4 me da el siguiente error
 
 Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in C:\wamp\www\list_mail\mio\manage.php on line 7
Client does not support authentication protocol requested by server; consider upgrading MySQL client
 
 
 
SCRIP PHP
 
 <?php
// conecta al servidor y selecciona la base de datos
function doDB()
{
 
	global $conn;
	$conn=mysql_connect("localhost","coso","111049gg") or die(mysql_error());
	mysql_select_db("list_mail",$conn)or die(mysql_error());
}
 
//compruba que el email no esta ya en la lista
function emailchecker($email)
{
 
	global $conn,$check_result;
 	$check = "select id from subscriptores where email = '$email'";
	$check_result=mysql_query($check,$conn) or die(mysql_error());
 
 
}
 
 
 
//determinar si se necesita ver el formulario o no
if ($_POST[op]!="ds") {
 
	//se necesita, creamos el bloque formulario
	$display_block="
	<form method=post action=\"$_SERVER[PHP_SELF] \">
	<p><strong>Tu direccion Email:</strong><br>
	<input type=text name=\"email\" size=40 maxlength=150>
	<p><strong>Accion:</strong><br>
	<input type=radio name=\"action\" value=\"sub\" checked>Suscribirse
	<input type=radio name=\"action\" value=\"unsub\">Borrarse<br>
 
	<input type=hidden name=\"op\" value=\"ds\"></br>
 
	<input type=submit value=\"enviar formulario\">
 
	</form>
	";
 
//con el formulario creado y la opcion de subcribirse activa
}elseif (($_POST[op]=="ds")&&($_POST[action]=="sub")){
 
	//si el emai esta en blanco
	if ($_POST[email]==""){
		header("location:manage.php");		
		exit();
	}
 
	//conectar a la base de datos
	doDB();
 
	//comprobar que el email no este ya dado de alta
	emailChecker($_POST[email]);
 
	//si cantidad de resultados es igual a 0, no esta dado de alta y lo damos
	if (mysql_num_rows($check_result)<1){
 
			$sql="insert into subscriptores values('','$_POST[email]')";
			$result=mysql_query($sql,$conn) or die(mysql_error());
			$display_block="<p><strong>Gracias por inscribirse en nuestra base de datos</strong>";
	}else {
			$display_block="<p><strong>Ya esta suscrito a nuestra lista</strong></p>";
	}
 
 
//con el formulario creado y la opcion borrar activa	
}elseif (($_POST[op]=="ds")&&($_POST[action]=="unsub")){
 
	//validar direccion email
	if ($_POST[email]==""){
		header("locate:manage.php");
		exit();
	}
 
	//conectamos a la db
	doDB();
 
	//comprobamos que este dado de alta el email para poder borrarlo
	emailChecker($_POST[email]);
 
	//comprobamos la cantidad de registros de este email, si tiene menos de 1
	// es que no esta
	if (mysql_num_rows($check_result)<1){
		$display_block="<p>Esta email no esta dado de alta en la base de datos</p>";
	}else {
		//borrar regisgtro
		$id=mysql_result($check_result,0,"id");
		$sql="DELETE FROM subscriptores WHERE id='$id'";
		$result=mysql_query($sql,$conn) or die(mysql_error());
		$display_block="<p>Has sido borrado de nuestra lista";
	}
 
 
}
 
?>
 
<html>
 
<head>
<title>subscribirse borrarse de la lista</title>
</head>
<body>
<h2>Susbcribirse/Borrarse</h2>
<?php echo"$display_block"?>
 
</body>
</html>
 
Una ayudita, por favor. 
  
 
