HOLA a todos , espero esten muy bien!!!

he estado haciendo pruebas para resolver mi problema, ya verifique que los arrays se regrsen por return y se impriman, la prueba que hice es:
Archivo 1

prueba1.php)
//Lo unico que busco es que se ejecute el script de prueba2.php
<? include("prueba2.php");?>
<form name="hola" action="prueba2.php">
<input type="submit" name="boton"/>
</form>
<?
if($b==1){
$hola= regresa();
if(isset($hola))echo "<br>rafael chavez <br>";
for($i=0;$i<=count($hola);$i++)
echo $hola[$i];
}
else
echo "No hay datos";
?>
Archivo 2

prueba2.php)
<?
$reg[0]="RAFAEL";
$reg[1]="CHAVEZ SOLIS ";
$reg[2]=" ESTO SON ARRAYS !!!!!!";
header("Location

.php?b=1");
function regresa(){
global $reg;
return $reg;
}
?>

Al parecer todo va bien si imprime el array pero al ejecutarlo manda un error asi:
Warning: Cannot modify header information - headers already sent by ( output started at prueba2.php: 9(supongo que es donde esta el include) )in prueba1.php line 6(donde esta header)

Que es lo que pasa con el header?? existe algun otra manera de al mandar llamar un script con un form(POST) regresar en un punto dado al script anterior para despues mandar llamar la funcion???
De Antemano Gracias por su ayuda !!!
