Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

Ladda ner sql fil med php

Skapad av tok124, 2013-12-11 08:20 i Webbutveckling & Programmering

2 675
10 inlägg
0 poäng
tok124
Visningsbild
P 35 Hjälte 258 inlägg
0
Hej. Jag har gjort en SQL Generator och skulle vilja göra så man kan ladda ner filen som man skapar på min hemsida. så jag måste skapa en download link. just nu ser mitt script ut såhär:

<?php
$md55=md5(uniqid(rand()));
echo "<p>MD5 Code;</p> $md55 <p>Download Link:</p> ";
$newfile = "$_POST[entry]_$md55.sql"; //-File Name
$sql="INSERT INTO Creature_template (entry, difficulty_entry_1, difficulty_entry_2, difficulty_entry_3, KillCredit1, KillCredit2, modelid1, modelid2, modelid3, modelid4, name, subname, IconName, gossip_menu_id, minlevel, maxlevel, exp, faction_A, faction_H, npcflag, speed_walk, speed_run, scale, rank, mindmg, maxdmg, dmgschool, attackpower, dmg_multiplier, baseattacktime, rangeattacktime, unit_class, unit_flags, unit_flags2, dynamicflags, family, trainer_type, trainer_spell, trainer_class, trainer_race, minrangedmg, maxrangedmg, rangedattackpower, type, type_flags, lootid, pickpocketloot, skinloot, resistance1, resistance2, resistance3, resistance4, resistance5, resistance6, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8, PetSpellDataId, VehicleId, mingold, maxgold, AIName, MovementType, InhabitType, HoverHeight, Health_mod, Mana_mod, Armor_mod, RacialLeader, QuestItem1, QuestItem2, QuestItem3, QuestItem4, QuestItem5, QuestItem6, movementID, RegenHealth, mechanic_immune_mask, flags_extra, ScriptName, WDBVerified)
VALUES
($_POST[entry], 0, 0, 0, 0, 0, $_POST[modelid1], $_POST[modelid2], $_POST[modelid3], $_POST[modelid4], '$_POST[name]', '$_POST[subname]', '$_POST[IconName]', $_POST[gossip_menu_id], $_POST[minlevel], $_POST[maxlevel], 2, $_POST[faction_A], $_POST[faction_H], $_POST[npcflag], 1, 1.14286, $_POST[scale], $_POST[rank], $_POST[mindmg], $_POST[maxdmg], $_POST[dmgschool], $_POST[attackpower], 1, $_POST[baseattacktime], $_POST[rangeattacktime], $_POST[unit_class], $_POST[unit_flags], $_POST[unit_flags2], $_POST[dynamicflags], $_POST[family], $_POST[trainer_type], $_POST[trainer_spell], $_POST[trainer_class], $_POST[trainer_race], $_POST[minrangedmg], $_POST[maxrangedmg], $_POST[rangedattackpower], $_POST[type], $_POST[type_flags], $_POST[lootid], 0, 0, $_POST[resistance1], $_POST[resistance2], $_POST[resistance3], $_POST[resistance4], $_POST[resistance5], $_POST[resistance6], $_POST[spell1], $_POST[spell2], $_POST[spell3], $_POST[spell4], $_POST[spell5], $_POST[spell6], $_POST[spell7], $_POST[spell8], 0, 0, $_POST[mingold], $_POST[maxgold], '$_POST[AIName]', 0, 3, 1, $_POST[Health_mod], $_POST[Mana_mod], $_POST[Armor_mod], $_POST[RacialLeader], $_POST[QuestItem1], $_POST[QuestItem2], $_POST[QuestItem3], $_POST[QuestItem4], $_POST[QuestItem5], $_POST[QuestItem6], 0, 1, $_POST[mechanic_immune_mask], $_POST[flags_extra], '$_POST[ScriptName]', 12340);";
$myFile = "SQL/$newfile"; //-Directory of creation if needed.

$ffunction = fopen($myFile, 'w') or die("can't open file"); //-Self explanatory

fwrite($ffunction, $sql);
fclose($ffunction);

echo "<br><a href=" http://31.22.7.56:2082/cpsess6445270843/download?file=/home/trinityc/public_html/SQL/$newfile"><img src=' http://www.trinitycore-sql-generator.com/item/Download-Button.png'></a>"; //-Generated HTTP link for file.

?>

Men om jag använder den länken som står där så måste man ha account name och password för att kunna ladda ner plus att länken ändras typ hela tiden. eller den här delen ändras "/cpsess6445270843/" typ hela tiden. hur kan jag göra en ny länk som altid är samma länk bara att själva filnamnet ändras?

Tillägg av tok124 2013-12-11 08:23

Pastebin Link till scriptet: http://pastebin.com/AcFTt2EU (kanske lite lättare att läsa från denna link)

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0
Känns mer relevant att visa koden för download, för där det krävs inloggning.
http://31.22.7.56:2082/cpsess6445270843/download

"/cpsess6445270843" borde inte ändras vid utskriften, för det verkar inte vara något i koden som du visar som ändrar det.

Jag är ond!

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
när jag loggade ut/in från hosten och testade igen så hade de ändrats

Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0

Svar till tok124 [Gå till post]:
Men eftersom du kör echo med http://31.22.7.56:2082/cpsess6445270843/[...] borde inte felet ligga i skriptet du visar. Oavsett om loggar ut eller in ska texten se likadan ut.

Borde du inte köra sökvägen under samma domännamn? Att du även kör din download från http://www.trinitycore-sql-generator.com. Testa gå in på ip-adressen du anger i skriptet och möts av inloggning, så det är inloggningen till cPanel som står i vägen.

Jag är ond!

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
ja det är inloggningen till cPanel som står i vägen tror jag. men asså om jag går in på typ http://trinitycore-sql-generator.com/SQL/minfil.sql så hittas inte filen typ
tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0
eller jo den hittas men filen laddar inte ner på min dator. den laddas ner på hosten
Tvillingen
Visningsbild
P 31 Hjälte 3 117 inlägg
0

Svar till tok124 [Gå till post]:
Nej du får fixa en mellanhand, som skickar med rätt headers för att det ska ploppa upp automatisk nedladdning hos klienten.

download.php
Så hämta get-data -> kontrollera så att användaren inte försöker nå någon annan mapp -> kontrollera att filen finns -> skicka rätt headers -> skriv ut filen.

Googla "php force download file" så borde du få lite exempel :)

Jag är ond!

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
Aha okej. ska göra det. tack :D

tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0

Svar till Tvillingen [Gå till post]:
förstår verkligen inte hur jag ska fixa detta eftersom att linken aldrig är samma länk. jag hittar scripts som typ:

$file_url = ' http://www.myremoteserver.com/file.exe';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename="" . basename($file_url) . """);
readfile($file_url);

jag försökte ändra till:
$file_url = ' http://trinitycore-sql-generator.com/item/$newfile';
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename="" . basename($file_url) . """);
readfile($file_url);

men då laddar den bara ner en fil som egentligen inte finns som heter $newfile.

såhär ser ju mitt script ut just nu http://pastebin.com/Mvmu8YuH tog bort den delen av scriptet jag linkade ovanför eftersom att de inte funkade...
tok124
Visningsbild
P 35 Hjälte 258 inlägg
Trådskapare
0
har fixat så de går att ladda ner nu med

echo "<br><a href=' http://trinitycore-sql-generator.com/item/$myFile' target='_blank' download='$myFile'><img src=' http://www.trinitycore-sql-generator.com/item/Download-Button.png'></a>";

Men finns det något sätt så man slipper klicka först download på sidan sen komma till en php sida och klicka på en ny download knapp?

för först så fyller man ju i textboxarna på hemsidan som heter http://trinitycore-sql-generator.com/item/item.html

och sen när man fyllt i alla rutor klickar man ju på "Download" knappen.
när man klickat på download så kommer man till en ny sida som heter http://trinitycore-sql-generator.com/item/Connection.php

på den sidan så får man klicka på en ny länk för att filen ska laddas ner... finns de något sätt som gör att man inte kommer till php sidan men att min form endå skapar en .sql fil med alla values från textboxarna?

Tillägg av tok124 2013-12-13 11:20

btw jag har testat med target='_self' i php scriptet och target="_self" i html formen. funkar inte endå


Forum » Datorer & IT » Webbutveckling & Programmering » Ladda ner sql fil med php

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons