Foros del Web » Programando para Internet » PHP »

ejecutar pedazos de codigo

Estas en el tema de ejecutar pedazos de codigo en el foro de PHP en Foros del Web. Hola a todo, Tengo un documento php y en ese mismo documento un form que es procesado por el documento en el que esta,mi problema ...
  #1 (permalink)  
Antiguo 17/01/2009, 19:23
Avatar de Wilfred  
Fecha de Ingreso: octubre-2008
Mensajes: 110
Antigüedad: 15 años, 6 meses
Puntos: 1
ejecutar pedazos de codigo

Hola a todo,

Tengo un documento php y en ese mismo documento un form que es procesado por el documento en el que esta,mi problema es que el codigo php se ejecuta directamente...lo que quiero hacer es que cuando le de a send se ejecute el codigo php.se entiende el problema?

aki mi code para que se entienda mejor.
Código:
    <html>
  <head>
    <title>Formulario</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <form name="db-form" action="db.creator.php" method="post">
    <input type="text" name="dbname" value="Numbre_de_DB" />
</form>
  
  </body>
</html>
 <?php
    //conectar con la db
	$link = mysql_connect('localhost', 'root', 'root');
if (!$link) {
    die('Could not connect: ' . mysql_error());
    }
    
    //recoger variables
    $dbname= $_POST['dbname'];
    
    //consultas
    $db_create="CREATE DATABASE ".$dbname."";
    $dbs_creadas="SHOW DATABASES;";
    
    //crear base de datos
      $consult = mysql_query($db_create,$link);
if (!$consult) {
    die('consulta invalida ' . mysql_error());
}
else {
    echo "La base de datos $dbname ha sido creada con exito";
}
   //mostrar las bases de datos cradas
$consult2 = mysql_query($dbs_creadas);
if (!$consult2) {
    echo "<p>No hay bases de datos disponibles</p>";
} else {
   
    while ($result_row = mysql_fetch_row($consult2)) {
            echo "<br>". $result_row[0]."" ;
   }

}  
   
    ?>
Saludos y gracias!
  #2 (permalink)  
Antiguo 17/01/2009, 19:28
Avatar de Mauri1  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago de Chile
Mensajes: 558
Antigüedad: 21 años, 5 meses
Puntos: 0
Respuesta: ejecutar pedazos de codigo

si quieres ejecutar el codigo php solo si se ha enviado el formulario tienes que preguntar si esta seteada una variable post, por ejemplo, agrega un campo oculto al formulario llamado "enviado", luego en el php preguntas por if(isset($_POST["enviado"])), si el formulario fue enviado ese if te devuelve true y por tanto entra a ejecutar lo que esta dentro.

saludos
  #3 (permalink)  
Antiguo 17/01/2009, 19:29
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: ejecutar pedazos de codigo

if(isset($_POST)) {
//Codigo a ejecutar cuando se envie el formulario
}
  #4 (permalink)  
Antiguo 17/01/2009, 21:36
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: ejecutar pedazos de codigo

Wilfred:
Cita:
Tengo un documento php y en ese mismo documento un form
Como se llama el archivo?

Cita:
<form name="db-form" action="db.creator.php" method="post">
<input type="text" name="dbname" value="Numbre_de_DB" />
</form>
Tu form le hace falta el Submit para que puedas utilizar lo que te recomienda el amigo Ronruby.
Donde esta el codigo del archivo db.creator.php???.

Cita:
<html>
<head>
<title>Formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<form name="db-form" action="db.creator.php" method="post">
<input type="text" name="dbname" value="Numbre_de_DB" />
</form>

</body>
</html>
<?php
//conectar con la db
$link = mysql_connect('localhost', 'root', 'root');
if (!$link) {
die('Could not connect: ' . mysql_error());
}

//recoger variables
$dbname= $_POST['dbname'];

//consultas
$db_create="CREATE DATABASE ".$dbname."";
$dbs_creadas="SHOW DATABASES;";

//crear base de datos
$consult = mysql_query($db_create,$link);
if (!$consult) {
die('consulta invalida ' . mysql_error());
}
else {
echo "La base de datos $dbname ha sido creada con exito";
}
//mostrar las bases de datos cradas
$consult2 = mysql_query($dbs_creadas);
if (!$consult2) {
echo "<p>No hay bases de datos disponibles</p>";
} else {

while ($result_row = mysql_fetch_row($consult2)) {
echo "<br>". $result_row[0]."" ;
}

}

?>
Para que no te confundas, separa los codigos en un archivo html o xhtml y
otro archivo php, y darle los nombres que hagan sentido con el submit del primero.

Saludos
Y espero te ayude
Franco
  #5 (permalink)  
Antiguo 18/01/2009, 06:38
Avatar de Wilfred  
Fecha de Ingreso: octubre-2008
Mensajes: 110
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ejecutar pedazos de codigo

Gracias por las respuestas,la solución fue crear un campo oculto con el valar de enviado y después en el php el condicional que mauri dijo.Me sirvió perfect :D franco sorry que postee el code así de desordenado,pero antes lo tenia separado en dos archivos el html y php y no tengo el botón de submit , de momento lo estoy haciando con este xD

Saludos y gracias!

aquí el code por si a alguien le interesa:
Código:
    <html>
  <head>
    <title>Formulario</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <form name="db-form" action="" method="post">
    <input type="text" name="dbname" value="Numbre_de_DB" />
    <input type="hidden" name="enviado" value="enviado" />
    <input type="submit" value="submit" name="submit" />
</form>
  
  </body>
</html>
 <?php
    //conectar con la db
	$link = mysql_connect('localhost', 'root', 'root');
if (!$link) {
    die('Could not connect: ' . mysql_error());
    }
    
    //recoger variables
    $dbname= $_POST['dbname'];
    
    //consultas
    $db_create="CREATE DATABASE ".$dbname."";
    $dbs_creadas="SHOW DATABASES;";
    
    //crear base de datos
    if(isset($_POST["enviado"])) {
      $consult = mysql_query($db_create,$link);
if (!$consult) {
    die('consulta invalida ' . mysql_error());
}
else {
    echo "La base de datos $dbname ha sido creada con exito";
} }
   //mostrar las bases de datos cradas
$consult2 = mysql_query($dbs_creadas);
if (!$consult2) {
    echo "<p>No hay bases de datos disponibles</p>";
} else {
   
    while ($result_row = mysql_fetch_row($consult2)) {
            echo "<br>". $result_row[0]."" ;
   }

}  
   
    ?>
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 12:03.