🏆 Mundial 2026 EN VIVO entra →

Ayuda codigo php

  • Autor Autor kanikase
  • Fecha de inicio Fecha de inicio
kanikase

kanikase

Préstamo impago
1
Xi
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Suscripción a IA
Necesito ayuda con un codigo php, es para un contador de visitas por entradas, ya lo tengo configurado, pero al subirlo a mi host, y abrir el archivo me sale "Warning: mysql_close() expects parameter 1 to be resource, null given in /home/u292154245/public_html/counter.php on line 69" que esta fallando, este es el codigo que utilizo:

PHP:
<?php

//Created by Anuj Pathania --- anujpathania#gmail.com. Please Feel Free to mail me if you want any help, script has a bug or just wanna say Hi. :D

//This code is released under GPL (General Public License).

/*
You need to create a database and table to store data first, please do so by executing this command in phpmyadmin first but make sure you change database and table name --

 CREATE TABLE `YOUR-COUNTER-DATABASE`.`YOUR-COUNTER-TABLE` (
`SN` BIGINT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 1000 ) NOT NULL ,
`hit` BIGINT NOT NULL DEFAULT '1',
PRIMARY KEY ( `SN` )
) ENGINE = MYISAM 

*/
	Header("content-type: application/x-javascript");
	$url = getenv("HTTP_REFERER");
	$url = str_replace ("http://",'',$url);
	$url = str_replace ("www.",'',$url);
    if ($url != "")
		{
			$username = "xxxxxxxx_xxxxx"; // Enter Your Username and Password Here
			$password = 'xxxxxxxxx'; // Enter Your Username and Password Here
			$database = 'xxxxxxxxx_xxxxx';  //Enter Your Database Name Here
			$table = "counter"; //Enter Your Counter Table Name Here
			
			
			$link = mysql_connect('localhost', $username, $password); 
			if (!$link) 
			{
    			die('Could not connect: ' . mysql_error());
			}
			$db_selected = mysql_select_db($database, $link); 
			if (!$db_selected) 
			{
    			die ('Cann\'t select database : ' . mysql_error());
			}
			$query = "Select hit from $table where name = '$url'"; 
			$result = mysql_query($query);
			if (!$result) 
			{
    			die('Invalid query: ' . mysql_error());
			}
			if (mysql_affected_rows()==0)
			{
				$query = "Insert into counter (name) values ('$url')";
				$result = mysql_query($query);
				echo "document.write('1');";
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
			else
			{
				$hitcount = mysql_result($result, 0);
				$hitcount++;
				echo "document.write('$hitcount');";
				$query = "Update counter set hit = $hitcount where name = '$url'";
				$result = mysql_query($query);
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
		}
		mysql_close($link);
?>

Lo que me dice que esta mal es esto: mysql_close($link);

Y aqui esta el archivo: http://toddescargas.com/counter.php
 
PHP:
<?php

//Created by Anuj Pathania --- anujpathania#gmail.com. Please Feel Free to mail me if you want any help, script has a bug or just wanna say Hi. :D

//This code is released under GPL (General Public License).

/*
You need to create a database and table to store data first, please do so by executing this command in phpmyadmin first but make sure you change database and table name --

 CREATE TABLE `YOUR-COUNTER-DATABASE`.`YOUR-COUNTER-TABLE` (
`SN` BIGINT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 1000 ) NOT NULL ,
`hit` BIGINT NOT NULL DEFAULT '1',
PRIMARY KEY ( `SN` )
) ENGINE = MYISAM 

*/
	Header("content-type: application/x-javascript");
	$url = getenv("HTTP_REFERER");
	$url = str_replace ("http://",'',$url);
	$url = str_replace ("www.",'',$url);
    if ($url != "")
		{
			$username = "xxxxxxxx_xxxxx"; // Enter Your Username and Password Here
			$password = 'xxxxxxxxx'; // Enter Your Username and Password Here
			$database = 'xxxxxxxxx_xxxxx';  //Enter Your Database Name Here
			$table = "counter"; //Enter Your Counter Table Name Here
			
			
			$link = mysql_connect('localhost', $username, $password); 
			if (!$link) 
			{
    			die('Could not connect: ' . mysql_error());
			}
			$db_selected = mysql_select_db($database, $link); 
			if (!$db_selected) 
			{
    			die ('Cann\'t select database : ' . mysql_error());
			}
			$query = "Select hit from $table where name = '$url'"; 
			$result = mysql_query($query);
			if (!$result) 
			{
    			die('Invalid query: ' . mysql_error());
			}
			if (mysql_affected_rows()==0)
			{
				$query = "Insert into counter (name) values ('$url')";
				$result = mysql_query($query);
				echo "document.write('1');";
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
			else
			{
				$hitcount = mysql_result($result, 0);
				$hitcount++;
				echo "document.write('$hitcount');";
				$query = "Update counter set hit = $hitcount where name = '$url'";
				$result = mysql_query($query);
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
		}
		mysql_close($link);
?>

porke el mysql_close esta por fuera del if...

PHP:
<?php

//Created by Anuj Pathania --- anujpathania#gmail.com. Please Feel Free to mail me if you want any help, script has a bug or just wanna say Hi. :D

//This code is released under GPL (General Public License).

/*
You need to create a database and table to store data first, please do so by executing this command in phpmyadmin first but make sure you change database and table name --

 CREATE TABLE `YOUR-COUNTER-DATABASE`.`YOUR-COUNTER-TABLE` (
`SN` BIGINT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 1000 ) NOT NULL ,
`hit` BIGINT NOT NULL DEFAULT '1',
PRIMARY KEY ( `SN` )
) ENGINE = MYISAM 

*/
	Header("content-type: application/x-javascript");
	$url = getenv("HTTP_REFERER");
	$url = str_replace ("http://",'',$url);
	$url = str_replace ("www.",'',$url);
    if ($url != "")
		{
			$username = "xxxxxxxx_xxxxx"; // Enter Your Username and Password Here
			$password = 'xxxxxxxxx'; // Enter Your Username and Password Here
			$database = 'xxxxxxxxx_xxxxx';  //Enter Your Database Name Here
			$table = "counter"; //Enter Your Counter Table Name Here
			
			
			$link = mysql_connect('localhost', $username, $password); 
			if (!$link) 
			{
    			die('Could not connect: ' . mysql_error());
			}
			$db_selected = mysql_select_db($database, $link); 
			if (!$db_selected) 
			{
    			die ('Cann\'t select database : ' . mysql_error());
			}
			$query = "Select hit from $table where name = '$url'"; 
			$result = mysql_query($query);
			if (!$result) 
			{
    			die('Invalid query: ' . mysql_error());
			}
			if (mysql_affected_rows()==0)
			{
				$query = "Insert into counter (name) values ('$url')";
				$result = mysql_query($query);
				echo "document.write('1');";
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
			else
			{
				$hitcount = mysql_result($result, 0);
				$hitcount++;
				echo "document.write('$hitcount');";
				$query = "Update counter set hit = $hitcount where name = '$url'";
				$result = mysql_query($query);
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
			mysql_close($link);
		}
?>
 
porke el mysql_close esta por fuera del if...

PHP:
<?php

//Created by Anuj Pathania --- anujpathania#gmail.com. Please Feel Free to mail me if you want any help, script has a bug or just wanna say Hi. :D

//This code is released under GPL (General Public License).

/*
You need to create a database and table to store data first, please do so by executing this command in phpmyadmin first but make sure you change database and table name --

 CREATE TABLE `YOUR-COUNTER-DATABASE`.`YOUR-COUNTER-TABLE` (
`SN` BIGINT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 1000 ) NOT NULL ,
`hit` BIGINT NOT NULL DEFAULT '1',
PRIMARY KEY ( `SN` )
) ENGINE = MYISAM 

*/
	Header("content-type: application/x-javascript");
	$url = getenv("HTTP_REFERER");
	$url = str_replace ("http://",'',$url);
	$url = str_replace ("www.",'',$url);
    if ($url != "")
		{
			$username = "xxxxxxxx_xxxxx"; // Enter Your Username and Password Here
			$password = 'xxxxxxxxx'; // Enter Your Username and Password Here
			$database = 'xxxxxxxxx_xxxxx';  //Enter Your Database Name Here
			$table = "counter"; //Enter Your Counter Table Name Here
			
			
			$link = mysql_connect('localhost', $username, $password); 
			if (!$link) 
			{
    			die('Could not connect: ' . mysql_error());
			}
			$db_selected = mysql_select_db($database, $link); 
			if (!$db_selected) 
			{
    			die ('Cann\'t select database : ' . mysql_error());
			}
			$query = "Select hit from $table where name = '$url'"; 
			$result = mysql_query($query);
			if (!$result) 
			{
    			die('Invalid query: ' . mysql_error());
			}
			if (mysql_affected_rows()==0)
			{
				$query = "Insert into counter (name) values ('$url')";
				$result = mysql_query($query);
				echo "document.write('1');";
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
			else
			{
				$hitcount = mysql_result($result, 0);
				$hitcount++;
				echo "document.write('$hitcount');";
				$query = "Update counter set hit = $hitcount where name = '$url'";
				$result = mysql_query($query);
				if (!$result) 
				{
    				die('Invalid query: ' . mysql_error());
				}
			}
			mysql_close($link);
		}
?>

Ya esta, pero ahora al abrirlo se queda en blanco :C
 
mejor saca el link al contador... aparece el nombre de usuario y demas cosas..
deberas hacer pruebas localmente para poder saber el error, pero te aseguras que se conecte a la base de datos y por lo menos te traiga un dato?
 
Estaba mirando el codigo,
Ya te lo arregló cicklow :encouragement:
 
Ya esta, pero ahora al abrirlo se queda en blanco :C

porque regresa un javascript... tienes que poner
Insertar CODE, HTML o PHP:
<script src="file.php"></script>
 
Estoy de acuerdo con vicram10, es mejor que hagas todas las pruebas en local, trabajas mas rápido y no arriesgas nada en tu web.
O debuggeas o habilitas la vista de Errores, asi solucionas mas rápido.
 
Por Dios no uses ese código, te expone a SQL injection porque no sanitiza el referer. Un hacker podría llegar a borrarte la base de datos.
NUNCA armar un query SQL pegando strings dinamicos que provienen "de afuera".
 
Atrás
Arriba