Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/12/2007, 17:37
Avatar de seinkraft
seinkraft
 
Fecha de Ingreso: diciembre-2007
Mensajes: 119
Antigüedad: 17 años, 2 meses
Puntos: 1
Problema en if

Tengo un problemita con este if...
Código PHP:
$query "SELECT * FROM online ORDER BY username";
$cad mysql_db_query($dbname,$query ) or die (mysql_error());

while(
$row mysql_fetch_array($cad)){
 if (
$row[username] == $username){
}else{
$sql "INSERT INTO online (username, lastlogin, ip) VALUES ('$username','$lastlogin', '$ip_real')";
$result mysql_query($sql);
}

En esta parte se busca en la tabla si existe el usuario de la session en la misma y si no existe insertarlo dentro de la tabla. Esto es para evitar que se vuelva a insertar en la tabla el mismo usuario y de una lectura erronea (sistema de estadisticas: usuarios conectados, registros totales, etc...).

Pero lo que sucede es que no me inserta en la tabla el usuario sin embargo sin el if lo inserta pero si se actualiza la pagina lo inserta tantas veces como actualices la pagina y da error en las estadisticas.

codigo completo:
Código PHP:
<?
include("includes/connect.php"); 

include(
'languajes/english/register.php');

if (
$_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if (
$password==NULL) {
echo 
"La password no fue enviada"
}else{
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data mysql_fetch_array($query);
if(
$data['password'] != $password) { 
echo 
"Wrong username/password";
}else{
$query mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
$_SESSION["s_lastlogin"] = $row['lastlogin'];


if (
$_SERVER) {
        if ( 
$_SERVER[HTTP_X_FORWARDED_FOR] ) {
            
$ip_real $_SERVER['HTTP_X_FORWARDED_FOR'];
}
    elseif ( 
$_SERVER['HTTP_CLIENT_IP'] ) {
            
$ip_real $_SERVER['HTTP_CLIENT_IP'];
}
else {
            
$ip_real $_SERVER['REMOTE_ADDR'];
}
}
 else {
        if ( 
getenv'HTTP_X_FORWARDED_FOR' ) ) {
            
$ip_real getenv'HTTP_X_FORWARDED_FOR' );
}
elseif ( 
getenv'HTTP_CLIENT_IP' ) ) {
            
$ip_real getenv'HTTP_CLIENT_IP' );
}
else {
            
$ip_real getenv'REMOTE_ADDR' );
}
}

$username=($_SESSION['s_username']);
$lastlogin=date("d/m/Y h:i A");

$query "SELECT * FROM online ORDER BY username";
$cad mysql_db_query($dbname,$query ) or die (mysql_error());

while(
$row mysql_fetch_array($cad)){
 if (
$row[username] == $username){
}else{
$sql "INSERT INTO online (username, lastlogin, ip) VALUES ('$username','$lastlogin', '$ip_real')";
$result mysql_query($sql);
}
}

}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<link href="styles/crystal.css" rel="stylesheet" type="text/css" />
</head>
<?php 
if (isset($_SESSION['s_username'])) {
echo (
'
<body class="body">
<div class="div_container">
<div class="div_title">Log In</div>
'
);
echo (
'<div class="div_text">Welcome 
'
);
echo (
$_SESSION['s_username']);
echo (
'
<br />
<a href="logout.php">Logout</a>
</div>
</div>
<br />
</body>
'
);
}
else
{
echo(
'
<body class="body">
<form method="POST">
<div class="div_container">
<div class="div_title">Log In</div>
<div class="div_text">
Username:
<br />
<input name="username" type="text" />
<br />
<br />
Password:
<br />
<input name="password" type="password" />
<br />
<br />
<input type="submit" name="Submit" value="'
);
echo 
$lang_register["Submit"];
echo(
'
" />
</div>
<div class="div_text">
<a href="register.php">Register</a>
</div>
</form>
</body>
'
);
exit;
}
?>

</html>
Saludos y Feliz Año Nuevo.