Doorverwijzen?

Status
Niet open voor verdere reacties.

tedjansen11

Verenigingslid
Lid geworden
8 mei 2009
Berichten
449
Hallo allemaal,

Vandaag teruggekomen van vakantie en meteen iets maken omdat mijn provider failliet is gegaan waar ik bij host...
Maar daar gaat hij nu niet om ik heb een script dat de database exporteert en ik moet het daarna redirecten naar mijn homepage.
Weet iemand hoe dat moet maken.

PHP:
<?php
 $host = '**'; // <--  db address
 $user = '**'; // <-- db user name
 $pass = '**'; // <-- password
 $db = '**'; // db's name
 $table = 'urenverantwoording'; // table you want to export
 $file = 'output'; // csv name.
 
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
 mysql_select_db($db) or die("Can not connect.");
 
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
 $i = 0;
 
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field'].";";
$i++;}
}
$csv_output .= "\n";
 $values = mysql_query("SELECT * FROM ".$table."");
 
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}
 
$filename = $file."_".date("d-m-Y_H-i",time());
 
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
 
print $csv_output;
 
exit;
?>
 
Laatst bewerkt:
@kloentje ik moet het via een script doen i.v.m Werknemers die niet de database mogen bereiken!

Maar waar moet ik het ergens erin zetten?
 
phpmyadmin, vereist ook een login. Dus dit is beveiligd, daarin tegen is jou script niet beveiligd met een wachtwoord en kan een ieder ander die de pagina weet een database backup downloaden.

De header location zal hier moeten komen te staan denk ik zo:

PHP:
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
 
print $csv_output;

header("Location: http://www.example.com/");
exit;
 
Hij maakt van een tabel een export, maar als ze in phpMyAdmin komen dan zien ze users met privé info dus die wil ik niet vrijgeven.
 
Ik heb het net geprobeerd en hij download de CSV maar hij stuurt niet door!
 
Ik denk dat dat komt doordat die de het bestand download.

Zet eens het bestand voor print $csv...

Als die het dan doet dan ligt het aan dat de er al output is voor de de header location functie.

Mocht dit het geval zijn dan zou ik dit proberen:

(zet dit weer na de print van het csv bestand)
[JS]
<script>
window.location = "http://www.exemple.com";
</script>
[/JS]
 
Nu krijg ik een uneaccepted < error op lijn 38!

Kan je de code in het script bouwen en het posten of is dat te veel werk?
 
Zoals de fout melding al zet gaat het fout omdat je het script binnen php hebt gezet.

Het zou dan zoiets moeten zijn:

PHP:
<?php
 $host = '**'; // <--  db address
 $user = '**'; // <-- db user name
 $pass = '**'; // <-- password
 $db = '**'; // db's name
 $table = 'urenverantwoording'; // table you want to export
 $file = 'output'; // csv name.
 
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
 mysql_select_db($db) or die("Can not connect.");
 
$result = mysql_query("SHOW COLUMNS FROM ".$table."");
 $i = 0;
 
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field'].";";
$i++;}
}
$csv_output .= "\n";
 $values = mysql_query("SELECT * FROM ".$table."");
 
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}
 
$filename = $file."_".date("d-m-Y_H-i",time());
 
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
 
print $csv_output;
?>
<script>
window.location = "http://www.exemple.com";
</script>

Je kan ook een formulier maken waarin je aanklikt maak database export. Dan ga je gelijk naar de nieuwe pagina en daarna vraag je pas het bestand op.
 
Oke andere vraag hoe kan ik dus alleen dat ie m export en dan opslaat op de server? en dan daarna kan ik een script aanmaken waarmee die de file downloadt en een ander script uitvoert!
 
je voert gewoon jou functie uit. inplaats van hem gelijk downloadbaar te maken zet je hem op de server.

Daarna maak je een pagina waarin de gebruiker zijn csv bestanden kan downloaden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan