Data inlezen

Pagina: 1
Acties:
  • 812 views

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
Hoi,

Ik ben een redelijke leek op gebied van php.

Op de server staan een aantal bestanden in een map. Ik zou graag met elke bestand dat wordt upgeload dezelfde handeling willen uitvoeren.

Ik wil een interfaceje maken die leest welke tekst bestanden er in de map staan en deze bijvoorbeeld in een tablijst weergeeft. Zo dat ik vervolgens op een knop kan drukken om een bepaalde actie uit te voeren met het bestand. Deze actie wordt later uitgewerkt.

Weet iemand mischien een basis script of commando's die relevant zijn?

zoiezo bedankt

Acties:
  • 0 Henk 'm!

  • Cor453
  • Registratie: Mei 2011
  • Laatst online: 11-05 15:07

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Je wil bestanden benaderen, uitlezen en commando's uitvoeren (op de commandline?), dus dan zoek je toch gewoon de functies op die daar iets mee doen? Wat had je zelf al gezocht? Wat heb je daarbij gevonden? Wat is daar niet duidelijk aan of wat lukt daar niet mee? Oftewel: De Quickstart

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
Ik wil geen bestanden uploaden. De bestanden die al op server staan bijvoorbeeld in de folder data moeten worden herkent en worden weergeven op de pagina. Vervolgens kan 1 van deze bestanden worden gekozen waar een actie mee kan worden uitgevoerd.

Acties:
  • 0 Henk 'm!

  • Cor453
  • Registratie: Mei 2011
  • Laatst online: 11-05 15:07
Dan snap ik je niet precies. Je wilt gewoon de bestanden includen?

Zoiets?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function LoadFiles(){
    /**
     * Directory is  current dir.
     */
    $dir = __DIR__;
    /**
     * Scan the dir.
     */
    $dirContents = scandir($dir);
    /**
     * Iterate each item in dir. Execute following actions:
     *  - Check if the extension is php.
     * 
     * If the above criteria match, require file.
     */
    foreach($dirContents as $v){
        $fi = pathinfo($dir . '/' . $v);
        if($fi['extension'] === 'php'){
            require_once $dir . '/' . $v;
        }
    }
}

[ Voor 98% gewijzigd door Cor453 op 04-06-2014 15:31 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 15:25:
Ik wil geen bestanden uploaden. De bestanden die al op server staan bijvoorbeeld in de folder data moeten worden herkent en worden weergeven op de pagina. Vervolgens kan 1 van deze bestanden worden gekozen waar een actie mee kan worden uitgevoerd.
Dan staat mijn vraag nog steeds. We willen best helpen maar doe dan eerst even zelf wat moeite. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
mischien is de drempwelwaarde in het jaar 2014 wel wat hoog.

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
<?php

$dir='data'; //directory to read

//get directory contents into an array
$list=scandir($dir);

?>
<html
<head>
<title>Grafiek getij data</title>
</head>
<body>
<div>
<?php if(isset($_POST['weergeven'])) echo 'Selected: ' . $_POST['data'];?>
<form action="index.php" method="post">
<div><select name="data">
<?php
foreach($list as $file)
{
//ignore . (current dir) and .. (parent dir)
if($file!=='.'&&$file!=='..')
{
echo "<option value=\"$file\"";
if(isset($_POST['submit'])&&$_POST['image']==$file) echo ' selected="selected"';
echo ">$file</option>";
}
}
?>
</select></div>
<div><input type="submit" name="submit" /></div>
</form>
</div>
</body>
</html>

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
dit is wat ik nu heb. Dit script was eigenlijk om plaatjes te weergeven. Zou nu graag alle overbodigheden eruit willen halen en de tekst bestanden willen weergeven als ik op weegeven/submit druk

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
Ik wil deze actie $Open=fopen($bnaam,"r"); uitvoeren wanneer er op de knop "weergeven" wordt gedrukt. Ik probeer het script om te bouwen maar herken niet goed waar deze actie ongeveer moet staan binnen het script.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Als je dat niet begrijpt moet je je even inlezen over hoe het web werkt. Dat gaat namelijk op requestbasis en je kan niet iets nieuws doen als je op een knop drukt. Als je dat wil moet je dat in een nieuw request afhandelen. Dat kán in dezelfde file, dat kan ook ergens anders.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 15:57:
Ik wil deze actie $Open=fopen($bnaam,"r"); uitvoeren wanneer er op de knop "weergeven" wordt gedrukt. Ik probeer het script om te bouwen maar herken niet goed waar deze actie ongeveer moet staan binnen het script.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
// Specify the directory to list/view
$dir='data'; 
?>
<html>
<head>
<title>Grafiek getij data</title>
</head>
<body>
<div>
<?php if(isset($_POST['weergeven'])) echo 'Selected: ' . $_POST['data'];?>
<form action="index.php" method="post">
<div><select name="data">
<?php
// Get an array of the files in the target directory ($dir)
$list = scandir($dir);

// Loop through all the files in the target directory
foreach($list as $file) {
    // Check if the file has the 'txt' extension
    if (pathinfo($path, PATHINFO_EXTENSION) === 'txt') {
         echo '<option value=' . $file . '>' . $file . '</option'; 
    }
}
?>
</select></div>
<div><input type="submit" name="submit" /></div>
</form>

<?php
// Check if someone pressed the [name="submit"] button
if (isset($_POST['submit']) && isset($_POST['data'])) {
    // Read text from file
    $text = file_get_contents($dir . DIRECTORY_SEPARATOR . $_POST['data']);

    // Show text
    echo '<textarea>' . $text . '</textarea>';
}

?>
</div>
</body>
</html>


Code is niet getest en snel getyped, maar dit is de opzet. Totaal niet veilig/handig/klaar voor productie, maar doe er je ding mee. :)

[ Voor 0% gewijzigd door xh3adshotx op 04-06-2014 16:27 . Reden: <html> tag gefixed (missing: ">") ]


Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
ahh super bedankt ik ga kijen of ik te aan de gang krijg

Acties:
  • 0 Henk 'm!

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 16:24:
ahh super bedankt ik ga kijen of ik te aan de gang krijg
In een productie omgeving wil je ook nog testen of de data parameter wel in de source ($dir) blijft, anders kan iemand heel leuk alles uitlezen. Het is ook beter om HTML en PHP code gescheiden te houden. Een <div> zonder opmaak of andere functie is verder ook niet nodig in een <form>. Voegt namelijk niks toe.

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
wanneer ik op de lijst druk is deze leeg zonder

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 01-05 10:36

NMe

Quia Ego Sic Dico.

Dan ga je toch even debuggen?

Kom op, doe even wat meer moeite voor je eigen probleem. Ik linkte hierboven de quickstart al. Een gebrek aan kennis is geen excuus voor een gebrek aan eigen inzet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 16:32:
wanneer ik op de lijst druk is deze leeg zonder
De fout is (zie ik nu) heel makkelijk te zien. Maar ik ga niet alles voor je doen, en je gebrek aan inzet in dit topic begint ook een beetje vervelend te worden. Kleine aanvulling op @NMe: var_dump()

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
ben me zelfs met zijn 2en aan het inzetten. Begrijp ook wel dat het geen schoonheidsprijs verdient. En bedankt voor je hulp anyway. Vindt alleen wel opvallend dat NMe blijft reageren met dezelfde boodschap en niet gewoon verder gaat.

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
en ik zit ook met een deadline en heb onvoldoende tijd om door de basis heen te gaan

Acties:
  • 0 Henk 'm!

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 16:38:
ben me zelfs met zijn 2en aan het inzetten. Begrijp ook wel dat het geen schoonheidsprijs verdient. En bedankt voor je hulp anyway. Vindt alleen wel opvallend dat NMe blijft reageren met dezelfde boodschap en niet gewoon verder gaat.
Dat blijkt niet uit de responses die jij in dit topic geeft, bijvoorbeeld:
Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 16:32:
wanneer ik op de lijst druk is deze leeg zonder
De post lijkt niet eens afgemaakt, wat toch wel een beetje jammer is aangezien ik (en een aantal anderen) wel tijd steken in het reageren op dit topic.

Je zou bijvoorbeeld error_reporting eens op ALL kunnen zetten zodat je ziet waarom het mis gaat, of kijken welke variable wat bevatten en wat de verwachtte uitkomst is op een bepaald punt in je script.

Als je dan een nette post maakt met de uitkomst daarvan, zullen mensen hier heel anders reageren.

@NMe zal blijven reageren tot je het goed doet, daar is hij admin voor. Zonder mensen als @NMe word het een grote chaos. :)
Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 16:43:
en ik zit ook met een deadline en heb onvoldoende tijd om door de basis heen te gaan
Het feit dat je een deadline noemt betekend dus dat je dit als werk doet. De code die hier in het topic gepost word is niet van al te beste kwaliteit. Het resultaat wat daaruit voorkomt wil je zeker niet in productie gebruiken.

[ Voor 15% gewijzigd door xh3adshotx op 04-06-2014 16:45 ]


Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
Ja ok goed, je hebt een punt.

Zit gewoon in tijdnood en ben daarom ook wat meer tijdbewust dan leergierigbewust.

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
De deadline is voor mijn opleiding. Het is een onderdeel van een groter script. De actie die wordt uitgevoerd bij submit is dan ook een voorbeeld

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 12-05 19:36

Douweegbertje

Wat kinderachtig.. godverdomme

Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 16:38:
ben me zelfs met zijn 2en aan het inzetten. Begrijp ook wel dat het geen schoonheidsprijs verdient. En bedankt voor je hulp anyway. Vindt alleen wel opvallend dat NMe blijft reageren met dezelfde boodschap en niet gewoon verder gaat.
Als ik NMe was had ik allang je topic op slot gezet. We zijn hier niet je hulpjes die even alles voor je maken. Je stelt je enorm slecht op, en je geeft ontzettend weinig informatie om vervolgens maar tegen 'ons' te zeuren.

Even als tip, als je de volgende keer te laat met iets bent en een deadline hebt en je er de ballen verstand van hebt: Zorg dan dat je op zijn minst een fatsoenlijke beschrijving neerzet, voorbeelden levert, code voorbeelden neerzet en vervolgens eens laat zien wat je uiteindelijk precies wilt en al hebt gedaan/gevonden.

Dus ja, begin eerst maar met leren want anders gaat het sowieso niet lukken. We kunnen moeilijk letterlijk alles aan je geven omdat je iets specifieks wilt en nog eens niet alles verteld. Daarom krijg je dus ook basale informatie.
In kort wat je wilt doen, en daarbij staat de helft al hier:

Loopje om alle bestanden in te lezen - is al aanwezig
Dit 'printen' als in een form om vervolgens een selectie op te kunnen doen - ook al aanwezig
De form submitten met een POST - ook aanwezig (werkt misschien nog niet goed)
Je POST uitlezen waar je selected bestanden in staan - zelf doen
selected bestanden verwerken - zelf doen

Dit moet je zelf kunnen, en anders moet je met specifieke vragen komen waar je op vast loopt, en niet een vraag als "hoe krijg ik dan dat bestand?!".

Acties:
  • 0 Henk 'm!

  • xh3adshotx
  • Registratie: Oktober 2011
  • Laatst online: 28-02-2023
Anoniem: 449109 schreef op woensdag 04 juni 2014 @ 16:53:
De deadline is voor mijn opleiding. Het is een onderdeel van een groter script. De actie die wordt uitgevoerd bij submit is dan ook een voorbeeld
Ok, opleiding is ook een soort werk (at least, je maakt het als een ge-emuleerde werkomgeving voor een fictieve opdrachtgever neem ik aan).

Helemaal bij een opleiding, als je dit niet red moet je misschien aangeven dat je of meer tijd moet hebben, of meer uitleg. Zoals ik eerder al aangaf, zet error_reporting eens op ALL...

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
Heb net dit aan het script toegevoegd:

error_reporting(E_ALL);

Ik begrijp wat de functie doet. Maar ik zie niet iets gebeuren ofzo

Acties:
  • 0 Henk 'm!

Anoniem: 449109

Topicstarter
ahh maar mijn medestudent is er al achter denk ik

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:23

Creepy

Tactical Espionage Splatterer

Mooi. Succes er dan mee. Als je niet zelf aangeeft wat je zelf al geprobeerd hebt, je in tijdnood zit en het nog een schoolopdacht betreft ook, dan gaat dit topic dicht. Zeker voor een schoolopdracht verwachten we wat meer eigen inzet, en dat je dat ook toont in je posts. Je zou genoeg informatie moeten hebben gehad om de opdacht tot een goed eind te brengen. Inzet tonen in je posts laat je nu maar volledige achterwege omdat je snel een oplossing wilt scoren omdat je in tijdsnood zit. Zo werkt het hier niet.

[ Voor 12% gewijzigd door Creepy op 04-06-2014 20:22 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.