Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 00:31 Der er 25 kommentarer og
1 løsning

fejl på ekstern server men ikke local

hej eksperter :)

jeg har denne fejl meddelse og jeg kan ikke forstå hvorfor jeg får den! :(
når jeg køre scriptet lokalt på min egen server opstår der ingen problemmer men når jeg oploader det til min udbyder så kommer denne fejl:

(script skulle gerne udsende nogle mails og oprette en mappe plus en index.html med noget indhold)

Warning: mkdir(arkiv/1066514980): Permission denied in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 368

Warning: touch(): Unable to create file arkiv/1066514980/index.html because No such file or directory in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 369

Warning: fopen(arkiv/1066514980/index.html): failed to open stream: No such file or directory in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 379

Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 380

Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 381

Warning: move_uploaded_file(arkiv/1066514980/back.jpg): failed to open stream: No such file or directory in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 393

Warning: move_uploaded_file(): Unable to move '/tmp/phpsbZHZ6' to 'arkiv/1066514980/back.jpg' in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 393

Warning: fopen(): Unable to access arkiv/1066514980/back.jpg in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 400

Warning: fopen(arkiv/1066514980/back.jpg): failed to open stream: No such file or directory in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 400

Warning: filesize(): Stat failed for arkiv/1066514980/back.jpg (errno=2 - No such file or directory) in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 400

Warning: fread(): supplied argument is not a valid stream resource in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 400


serveren som giver fejl kører PHPv 4.3.2
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 00:33 #1
dette kode opretter mappe og indsætter fil:

$folder = $php_time;
mkdir("arkiv/" . $folder);
touch("arkiv/" . $folder . "/index.html");
               
if ($_FILES['fil']['name'] != "") {
    $html = $htmlindhold . "<br><br>vedhæftet fil, <a href='" . $domain . "/arkiv/" . $folder . "/" . $_FILES['fil']['name'] . "'>" . $domain . "/arkiv/" . $folder . "/" . $_FILES['fil']['name'] . "</a>";
}
else {
    $html = $htmlindhold;   
}

//skriv indhold til fil
$fp = fopen("arkiv/" . $folder . "/index.html","w");
fputs($fp,$html);
fclose($fp);
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 00:34 #2
men som sagt det virker på min lokale server og det jeg ikke kan forstå :(
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 00:35 #3
Du har ikke de samme rettigheder op den server. Kan du sætte chmod 777 på arkiv-mappen?
Og så også på den nye mappe du opretter.
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 00:38 #4
hvordan sætter jeg chmod til 777 på den nyoprettede mappe?
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 00:49 #5
mkdir("arkiv/" . $folder,777); sådan?
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 00:50 #6
Faktisk:    mkdir("arkiv/" . $folder,0777);
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 00:52 #7
okay mange tak.. læg et svar!
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 00:57 #8
nu er det blevet rettet til 777 men den siger stadig denne fejl:

Warning: touch(): SAFE MODE Restriction in effect. The script whose uid is 10013 is not allowed to access /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/arkiv/1066517752 owned by uid 2526 in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 374

Warning: fopen(): SAFE MODE Restriction in effect. The script whose uid is 10013 is not allowed to access /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/arkiv/1066517752 owned by uid 2526 in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 384

Warning: fopen(arkiv/1066517752/index.html): failed to open stream: No such file or directory in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 384

Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 385

Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/psa/home/vhosts/galeriemoderne.dk/httpdocs/nb/nyhedsbrev.php on line 386
Avatar billede erikjacobsen Ekspert
19. oktober 2003 - 08:42 #9
Det kan være problemer med safe mode. Jeg gider ikke selv sætte en
server op med safe mode, og har vist ikke lige adgang til en.

Men er 1066517752 en mappe du har oprettet med ftp eller med php. Med
ftp er det din bruger, der ejer den. Med php er det brugeren, der kører
webserveren (måske "apache") der ejer den. Det kan være, det ikke kan
lade sig gøre ;(

Men vent på de rigtige eksperter vågner inden du giver op ;)
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 12:12 #10
ja 1066517752 er en mappe, og den oprettes vha af php og derfor er det ret sikkert apache der ejer den :( men kan da se om der er nogen der har nogen idéer indtil nu er functionen deaktiveret så resten af siden fungere...

men mailen bliver heller ikke sendt rigtigt ud fra hotellet :(

en almindelig mail (uden HTML) er kommet til at se sådan her ud:

Content-type: text/plain; charset=iso-8859-1
From: Galerie Moderne <moderne@email.dk>



VELKOMMEN kære nyhedslæser

Du sidder her med nyhedsbrevet, som vi vil udsende ca. 4 gange årligt.

Nyhedsbrevet denne gang indeholder ...








og en HTML mail er kommet til at se sådan her ud:

Content-type: text/html; charset=iso-8859-1
From: Galerie Moderne <moderne@email.dk>



<html>
<head>
<title>test uden fil</title>
</head>
<body>

VELKOMMEN kære nyhedslæser<br>
<br>
Du sidder her med nyhedsbrevet, som vi vil udsende ca. 4 gange årligt.<br>
<br>
Nyhedsbrevet denne gang indeholder ..
</body>
</html>




mail udsendelse virker også fint på min egen server :(
Avatar billede danisher Nybegynder
19. oktober 2003 - 14:44 #11
Det er nok højest sandsynligt en fejl i din sti

mkdir("arkiv/" . $folder,0777);

kan godt give problemer:
Hvor hoster du henne?

Prøv:
mkdir($_SERVER["DOCUMENT_ROOT"] . "/stitilarkiv/" . $folder,0777);
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 14:48 #12
som sagt så er det ikek det der er problemmet lige nu, det er værrere med mail funktionen da det er et nyehdsbrev, så skal den jo gerne kunne maile!

det hostes hos havannahosting.dk
Avatar billede billen Nybegynder
19. oktober 2003 - 15:52 #13
du kalder bare mail()?

har du prøvet at tjekke returværdien på mail()?

mail("digselv@mail.dk","test","tester") or die( "ØV" );
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 15:55 #14
vil der komme en returværdi når mailen godt nok bliver sendt, men den ser bare ikke rigtig ud?
Avatar billede billen Nybegynder
19. oktober 2003 - 15:59 #15
nåå... ok... har du prøvet htmlmimemail? Den laver i hvert fald en masse kedeligt mail arbejde for dig:

http://phpclasses.mkdata.net/browse.html/package/32.html
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 16:05 #16
øhhh kan ikke lige se hvad det er??

jeg har koden som sender mailen, men når den er kommet på mit hotel så virker den ikke, selvom den virker når jeg er lokalt på min egen server!
Avatar billede riversen Nybegynder
19. oktober 2003 - 16:28 #17
hvis dit mailhotel ligger på en unix server fungerer mail-funktionen ikke.

Prøv med følgende kode:
http://www.riversen.dk/mail.inc.phps (venligst udlånt af dae_pg)
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 16:48 #18
se jeg sagde da vist nok at du havde forstand på PHP :D

og ja det kan godt passe den ligger på et unix hotel... er det muligt at tilpasse det kode ind i det jeg har i forvejen?
Avatar billede riversen Nybegynder
19. oktober 2003 - 16:54 #19
elskermad: tror ikke det er nødvendigt at tilpasse det...evt. kun lige der, hvor der står mailrobot@riversen.dk og vip.cybercity.dk, men det er ikke strengt nødvendigt.

Det du skal gøre er at lægge filen et sted på dit webhotel... fx /php/mail.inc.php

På den side du skal benytte mail-funktionen skriver du så include( "sti til mail.inc.php" );

herefter skriver du

connectMail( "gyldig smtp-server" ); <-- snak evt. med din udbyder. Det står sikkert på deres hjemmeside.
sendMail( "modtager@domain.dk", "Teksten", "Emnet", "dig@elskermad.dk" );
closeMail();
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 17:01 #20
hvad så hvis det skal være HTML og vedhæftet fil osv?
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 17:04 #21
det jeg sender mailen med nu hvordan får jeg passet det ind med dit?? hæver gerne til 200points hvis det skal til...

<?
$antal = 0;
                   
$subject = $_POST[emne];
$tekst = $_POST[tekst];
           
$fasttop = "
VELKOMMEN kære nyhedslæser<br>
<br>
Du sidder her med nyhedsbrevet, som vi vil udsende ca. 4 gange årligt.<br>
<br>
Nyhedsbrevet denne gang indeholder ...<br>
";
                   
$fastbund = "
Du kan til en hver tid besøge os på www.domain.dk,<br>
<br>
Vi siger tak for din interesse og på genhør.<br>
";
   
$textindhold = $tekst;
$textindhold = $fasttop . "\n\n" . $textindhold;
$textindhold .= "\n\n" . $fastbund;
$textindhold = str_replace("<br>","", $textindhold);

$htmlindhold = "
<html>
<head>
<title>$subject</title>
</head>
<body>
    $fasttop<p><hr><br>
    $tekst<p><hr><br>
    $fastbund
</body>
</html>
";
                                                                               
//sæt mine-type
if ($_FILES['fil']['type']) {
    $mimeType = $_FILES['filen']['type'];
}
else {
    $mimeType =  "application/unknown";
}
                   
if ($_FILES['fil']['name'] != "") {
    $vedfil = fread(fopen($_FILES['fil']['tmp_name'], "r"), filesize($_FILES['fil']['tmp_name']));
    $vedfil = base64_encode($vedfil);
    $vedfil = chunk_split($vedfil);
}
                   
//hent mails ud fra database og send
$foresp = mysql_query("SELECT * FROM nyhedsbrev WHERE status != 'afmeldt'") or die(mysql_error());
while($row = mysql_fetch_array($foresp)) {
$id = $row["id"];
$mail = $row["mail"];
$fornavn = $row["fornavn"];
$efternavn = $row["efternavn"];
$type = $row["type"];
                                       
//variabler efter HTML eller text mails
if ($type == "HTML") {
$afmeld = "<p>Skulle du ønske at framelde dig nyhedsordningen, trykker du blot på linket herunder.<br><a href='". $domain . "/nyhedsbrev.php?mode=afmeld&id=$id'>afmeld</a>";
$send = $htmlindhold;
$typen = "HTML";
}
else {
$afmeld = "\nSkulle du ønske at framelde dig nyhedsordningen, trykker du blot på linket herunder.\n" . $domain . "/nyhedsbrev.php?mode=afmeld&id=" . $id;   
$send = $textindhold;
$typen = "plain";
}
               
$to = $fornavn . " " . $efternavn . "<" . $mail . ">";

if ($_FILES['fil']['name'] != "") { //send med vedhæftet fil
    $boundary = uniqid("");

    $body  = "\n--$boundary\n";
    $body .= "Content-type: text/" . $typen . "; charset=iso-8859-1\n";
    $body .= "Content-transfer-encoding: 8bit\n\n";
                           
    $body .= $send . $afmeld . "\n\n";

    $body .= "--$boundary\n";
                               
    $body .= "Content-type: $mimeType; name=".$_FILES['fil']['name']."\n";
    $body .= "Content-disposition: attachment; filename=".$_FILES['fil']['name']."\n";
                               
    $body .= "Content-transfer-encoding: base64\n\n";
                               
    $body .= $vedfil."\n\n";
                               
    $body .= "--$boundary--";
                               
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "From: ".$franavn."<".$framail.">\n";
    $headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"";
                               
    if (@mail($to, $subject, $body, $headers)) {}
    else {
        echo"
        mail til #$id blev ikke udsendt!<br>
        ";
    }                           
}
else {  // send uden vedhæftet fil
    $headers  = "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/" . $typen . "; charset=iso-8859-1\r\n";
    $headers .= "From: $franavn <".$framail.">\r\n";
                               
    $send = $send . $afmeld;
                           
    if (@mail($to, $subject, $send, $headers)) {}
    else {
        echo"
        mail til #$id blev ikke udsendt!<br>
        ";
    }
}
$antal = $antal+1;
}
                   
echo"
<br>sendt $antal mails<p>
<a href='?mode=admin&sprog=$sprog'>tilbage til admin-modul</a><br><br>
";

?>
Avatar billede riversen Nybegynder
19. oktober 2003 - 17:11 #22
jeg har ikke kigget nærmere på smtp-protokollen og hvordan mails er bygget op, da jeg ikke selv har haft behov for at sende filer og decideret html mail. Men du kan jo selv prøve at kigge i rfc'en (http://www.rfc-editor.org).
Avatar billede riversen Nybegynder
19. oktober 2003 - 17:16 #23
mener der findes spørgsmål om det på eksperten...jeg ville blive overrasket hvis der ikke gør :-(
Avatar billede riversen Nybegynder
19. oktober 2003 - 17:16 #24
og det skulle være en :-)
Avatar billede elskermad.dk Nybegynder
19. oktober 2003 - 17:17 #25
læg lige et svar riversen for din hjælp!
Avatar billede riversen Nybegynder
19. oktober 2003 - 17:25 #26
ok
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