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)) 
            { 
                    
                       
$Resultadoprint_r$rowtrue);
                      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() == -){$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() == -){$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() == -){$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() == -){$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() == -){$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