Avatar billede -zonic- Nybegynder
12. oktober 2010 - 14:03 Der er 4 kommentarer og
1 løsning

Mit fil script virker ikke efter serverskift?

Hej,

jeg har en form hvor jeg skal indlæse en csv fil lokalt, så den smider dataene i en database.. det virkede fint på min gamle webserver, men efter jeg har skiftet, melder den fejl..

nogen der kan se hvad der er galt?


<form action="csv.php?gem=ok" method="post" enctype="multipart/form-data">
Vælg fil:<br />
<input name="csvfil" type="file" size="20" />
<input name="Gem" type="submit" value="Gem" />
</form>



<?
if($gem == "ok") {
$csvfil2 = $csvfil;
require 'includes/conn.php'; // Forbindelse til databasen
$sql2 = 'TRUNCATE TABLE `members`';
mysql_query($sql2);
$handle = fopen($csvfil2, "r");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
  $data = array_pad($data,20,'');
  $newData = array_map("mysql_real_escape_string", $data);
  $input = "'" . implode("','", $newData) . "'";
  $sql = "INSERT INTO members (Gruppenummer,Gruppenavn,Gruppetype,Navn,Adresse,Adresse2,Postnr,Bynavn,Telefon,Mobil,Email,Born,Hverv,Personkey,Referencenummer,Licensnummer,Note,Medlemsstatus,Indmeldelsesdato,Udmeldelsesdato) VALUES ($input)";
  mysql_query($sql) or die(mysql_error());
 
}
fclose($handle);
echo "Data er indlæst";
}


jeg får følgende fejl:


Warning: fopen(medlemmer.csv) [function.fopen]: failed to open stream: No such file or directory in /public_html/csv.php on line 27



håber nogen kan hjælpe!
Avatar billede claes57 Ekspert
12. oktober 2010 - 14:28 #1
ret fra
<?
til
<?php
og det skal rettes alle steder i alle php-filer
Avatar billede w13 Novice
12. oktober 2010 - 14:28 #2
Hvad indeholder $csvfil? I følge din fejlbesked, er stien til filen forkert. (Hvis linje 27 vel at mærke er den linje, jeg tror.) Måske mangler du nogle mapper på serveren?
Avatar billede Slettet bruger
12. oktober 2010 - 15:09 #3
Når du uploader en fil igennem en form så gemmes filen midlertidigt i en bestemt mappe med et tilfældigt genereret navn.
PHP kan fortælle dig stien på den uploadede fil ved at bruge $_FILES["csvfil"]["tmp_name"]

Dernæst ser det ud til at din gamle server havde 'register_globals' sat til, hvilket de fleste folk - inkl. mig selv, vil råde dig til at slå fra. Men slår du det fra, så ved PHP ikke hvad $csvfil er, men du skal derimod bruger $_POST["csvfil"] osv.
Du kan læse mere om det det på følgende adresse: http://php.net/manual/en/security.globals.php

Efter jeg har skimtet din kode igennem, syntes jeg det er ret underligt at den kode nogensinde har virket - med mindre der altså er noget du ikke har vist os.

Om ikke andet håber jeg denne info kan hjælpe dig på rette kurs.
Avatar billede -zonic- Nybegynder
12. oktober 2010 - 15:16 #4
roxki, jeg havde slet ikke tænkt på at det var register_globals der var fejlen.. men det var det self.  :-)

smid et svar!
Avatar billede Slettet bruger
12. oktober 2010 - 16:14 #5
Jamen du får et svar her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester