Foros del Web » Programando para Internet » PHP »

evaluar !=

Estas en el tema de evaluar != en el foro de PHP en Foros del Web. Hola que tal, tiempo que no estaba en esto de las web, y como no soy programador se me olvidaron las cosas . Bueno, resulta ...
  #1 (permalink)  
Antiguo 03/06/2010, 13:53
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
evaluar !=

Hola que tal, tiempo que no estaba en esto de las web, y como no soy programador se me olvidaron las cosas. Bueno, resulta que tomo unas variables codigo y code, enviadas desde un form y evaluo si son iguales o no, si son diferentes, pido que se ingresen los datos de nuevo, si son iguales, ingreso los datos en la base de datos.

Este es el codigo resumido:

Código PHP:
$codigo$_POST['codigo'];
$code$_POST['code'];
if (empty(
$codigo)) {//evaluo si ingresaron el codigo o no
    
    
echo "no ingresaste el codigo, por favor intentalo nuevamente <a href='planform.php'>AQUI</a>";    
    echo 
"codigo: $codigo y code: $code";// para comprobar que no se recivio $codigo
}

else if (
$codigo !== $code) {//evaluo si lo ingresado en codigo es diferente al campo oculto code, que contiene el codigo
    
echo "Ingresaste mal el codigo";
    echo 
"este es lo que ingresaste: $codigo y esto $code lo que deberias ingresar";//para comprobar que $codigo es diferente de $code
    
}
    
else {          
 
insert .... //aqui ingreso los datos a la BD        

resulta que aunque $codigo sea igual a $code, me dice que ingrese mal el codigo, y no puedo ingresar los datos a la BD. que tengo mal?
  #2 (permalink)  
Antiguo 03/06/2010, 13:56
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: evaluar !=

el diferente se pone != y tu lo tienes con dos iguales

como lo tienes
else if ($codigo !== $code)

como va
else if ($codigo != $code)
  #3 (permalink)  
Antiguo 03/06/2010, 14:05
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: evaluar !=

ya lo habia puesto asi y tampoco me funciono, siempre me sale que ingrese mal el codigo, aunque $codigo sea igual a $code.

si pongo
Código PHP:
if ($codigo $code) {
insert..//inserto los registros
}

else {
echo 
"ingresaste mal el codigo"


tampoco funciona, ya que aunque sean iguales, me aparece que ingrese mal el codigo
  #4 (permalink)  
Antiguo 03/06/2010, 14:10
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: evaluar !=

Primero prueba que las variables sean iguales con un echo.

$codigo= $_POST['codigo'];
$code= $_POST['code'];

echo "codigo= ".$codigo."<br>";
echo "code= ".$code."<br>";

sino recibelos asi:


$codigo="";
if (!empty($_REQUEST['codigo'])){
$codigo=$_REQUEST['codigo'];
}
  #5 (permalink)  
Antiguo 03/06/2010, 14:14
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: evaluar !=

si te fijas en el mensaje original, hago el echo para comprobar que sean iguales Y si los son!, sin embargo, de las dos maneras no evalua bien, ya que aunque sean iguales, toma como si no lo fueran.

De todas formas, las variables son bien recividas desde el form, y son iguales. El problema es que no las evalua como iguales.

existe otra manera de comparar? o como deberia ser el codigo correcto?

gracias

Última edición por Ruben_C; 03/06/2010 a las 14:27
  #6 (permalink)  
Antiguo 03/06/2010, 14:23
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: evaluar !=

prueba asi ya que el elseif lo tenias separado:

<?php

$codigo= $_POST['codigo'];
$code= $_POST['code'];

if(empty($codigo)){//evaluo si ingresaron el codigo o no

echo "no ingresaste el codigo, por favor intentalo nuevamente <a href='planform.php'>AQUI</a>";
echo "codigo: $codigo y code: $code";// para comprobar que no se recivio $codigo
}

elseif($codigo != $code){//evaluo si lo ingresado en codigo es diferente al campo oculto code, que contiene el codigo
echo "Ingresaste mal el codigo";
echo "este es lo que ingresaste: $codigo y esto $code lo que deberias ingresar";//para comprobar que $codigo es diferente de $code
}else{
insert .... //aqui ingreso los datos a la BD
}

?>
  #7 (permalink)  
Antiguo 03/06/2010, 14:31
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: evaluar !=

Gracias papelius1, lo hice como me dijiste y nada, ¿conoces otra manera de identificar si las variables son diferentes? porque esta no me funciono, jeje. escribi otro codigo pra robar y si me funciona en cada una de las situaciones
Código PHP:
$valor1='chao';
$valor2='chao';

if  (empty(
$valor1)) {
    
    echo 
"la variable esta vacia";
    }
    elseif (
$valor1 == $valor2){
        echo 
"son iguales";
    }
    else
{
        echo 
"no son iguales";
    } 
sera un problema al recivir las variables?

Última edición por Ruben_C; 03/06/2010 a las 14:53
  #8 (permalink)  
Antiguo 03/06/2010, 15:27
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: evaluar !=

nadie? hice la recepcion de variables utilizando el ultimo codigo y me funciono, pero no se porque no me funciona con el otro. Este es el codigo completo:

Código PHP:
<?php require_once('Connections/planes.php'); ?>
<?php
$codigo
$_POST['codigo'];
$code$_POST['code'];
$valor$_POST['valor'];
$plan =$_POST['plan'];
if (empty(
$codigo)) {
    
    echo 
"no ingresaste el codigo, por favor intentalo nuevamente <a href='planform.php?plan=$plan&valor=$valor'>AQUI</a>";    
    echo 
"codigo: $codigo y code: $code";
}

else if (
$codigo == $code) {
    
    if (!
function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO datos (nombre, empresa, telefono, mail, mensaje, plan) VALUES (%s, %s, %s, %s, %s,%s)",
                       
GetSQLValueString($_POST['nombre'], "text"),
                       
GetSQLValueString($_POST['empresa'], "text"),
                       
GetSQLValueString($_POST['telefono'], "text"),
                       
GetSQLValueString($_POST['mail'], "text"),
                       
GetSQLValueString($_POST['mensaje'], "text"),
                        
GetSQLValueString($_POST['plan'], "text"));

  
mysql_select_db($database_planes$planes);
  
$Result1 mysql_query($insertSQL$planes) or die(mysql_error());

  
$insertGoTo "planformok.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
    
$mail=$_POST['mail'];
    
$nombre=$_POST['nombre'];
    
$plan=$_POST['plan'];
    
$codigo=$_POST['codigo'];
    
$direccion='planformok.php?plan='.$plan.'&mail='.$mail.'&nombre='.$nombre.'&codigo='.$codigo;
  }
  
header(sprintf("Location: $direccion"$insertGoTo));
}

    else {
        echo 
"no existe";
        }
    }
    
else { 

echo 
"Ingresaste mal el codigo, por favor intentalo nuevamente <a href='planform.php?plan=$plan&valor=$valor'>AQUI</a> &nbsp; (NOTA: el codigo se solicita para evitar spam. Gracias)";
    echo 
"codigo: $codigo y code: $code";

}
?>
  #9 (permalink)  
Antiguo 03/06/2010, 15:34
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: evaluar !=

Para estos casos lo mejor no eshacer echo a las variables, sino var_dump(); esto te dice el tipo y la cantidad de caracteres... podes ponerme lo que te sale?
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #10 (permalink)  
Antiguo 03/06/2010, 15:41
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: evaluar !=

Cita:
Iniciado por pepeluis1 Ver Mensaje
el diferente se pone != y tu lo tienes con dos iguales

como lo tienes
else if ($codigo !== $code)

como va
else if ($codigo != $code)
Esto esta mal, para no provocar errores aclaro... Perfectamente se puede usar !==, esto sirve para ver si algo es "desidentico", osea de diferente valor y diferente tipo. Si yo tengo (INT)2 y (STRING)2 va a dar verdadero con !== pero falso con !=.

Saludos.
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #11 (permalink)  
Antiguo 03/06/2010, 15:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: evaluar !=

hice un codigo que me funcionaba, y las variables las en viaba desde un link. Sin embargo, cuando las envio desde un form y las recogo en tra pagina y las evaluo, ahi el script de comparacion no funciona, y siempre las identifica como diferentes.

en enviar.php tengo
[PHP]
Código PHP:
<?php 
 $codigo 
"";
$longitud 4;
for (
$i=1$i<=$longitud$i++){
$letra chr(rand(97,122));
$codigo .= $letra;
}
?>
<form action="generadordecodigo.php" method="get" name="form1" id="form1">
      <tr valign="baseline">
      <td nowrap="nowrap" align="right"><strong><?php echo strtoupper("$codigo");?> :</strong></td>
      <td><input type="text" name="codigo" value="" size="5" /> 
      (ingresa las letras) 
      <input type="hidden" name="code" value="<?php echo "$codigo";?> "/>
           </td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><input type="submit" value="enviar" /></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1" />
</form>
y la pagina que recive el codigo generador.php tengo:

Código PHP:
<?php 

$valor1
=$_GET['codigo'];
$valor2=$_GET['code'];

if  (empty(
$valor1)) {
    
    echo 
"la variable esta vacia, no ingreso nada";
    }
    elseif (
$valor1 == $valor2){
        echo 
"son iguales, ingreso los datos";
    }
    else
{
        echo 
"no son iguales ";
    }        
echo 
" <br/><br/>esto son los valores recividos $valor1 y $valor2";
?>
enviando las variables desde un link simple, no hay problema, pero a traves del form ya no funciona el script. Utilizo el metodo post y get, y tampoco.
  #12 (permalink)  
Antiguo 03/06/2010, 15:53
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: evaluar !=

var_dump() var_dump() var_dump() var_dump(), lee mas arriba.

Código PHP:
<?php 

$valor1
=$_GET['codigo'];
$valor2=$_GET['code']; 

echo 
"///Vuelco///<br/>";
var_dump($valor1);
echo 
"<br/>";
var_dump($valor2);
echo 
"<br/>///FIN Vuelco///";
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #13 (permalink)  
Antiguo 03/06/2010, 15:59
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: evaluar !=

Encontre el error, con las funciones trim() y strtolower, me funciono, asi elimine los espacios en blanco y el case sensitive, jeje
  #14 (permalink)  
Antiguo 03/06/2010, 16:03
Avatar de Sommy  
Fecha de Ingreso: septiembre-2008
Mensajes: 228
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: evaluar !=

ah ah! con el var_dump te diste cuenta que no eran iguales cierto? Es el mejor aliado del programador, junto al printr.

Saludos!
__________________
Si aún lo llevas, dejalo...
Programador PHP argentina
  #15 (permalink)  
Antiguo 03/06/2010, 16:07
 
Fecha de Ingreso: febrero-2006
Mensajes: 217
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: evaluar !=

jaja, yes.

Etiquetas: evaluar
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 09:50.