Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2007, 12:01
juanromerocruz
 
Fecha de Ingreso: febrero-2007
Mensajes: 103
Antigüedad: 17 años, 2 meses
Puntos: 0
solo me funciona en php5

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.

Última edición por juanromerocruz; 29/07/2007 a las 13:53