Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2008, 18:59
Avatar de leskolpykos
leskolpykos
 
Fecha de Ingreso: junio-2007
Ubicación: Caracas
Mensajes: 96
Antigüedad: 16 años, 11 meses
Puntos: 0
form con dos action

tengo un form que ejecuta una funcion: la de insertar datos en una tabla mysql. Pero necesito que ejecute otra funcion, la de verificar un codigo introducido antes de enviar los datos a la tabla. Como hago para que ejecute las dos órdenes?

Acá tengo el script php

Código PHP:
<?php require_once('../home/conexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$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 libro (usuario, email, mensaje) VALUES (%s, %s, %s)",
                       
GetSQLValueString($_POST['usuario'], "text"),
                       
GetSQLValueString($_POST['email'], "text"),
                       
GetSQLValueString($_POST['mensaje'], "text"));

  
mysql_select_db($database_localhost);
  
$Result1 mysql_query($insertSQL) or die(mysql_error());

  
$insertGoTo "test.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
?>
a ese escript necesito incluirle éste script en alguna parte

Código PHP:
<?php
session_start
();
if (
$_POST['action'] == "checkdata") {
    if (
$_SESSION['tmptxt'] == $_POST['tmptxt']) {
        echo 
"Bienvenido";
    } else {
        echo 
"Intentalo nuevamente";
    }
    exit;
}
?>
se lo incluí al principio y quedó así

Código PHP:
<?php require_once('../home/conexion.php'); ?>
<?php

session_start
();
if (
$_POST['action'] == "checkdata") {
    if (
$_SESSION['tmptxt'] == $_POST['tmptxt']) {
        echo 
"Bienvenido";
    } else {
        echo 
"Intentalo nuevamente";
    }
    exit;
}

if (!
function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$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 libro (usuario, email, mensaje) VALUES (%s, %s, %s)",
                       
GetSQLValueString($_POST['usuario'], "text"),
                       
GetSQLValueString($_POST['email'], "text"),
                       
GetSQLValueString($_POST['mensaje'], "text"));

  
mysql_select_db($database_localhost);
  
$Result1 mysql_query($insertSQL) or die(mysql_error());

  
$insertGoTo "test.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
?>
ahora, el formulario, al final están los dos input, obviamente solo se ejecuta una: o ingresa los datos en la tabla o verifica los datos, pero no hace las dos:

Código HTML:
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
  <table align="center">
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Usuario:</td>
      <td><input type="text" name="usuario" value="" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Email:</td>
      <td><input type="text" name="email" value="" size="32" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right" valign="top">Mensaje:</td>
      <td><p>
        <textarea name="mensaje" cols="50" rows="5"></textarea>
      </p>
      <p>
      
      <img src="captcha.php" width="100" height="30" vspace="3"><br>
		  <input name="tmptxt" type="text" size="30"><br>

          
          </p></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">&nbsp;</td>
      <td><input name="btget" type="submit" class="boton" value="Insertar registro" /></td>
    </tr>
  </table>
  <input name="action" type="hidden" value="checkdata">
  <input type="hidden" name="MM_insert" value="form1" />
</form> 
¡QUE ESTOY HACIENDO MAL?
__________________
www.luisespectaculo.net el portal de artistas y farándula más grande de Venezuela!

Última edición por leskolpykos; 29/07/2008 a las 09:11