Ver Mensaje Individual
  #7  
Antiguo 31-01-2012
guitarrahugo guitarrahugo is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 15
Reputación: 0
guitarrahugo Va por buen camino
Smile Tema Solucionado

Gracias Sinaloense Por tu respuesta, después de probar distintas variantes durante el fin de semana, lo que hice fue lo siguiente. Preparo las variables desde delphi y las envío a mi función php mediante el método POST, así mi función php me devuelve el resultado de una consulta, (primeramente evalúa un usuario y contraseña, para ver que tenga permiso de borrar tablas, crearlas o hacer lo que necesite), o envía ##ok## si pudo crear una tabla por ejemplo, o ##Error## si no la pudo crear. Ahí va el código delphi terminado, y la función php. Por ahí le puede ser útil a alguien. Saludos y gracias por tu tiempo.
Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
var
  http: TIdHttp;
  params: TStrings;
  respuesta: string;
  Usuario, Pass, SQL:String;

begin

  http := TIdHTTP.Create(Self);
  params := TStringList.Create;
  try

    Usuario:=  'variable1='+ Edit1.text;
    Pass:= 'variable2='+ Edit2.text;
    SQL := 'variable3=' +SQLText.Text;
    params.Add(Usuario);
    params.Add(Pass);
    params.Add(SQL);

    respuesta := http.Post('MiWeb/PruebaConFuncion.php', params);

    ShowMessage('Respuesta: ' + respuesta);
  finally
    http.Free;
    params.Free;

Código PHP:
?php
    $Usuario 
= $_POST['variable1'];
    
$Pass = $_POST['variable2'];
    
$SQL = $_POST['variable3'];
        
$SQL = stripslashes($SQL);// limpio el parametro de consulta para q no tenga ningun caracter extraño que trunque la consulta
    
$link = mysql_connect('localhost','root',''); 
    if (!
$link)
    {
        echo 
"error conectando la base de datos";
        exit(); 
    }
    
//selecciona la base de datos
    
$Base = mysql_select_db('Biodata',$link); // para conectarme abajo

    
if(!$Base)
    {
        echo 
"error seleccionando la base de datos";
        exit(); 
    }
    echo 
"conexion conseguida \n\n";

    
//Valida Usuario
    
$Query = "SELECT * FROM `usuario` WHERE upper(`Usuario`) = upper('$Usuario') and UPPER(`Pass`) = UPPER('$Pass')";
    
$resultado = mysql_query ($Query,$link);
    
$Cantidadregistros = mysql_num_rows($resultado) ; //cuenta la cantidad de registros encontrados

    
    
if ($Cantidadregistros > 0) // si encontró algo ejecuta la consulta
    
{    
          
       echo 
"Usuario: ".$Usuario ."\n";
    
//   echo "Contraseña: ".$Pass."\n" ;
       
echo "SQL: ".$SQL ."\n\n";
    
     
$SentenciaSQL = trim(substr($SQL,0,6)); //saca los primeros 6 caracteres del string y le saca los espacios en blanco Trim
    
       
if (strtoupper($SentenciaSQL) == strtoupper('select')) 
      {
        
$result =  mysql_query ($SQL,$link);
         if (
mysql_affected_rows() >   0)
         {    
           
$nombre_archivo = "Datos.txt";  
           
FOPEN($nombre_archivo, 'w');    // crea el archivo       
           
            
while($row = mysql_fetch_array($result)) 
            { 
                    
                       
$Resultado= print_r( $row, true);
                      echo 
$Resultado;
    
                
//Crea el archivo TXT en donde está corriendo la funcion
          
$Datos_A_Ingresar = $Resultado;
               
$contenido = $Datos_A_Ingresar; 
                
FOPEN($nombre_archivo, 'a+'); // edita el archivo

                // Me aseguro primero de que el archivo existe y puedo escribirse sobre el. 
                
if (is_writable($nombre_archivo)) // Abro $nombre_archivo en modo de adicion. El puntero se encuentra al final del archivo, asi que ahí es donde ira $contenido cuando llamemos fwrite(). 
                
{ 
                    if (!
$gestor = fopen($nombre_archivo, 'a'))  //fopen($nombre_archivo, 'a' me permite sumar texto al final del achivo
                    
{ 
                         
$A= "No se puede abrir el archivo";
                         exit(); 
                    } 

                     
// Escribir $contenido a nuestro arcivo abierto. 
                    
if (fwrite($gestor, $contenido) === FALSE) 
                     { 
                        
$A= "No se puede escribir el archivo";
                        exit(); 
                    } 
                      
                    
$A= "##Ok##";    
                    
fclose($gestor); 

                }
                  else { 
$A= "##Error## ";} 
            }
         } 
         else 
$A ="##Error## ";     
         Echo 
$A;
      }      
    
       
         if (
strtoupper($SentenciaSQL) == strtoupper('Delete'))
         {
            
$result =  mysql_query ($SQL,$link); 
            
// echo mysql_affected_rows().'<br>'; // devuel la cantidad de registros afectado en el alta
             
if (mysql_affected_rows() == -1 ){$A = '##Error##';}        
             if (
mysql_affected_rows() ==  0) {$A = '##Error##';}        
             if (
mysql_affected_rows() >   0) {$A = '##Ok##';}           
             Echo 
$A;
             exit();     
         
         
         }
    
          if (
strtoupper($SentenciaSQL) == strtoupper('CREATE') ) //Crea una tabla nueva
          
{
             
$result =  mysql_query ($SQL,$link); 
             
//echo mysql_affected_rows().'<br>'; // devuelve la cantidad de registros afectado en el alta
             
if (mysql_affected_rows() == -1 ){$A = '##Error##';}        
             if (
mysql_affected_rows() ==  0) {$A = '##Ok##';}        
             Echo 
$A;
             exit();
          
          }
    
    
         if (
strtoupper($SentenciaSQL) == strtoupper('DROP T') ) //Borra una Tabla
          
{
             
$result =  mysql_query ($SQL,$link); 
        
//     echo mysql_affected_rows().'<br>'; // devuel la cantidad de registros afectado en el alta
             
if (mysql_affected_rows() == -1 ){$A = '##Error##';}        
             if (
mysql_affected_rows() ==  0) {$A = '##Ok##';}        
              
             Echo 
$A;
             exit();
          
          }
          
          
           if (
strtoupper($SentenciaSQL) == strtoupper('INSERT') ) //Alta de registros
          
{
             
$result =  mysql_query ($SQL,$link);                   
            
// echo mysql_affected_rows().'<br>'; // devuel la cantidad de registros afectado en el alta
             
if (mysql_affected_rows() == -1 ){$A = '##Error##';}        
             if (
mysql_affected_rows() ==  0) {$A = '##Error##';}        
             if (
mysql_affected_rows() >   0){  $A = '##Ok##';}           
             Echo 
$A;
             exit();
          
          }
    
         if (
strtoupper($SentenciaSQL) == strtoupper('UPDATE') ) //Actualiza Registros
          
{
             
$result =  mysql_query ($SQL,$link); 
            
// echo mysql_affected_rows().'<br>';
             
if (mysql_affected_rows() == -1 ){$A = '##Error##';}        
             if (
mysql_affected_rows() ==  0) {$A = '##Error##' ;}        
             if (
mysql_affected_rows() >   0){$A = '##Ok##';}                 
             Echo 
$A;
             exit();
          
          }
        
    }      
    else 
    {
        echo 
'Usuario no válido';
        exit();
            
    }      
      
?> 
Responder Con Cita