Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 31-01-2012
guitarrahugo guitarrahugo is offline
Miembro
NULL
 
Registrado: ene 2012
Posts: 15
Poder: 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
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Parametros y comunicación entre aplicaciones. NPIdea API de Windows 4 15-04-2010 20:30:30
Pasar parametros entre aplicaciones Iceman OOP 2 14-06-2005 16:29:25
Parametros entre Delphi i c++ Builder jsb Varios 7 20-02-2004 18:25:05
Paso de parametros entre delphi y c++ jsb C++ Builder 0 16-02-2004 16:22:49
parametros entre dll's xgerard Varios 12 22-11-2003 00:55:18


La franja horaria es GMT +2. Ahora son las 17:17:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi