phpnoob Praktikant
25. marts 2016 - 21:31 Der er 17 kommentarer og
1 løsning

php kontakt form fejl

hej jeg har denne her kode hvor jeg får denne fejl
den kommer hvis man ikke har uploadet en fil med når man sender .. så har jeg bare sat den til 4 i erroren så den kunne passerede eller skriver den error uploda og kan slet ikke komme igennem... hvordan kan jeg fjerne denne fejl?+ på forhånd tak

Warning: fopen(): Filename cannot be empty in /customers/c/a/c/.nu/httpd.www/bestilform.php on line 55 Warning: fread() expects parameter 1 to be resource, boolean given in /customers/c/a/c//httpd.www/bestilform.php on line 56 Warning: fclose() expects parameter 1 to be resource, boolean given in /customers/c/a/c//httpd.www/bestilform.php on line 57
(div)
<html>
    <link href="assets/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    <link href="assets/css/bootstrap-datepicker.min.css" rel="stylesheet" type="text/css"/>
    <link href="assets/css/style.css" rel="stylesheet" type="text/css"/>


<div class="container">

    <form class="well form-horizontal" action="haandvaerker-tilbud.php" method="post" id="contact_form" enctype="multipart/form-data">
        <fieldset>

      <h2></h2>

    <?php
           
            if ($_POST['email']) {

                $from_email = 'info@info.dk'; //sender email
                $recipient_email = 'modtagerensmailmail@mail.dk'; //recipient email
                $subject = 'Henvendelse os'; //subject of email
                $message = 'Besked fra os.nu,' . "\n\n\n"; //message body
                $message .= 'Navn: ' . $_POST['name'] . "\n";
                $message .= 'E-mail: ' . $_POST['email'] . "\n";
                $message .= 'Telefon nr: ' . $_POST['isd'] . '-' . $_POST['phone'] . "\n";
                $message .= 'Dato: ' . $_POST['date'] . "\n";
                $message .= 'Vedrøre: ' . $_POST['state'] . "\n";
                $message .= 'Besked: ' . $_POST['comment'] . "\n\n\n\n";
                $message .= 'Denne E-mail er sendt fra fra os';

                $boundary = md5("sanwebe");
                //header
                $headers = "MIME-Version: 1.0\r\n";
                $headers .= "From:".$from_email."\r\n";
                $headers .= "Reply-To: ".$user_email."" . "\r\n";
                $headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";

                //plain text
                $body = "--$boundary\r\n";
                $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
                $body .= "Content-Transfer-Encoding: base64\r\n\r\n";
                $body .= chunk_split(base64_encode($message));

                if(isset($_FILES['my_file'])){
                    //get file details we need
                    $file_tmp_name    = $_FILES['my_file']['tmp_name'];
                    $file_name        = $_FILES['my_file']['name'];
                    $file_size        = $_FILES['my_file']['size'];
                    $file_type        = $_FILES['my_file']['type'];
                    $file_error      = $_FILES['my_file']['error'];

                    $user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);

                    if($file_error>4)
                    {
                        die('upload error');
                    }
                    //read from the uploaded file & base64_encode content for the mail
                    $handle = fopen($file_tmp_name, "r");
                    $content = fread($handle, $file_size);
                    fclose($handle);
                    $encoded_content = chunk_split(base64_encode($content));

                    //attachment
                    $body .= "--$boundary\r\n";
                    $body .="Content-Type: $file_type; name=\"$file_name\"\r\n";
                    $body .="Content-Disposition: attachment; filename=\"$file_name\"\r\n";
                    $body .="Content-Transfer-Encoding: base64\r\n";
                    $body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
                    $body .= $encoded_content;
                }

                $sentMail = @mail($recipient_email, $subject, $body, $headers);
                if ($sentMail) //output success or failure messages
                {
                    ?>
                    <div class="alert alert-success" role="alert">Success <i
                            class="glyphicon glyphicon-thumbs-up"></i> Tak for din henvendelse! Vi har modtaget din besked og vender tilbage hurtigst muligt.
                    </div>
                    <?php
                } else {
                    ?>
                    <div class="alert alert-error" role="alert">Der opstod en teknisk fejl. Vær venligt at skrive en e-mail eller ringe til os i stedet for.
                    </div>
                    <?php
                }
            }

            ?>


            <div class="form-group">
                <label class="col-md-4 control-label">Dit Navn:</label>

                <div class="col-md-4 inputGroupContainer">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                        <input name="name" placeholder="Dit Navn" class="form-control" type="text"
                              required="required">
                    </div>
                </div>
            </div>


            <!-- Text input-->
            <div class="form-group">
                <label class="col-md-4 control-label">Din E-mail:</label>

                <div class="col-md-4 inputGroupContainer">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span>
                        <input name="email" placeholder="Din E-mail" class="form-control" type="email"
                              required="required">
                    </div>
                </div>
            </div>


            <!-- Text input-->

            <div class="form-group">
                <label class="col-md-4 control-label">Dit telefon nr:</label>

                <div class="col-md-4 inputGroupContainer">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-earphone"></i></span>
                        <input name="isd" placeholder="(+45)" class="form-control" type="tel" required="required"
                              id="ph1">
                        <input name="phone" placeholder="555-1212" class="form-control ph" type="tel"
                              required="required" id="ph2">
                    </div>
                </div>
            </div>


            <!-- Text input-->

            <div class="form-group">
                <label class="col-md-4 control-label">Dato:</label>

                <div class="col-md-4 inputGroupContainer">
                    <div class="input-group date" data-provide="datepicker">
                        <div class="input-group-addon">
                            <span class="glyphicon glyphicon-calendar"></span>
                        </div>
                        <input type="text" class="form-control" required="required" name="date">

                    </div>
                </div>
            </div>

            <!-- Text input-->
            <div class="form-group">
                <label class="col-md-4 control-label">Vedhæft fil</label>

                <div class="col-md-4 inputGroupContainer" style="display:flex;">
                    <input id="uploadFile" class="form-control" placeholder="Choose File" disabled="disabled"/>

                    <div class="fileUpload btn btn-primary ">
                        <span class="rightbrowse">Hent fil</span>
                        <input id="uploadBtn" type="file" class="upload" name="my_file"/>
                    </div>
                </div>
            </div>


            <!-- Select Basic -->

            <div class="form-group">
                <label class="col-md-4 control-label">Vedrøre:</label>

                <div class="col-md-4 selectContainer">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-list"></i></span>
                        <select name="state" class="form-control selectpicker">
                            <option value="Håndværkertilbud">Håndværkertilbud</option>
                            <option value="Jobansøgning">Jobansøgning</option>
                            <option value="Generel forespørgsel">Generel forespørgsel</option>
                        </select>
                    </div>
                </div>
            </div>


            <!-- Text area -->

            <div class="form-group">
                <label class="col-md-4 control-label">Besked:</label>

                <div class="col-md-4 inputGroupContainer">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                        <textarea class="form-control" name="comment" placeholder=" " required="required"></textarea>
                    </div>
                </div>
            </div>


            <!-- Button -->
            <div class="form-group">
                <label class="col-md-4 control-label"></label>

                <div class="col-md-4">
                    <button type="submit" class="btn btn-primary">Send <span class="glyphicon glyphicon-send"></span>
                    </button>
                </div>
            </div>
<p>OBS!</i> Dine oplysninger videregives ikke til 3. part.</p>
        </fieldset>
    </form>

</div>
</div><!-- /.container -->
<script type="text/javascript" src="assets/js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="assets/js/placeholder.js"></script>

<script type="text/javascript" src="assets/js/bootstrap.min.js"></script>
<!--<script type="text/javascript" src="assets/js/form-validation.js"></script>-->

<script src="assets/js/bootstrap-datepicker.min.js" type="text/javascript"></script>

<script>
$(document).ready(function(){
    $('.date').datepicker({
        autoclose: true
    });
});
</script>
</html>
(/div)
jakobdo Ekspert
25. marts 2016 - 22:14 #1
Mit bud er det er disse linjer den fejler i:

$handle = fopen($file_tmp_name, "r");
$content = fread($handle, $file_size);

Og der må du så evt. tilføje ekstra tjek på de værdier, inden du forsøger at åbne og læse filen.
phpnoob Praktikant
25. marts 2016 - 22:53 #2
Altså jeg er godt klar over det er de 3 linjer der er galt med da det fremgår af error meddelelsen men ved du måske evt. hvad jeg skal prøve tilføje for at fjerne denne error.?? tak
jakobdo Ekspert
26. marts 2016 - 09:03 #3
Hvis du er klar over hvad koden gør, så skal du jo bare tjekke om værdien af filen der forsøges at åbnes er korrekt.
jakobdo Ekspert
26. marts 2016 - 09:25 #4
Du kunne overveje at rette denne linje:
if(isset($_FILES['my_file'])){
til:
if(is_uploaded_file($_FILES['my_file']['tmp_name'])){
phpnoob Praktikant
26. marts 2016 - 10:33 #5
Jakob det hjalp nu dukkede de to fejl koder så bare op istedet

den sidste kommer først når formen er sendt..

Ved du hvad jeg skal lave om her ... Så har du virklig reddet min dag :)

Notice: Undefined index: email in /customers/c/a/c//httpd.www/bestilform.php on line 18

Notice: Undefined variable: user_email in /customers/c/a/c//httpd.www/bestilform.php on line 36
jakobdo Ekspert
26. marts 2016 - 10:45 #6
Har du et felt der hedder: name="email" i din formular ?
phpnoob Praktikant
26. marts 2016 - 10:55 #7
i min formular ser sådan ud med de her

navn
email
telefon
data
vedhæftfil
vedre
besked


jeg har googlet det lidt og den skriver det er noget med jeg skal erklære variabel eller sådann ?? kan ikke helt se hvad problemet er har prøvet med isset til at starte med istedet for if bare men så lukker den helt ned ... mm??
phpnoob Praktikant
26. marts 2016 - 10:56 #8
men jeg har jo denne her

        <div class="form-group">
                <label class="col-md-4 control-label">Din E-mail:</label>

                <div class="col-md-4 inputGroupContainer">
                    <div class="input-group">
                        <span class="input-group-addon"><i class="glyphicon glyphicon-envelope"></i></span>
                        <input name="email" placeholder="Din E-mail" class="form-control" type="email"
                              required="required">
                    </div>


det jo noget med email i
phpnoob Praktikant
26. marts 2016 - 11:11 #9
har prøvet rette den til

$email = isset($_POST['email']) ? $_POST['email'] : '';.

det virker heller ikke
olsensweb.dk Ekspert
26. marts 2016 - 11:14 #10
>problemet er har prøvet med isset til at starte med istedet for if
hvor ??
hvordan ??


>Notice: Undefined index: email in /customers/c/a/c//httpd.www/bestilform.php on line 18
den forsøger at læse denne linje
if ($_POST['email']) {
før der er kommet en POST
løsning isset
if (isset($_POST['email']) ) {
phpnoob Praktikant
26. marts 2016 - 11:18 #11
den fjernede sig ihvertfald ronols men

Notice: Undefined variable: user_email in /customers/c/a/c/el-fix.nu/httpd.www/bestilform.php on line 36

er det stadig ved du hvorfor den siger dette her?
phpnoob Praktikant
26. marts 2016 - 11:20 #12
den skriver der skulle være noget galt med det her

              $headers .= "Reply-To: ".$user_email."" . "\r\n";

men jeg kan ike se hvad der skulle være _:S:S:
phpnoob Praktikant
26. marts 2016 - 11:22 #13
det noget med der ikke er noget variabel for user_variabel hvordan laver jeg så denne variabel. hvordan gør jeg det
olsensweb.dk Ekspert
26. marts 2016 - 11:34 #14
#13
du har ikke definered $user_email før du anvender den.

løsning flyt denne linje op
$user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
 
if (isset($_POST['email']) ) {
    $user_email = filter_var($_POST["email"], FILTER_SANITIZE_EMAIL);
    $from_email = $_POST['email']; //sender email
    $recipient_email = 'minmail'; //recipient email
    .........
phpnoob Praktikant
26. marts 2016 - 11:39 #15
tak ronols det virkede og dermed får jeg ingen fejlkoder mere i dette script og du var manden der hjalp mig igennem så derfor vinder du den her mange tak for din hjælp smider du et svar?
olsensweb.dk Ekspert
26. marts 2016 - 11:55 #16
det må være en deler med jakobdo, hans indput i #4 løste vel også en fejl !! jf #5


@jakobdo: smider du et svar også

og er svar fra mig
phpnoob Praktikant
26. marts 2016 - 19:25 #17
Ja glemte helt Jakob lig et svar sammen mes ronols
olsensweb.dk Ekspert
27. marts 2016 - 09:48 #18
skulle jakobdo ikke lige have tid til at svare ??

@jakobdo se http://www.eksperten.dk/spm/1009884
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

Opret Preview

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





Premium
Karnov rykker sine sidste servere i public cloud: "Vi gør det med åbne øjne, og er opmærksomme på ikke at bygge os for tæt på en enkel cloud"
Ledt an af CTO Jesper Kingo er Karnov Group i gang med en fuld overgang til en public cloud-baseret it-infrastruktur. "Vores Linux-servere bliver vi færdige med i det her kvartal, og derefter tager vi fat på vores traditionelle Windows-miljø. Det bliver på sigt en fuldstændig public cloud-baseret infrastruktur," siger Jesper Kingo.
Computerworld
Biden sender skjult besked til kode-folket: "Hvis du læser dette, har vi brug for din hjælp”
En stående invitation er blevet opdaget i kildekoden på Det Hvide Hus' hjemmeside. Men den er kun til de eksperter, der selv kan finde den.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
White paper
Sådan kan du arbejde effektivt uanset tid, sted og type af enhed
Hvad nu hvis dit arbejde, din information, dine processer og teknologien bag ved, var organiseret på en måde så det passede til din organisation – alt sammen guidet af en intelligent udgave af det digitale arbejdsrum? Det er visionen bag Atea og Citrix´s samarbejde med digital workspace – en smartere og mere effektiv måde at arbejde på. I dette whitetpaper kan du derfor læse om, hvordan du kan skabe et mere effektivt og brugervenligt arbejdsrum uanset tid, sted og enhed. En løsning der på en gang er både enkel og som sætter brugeren i centrum.