Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/11/2006, 16:54
Avatar de ASCENDEDMASTERS
ASCENDEDMASTERS
 
Fecha de Ingreso: julio-2005
Ubicación: Pergamino, Buenos Aires
Mensajes: 302
Antigüedad: 18 años, 10 meses
Puntos: 1
(cambie el nombre del sitio para mas seguridad por [somesite])

archivo PHP en el nuevo servidor (este pide al servidor viejo los datos y los guarda en una bd del nuevo)
Código PHP:
include('conection.php');
$link=conectarse();


$tabla=$_GET['tabla'];
$cmp=$_GET['cmp'];
if(!isset(
$_GET['cmp']) || !isset($_GET['tabla'])){
    echo 
'faltan parametros por url';
    exit;
}

set_time_limit(300);
$a=file('http://[somesite].com/control/bd.php?tabla='.$tabla.'&cmp='.$cmp);
if(
is_numeric(strpos('@',$a[0]))){
    echo 
$a[0];
    echo 
'<br>#18';
    exit;
}
echo 
'<b>TOTAL: <font color=#ff0000>'.$a[0].'</font></b><p>';
$a=explode(' ',trim($a[1]));

echo 
'<div align=center>';
for(
$i=0;$i<10;$i++)
{
    global 
$link,$tabla,$cmp;
    
set_time_limit(300);
    
$show='';
    
$b=file('http://[somesite].com/control/bd.php?id='.$a[$i].'&tabla='.$tabla.'&cmp='.$cmp);
    
$show=trim(implode("\n",$b));
    
mysql_query($show,$link) or die(mysql_error().'<p>'.$show);
    echo 
'<img src="http://pirata777.com/phpBB2/images/bot/ok.jpg" border=0>';
}
echo 
'<h1>JOYA!</h1>'



PHP del servidor viejo
Código PHP:
<?

include('conection.php');
$link=conectarse();

if(!isset(
$_GET['cmp']) || !isset($_GET['tabla'])){
    echo 
'@ERROR #1';
    exit;
}

$tabla=$_GET['tabla'];
$g=$_GET['cmp'];

if(!isset(
$_GET['id']))
{
    global 
$tabla,$g;
    
$hola='SELECT '.$g.' FROM phpbb_'.$tabla;
    
$sql=mysql_query($hola,$link) or die('@mysql =>'.mysql_error());
    echo 
mysql_num_rows($sql);
    echo 
"\n";
    while(
$res=mysql_fetch_assoc($sql))
        echo 
$res['post_id'].' ';
    exit;
}

$sql2='SELECT * FROM phpbb_'.$tabla.' WHERE '.$g.'='.$_GET['id'];
$sql=mysql_query($sql2,$link);
if(!
$sql){
    echo 
'@ERROR <b>'.$sql2.'</b>';
    exit;
}    
$veo=mysql_fetch_assoc($sql);
$mem=count($veo)-1;
echo 
'INSERT INTO phpbb_'.$tabla.' (';
$guia=0;
foreach(
$veo as $k => $veo_)
{
    echo 
$k;
    if(
$guia!=$mem)
        echo 
', ';
    else
        echo 
') VALUES (';
    
$guia++;
}
$guia=0;
foreach(
$veo as $k => $veo_)
{
    global 
$mem$guia;
    echo 
' ';
    
$com=(is_numeric($veo[$k]))?'':'\'';
    echo 
$com.$veo[$k].$com;
    
$proximo=($guia==$mem)?')':', ';
    echo 
$proximo;
    
$guia++;
}

cuando ejecuto el php en el server nuevo llama el php del viejo este le devuelve los id de los campos de esta tabla que le pasamos el nombre por get junto con el campo que contiene los id por get tambien. luego con un for va recorriendo el array, en cada posicion llama al php viejo pidiendole los datos de ese id y esa tabla que se los pasamos por get. El viejo le devuelve el query asi:
Código PHP:
INSERT INTO tabla (campo1,campo2,campo3VALUES (9,'dato','otro dato'
despues toma esto y hace el query y listo, eso por cada id.

La clave esta en lograr hacer el query sin tener que escapar nada del contenido que recibo del server viejo porque despues tendre que modificar el codigo que usa esa bd pero no debo hacerlo porque de alguna forma lo metieron en la base de datos asique asi como salio asi tiene que entrar sin problemas si es el mismo contenido sin cambios, encima en el php que inserta datos en la bd del foro usa comillas simples para los campos alfanumericos y aca me tira error cuando hay una comilla simple en el campo :?
__________________
Dios es la unica fuente de todo bien.

Última edición por ASCENDEDMASTERS; 18/11/2006 a las 17:00