Script PHP se ejecuta dos veces
Publicado por Javier (25 intervenciones) el 05/08/2015 22:28:45
Hola. Estoy experimentando el siguiente problema usando PHP y MySQL:
Desde un enlace en un <table> se invoca a un segundo.php el cual realiza una copia del registro actual.
En cpu_copy.php
El problema que se me presenta es que al llamar a este ultimo .php, se ejucuta dos veces. Esto significa que si tengo un solo registro, me genera 2 registros nuevos con id 2 y 3.
He recorrido varias páginas buscando la solución, pero no la encuentro.
- Me indican verifcar lo que tengo en <head> por si hay algun <script> con src="". Pero no los hay.
- He usado variables de session como contador y efectivamente me muestra 2 ese contador.
- Probé con una una version de cpu_copy.php en donde utilice SOLO el codigo que esta entre las lineas 9 y 26 ( <?php y ?> ) y el problema NO se presenta.
la funcion INSERTHEAD() contiene lo siguiente (perdon por abusar de su tiempo):
Entiendo que el problema esta en esta funcion. Y reitero NO SI ES ADECUADO HACERLO DE ESTA FORMA.
MUCHAS GRACIAS POR LA COLABORACION.
Javier.
Desde un enlace en un <table> se invoca a un segundo.php el cual realiza una copia del registro actual.
1
echo "<td> <a href='cpu_copy.php?cpuid=".$row['cpuid' ]."'>".$row['cpuid' ]."</a></td> " ;
En cpu_copy.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<html>
<head>
<?php InsertHead(); ?>
<!-- ESTA BIEN USAR UNA FUNCION COMO DE LA LINEA
ANTERIOR PARA INSERTAR <title>, script js , hojas de estilo? -->
</head>
<body>
<?php
$cpuid = $_GET['cpuid'];
$link = ConectarBD() ;
$result = $link->query( "select max(cpuid) as ultimo from cpu ");
$row = $result->fetch_array() ;
$newcpuid = $row['ultimo'] + 1 ;
$result = $link->query( "insert into cpu ( cpuid, cputipoid, cpudes, marcaid )
select '$newcpuid', cputipoid, cpudes, marcaid
from cpu original where original.cpuid='$cpuid' " )
or die ( "error copiando...1". mysqli_error( $link )) ;
$link->close() ;
?>
</body>
</html>
El problema que se me presenta es que al llamar a este ultimo .php, se ejucuta dos veces. Esto significa que si tengo un solo registro, me genera 2 registros nuevos con id 2 y 3.
He recorrido varias páginas buscando la solución, pero no la encuentro.
- Me indican verifcar lo que tengo en <head> por si hay algun <script> con src="". Pero no los hay.
- He usado variables de session como contador y efectivamente me muestra 2 ese contador.
- Probé con una una version de cpu_copy.php en donde utilice SOLO el codigo que esta entre las lineas 9 y 26 ( <?php y ?> ) y el problema NO se presenta.
la funcion INSERTHEAD() contiene lo siguiente (perdon por abusar de su tiempo):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
function InsertHead() {
?>
<title>TITULO</title>
<!-- Meta -->
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<link href='http://fonts.googleapis.com/css?family=Lato:300,400,300italic,400italic' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Montserrat:400,700' rel='stylesheet' type='text/css'>
<!-- Global CSS -->
<link rel="stylesheet" href="../css/bootstrap.min.css">
<!-- Plugins CSS -->
<link rel="stylesheet" href="../css/font-awesome.css">
<link rel="stylesheet" href="../css/pe-icon-7-stroke.css">
<link rel="stylesheet" href="../css/animate.min.css">
<link rel="stylesheet" href="../css/flexslider.css">
<!-- Theme CSS -->
<link id="theme-style" rel="stylesheet" href="../css/styles-3.css">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Javascript -->
<script type="text/javascript" src="../js/jquery-1.11.2.min.js"></script>
<script type="text/javascript" src="../js/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
<script type="text/javascript" src="../js/bootstrap-hover-dropdown.min.js"></script>
<script type="text/javascript" src="../js/jquery.inview.min.js"></script>
<script type="text/javascript" src="../js/isMobile.min.js"></script>
<script type="text/javascript" src="../js/back-to-top.js"></script>
<script type="text/javascript" src="../js/jquery.placeholder.js"></script>
<script type="text/javascript" src="../js/jquery.fitvids.js"></script>
<script type="text/javascript" src="../js/jquery.flexslider-min.js"></script>
<script type="text/javascript" src="../js/main.js"></script>
<!--[if !IE]>-->
<script type="text/javascript" src="../js/animations.js"></script>
<!--<![endif]-->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-24707561-12', 'auto');
ga('send', 'pageview');
</script>
<?php
}
?>
MUCHAS GRACIAS POR LA COLABORACION.
Javier.
Valora esta pregunta


0