Foros del Web » Programando para Internet » PHP »

solo me funciona en php5

Estas en el tema de solo me funciona en php5 en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/07/2007, 12:01
 
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
  #2 (permalink)  
Antiguo 27/07/2007, 16:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: solo me funciona en php5

El problema es que la version 4 del paquete que tienes, tiene una version mas vieja del libmysql.dll, de seguro debes de tener la version 5.0 de MySQL, y ya no es compatible con la vieja version que se usa de PHP4, tienes que forzoso usar PHP5.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:13.