7 berichten aan het bekijken - 1 tot 7 (van in totaal 7)
  • Q:
    Bijdrager
    Steff

    MAMP + Contactformulier

    Even een vraag over MAMP Pro 1.7 en een contact formulier wat gemaakt is met Rapidweaver 3.6, het zit namelijk zo dat als ik een website gemaakt heb met daarop een contact formulier ik de volgende error krijg op mijn scherm:

    [code:1:139d43c63b]Notice: Undefined variable: tmp_name in /Volumes/Netwerk RAID/WebServer/Clienten/Sites/movetoweb2.0.nl/Move to Web/page2/files/mailer.php on line 25

    Warning: Cannot modify header information – headers already sent by (output started at /Volumes/Netwerk RAID/WebServer/Clienten/Sites/movetoweb2.0.nl/Move to Web/page2/files/mailer.php:25) in /Volumes/Netwerk RAID/WebServer/Clienten/Sites/movetoweb2.0.nl/Move to Web/page2/files/mailer.php on line 58[/code:1:139d43c63b]

    Ik draai MAMP Pro 1.7 zoals ik al zei en heb nu alle Apache modules aangezet en hij draait PHP 5. Wat doe ik nu fout? Hierbij ook even het PHP script, misschien dat ik dan hier nog iets in moet veranderen?

    [code:1:139d43c63b]<?php
    session_start();
    $_SESSION[’form_element0’] = $_POST[’form_element0’];
    $_SESSION[’form_element1’] = $_POST[’form_element1’];
    $_SESSION[’form_element2’] = $_POST[’form_element2’];
    $_SESSION[’form_element3’] = $_POST[’form_element3’];
    $form_element0 = $_SESSION[’form_element0’];
    $form_element1 = preg_replace("/r/", "", $_SESSION[’form_element1’]);
    $form_element1 = preg_replace("/n/", "", $form_element1);
    $form_element2 = preg_replace("/r/", "", $_SESSION[’form_element2’]);
    $form_element2 = preg_replace("/n/", "", $form_element2);
    $form_element3 = $_SESSION[’form_element3’];
    if(!$_SESSION[’form_element0’] || !$_SESSION[’form_element1’] || !$_SESSION[’form_element2’] || !$_SESSION[’form_element3’]) {
    $_SESSION[’formMessage’] = " Please fill out all the required fields. <br />Velden gemarkeerd met * zijn verplicht.n";
    Header("Location:../page2.php");
    exit();
    } else {
    $email="[email protected]";

    if (!eregi ("^([a-z0-9_]|-|.)[email protected](([a-z0-9_]|-)+.)+[a-z]{2,4}$", $email)) {
    unset($email);
    }

    $from = stripslashes($form_element0)." <".stripslashes($form_element1).">";$subject= $form_element2;$message = "nUw naam: $form_element0nnUw e-mail: $form_element1nnOnderwerp: $form_element2nnBericht: $form_element3n";
    $headers="From: $fromn";if (file_exists($tmp_name)){
    if(is_uploaded_file($tmp_name)){
    $file = fopen($tmp_name,’rb’);
    $data = fread($file,filesize($tmp_name));
    fclose($file);
    $data = chunk_split(base64_encode($data));

    }

    $headers .= "MIME-Version: 1.0n" .
    "Content-Type: multipart/mixed;n";
    $headers .= " boundary="{$mime_boundary}"";

    $message = "This is a multi-part message in MIME format.nn" .
    "–{$mime_boundary}n" .
    "Content-Type: text/plain; charset="iso-8859-1"n" .
    "Content-Transfer-Encoding: 7bitnn" .
    $message . "nn";

    $message .= "–{$mime_boundary}n" .
    "Content-Type: {$type};n" .
    " name="{$name}"n" .
    "Content-Transfer-Encoding: base64nn" .
    $data . "nn" .
    "–{$mime_boundary}–n";
    }

    SESSION_UNREGISTER(’form_element0’);
    SESSION_UNREGISTER(’form_element1’);
    SESSION_UNREGISTER(’form_element2’);
    SESSION_UNREGISTER(’form_element3’);
    if (@mail($email, $subject, $message, $headers)) {$_SESSION["formMessage"] = " ".'<font face="Helvetica Neue Light" size="2" color="darkgray">Bedankt, uw e-mail is verzonden. Wij nemen z.s.m. contact met u op.</font>’."
    ";
    header("Location: ../page2.php");
    } else {
    $_SESSION["formMessage"] = "Im sorry, there seems to have been an error trying to send your email. Please try again.";
    header("Location: ../page2.php");
    }
    }
    ?>[/code:1:139d43c63b]

    Alvast erg veel bedankt heren.

    Bijdrager
    iJoost

    Het is eenvoudig genoeg (je kunt ze gewoon lezen hoor, die foutmeldingen).

    De eerste foutmelding zegt dat je een ongedefineerde variabele met de naam tmp_name probeert te gebruiken op regel 25. Dat mag niet. Eerst declareren en daarna gebruiken.

    De foutmelding zegt dat je op regel 58 nog iets aan de http-headers probeert te veranderen terwijl je al bent begonnen de inhoud van de pagina te schrijven. Dat lukt dan niet meer omdat die headers op dat moment al zijn verzonden. Dus zolang je nog van plan bent om iets aan de headers toe te voegen of te veranderen nog even geen tags beginnen te schrijven.

    Bijdrager
    Steff

    Kortom ik moet het zelf gaan aanpassen? Daar ben ik niet heel erg goed in, ik heb dit dit script via RapidWeaver gemaakt en daarom vond ik het al zo vreemd dat het niet wou werken op mijn webserver.

    Bijdrager
    iJoost

    Tja… In mijn beleving moet je in het algemeen weten wat je aan het doen bent, als je kwaliteit wilt.

    Rembrandt kon ook niet zeggen “nu heb ik verdomme een hoge lichten-penseel voor drie stuiver gekocht maar als ik ‘m domweg in de verf doop en tegen het doek duw krijg ik een lelijke vlek”. Daar stak iets meer inspanning achter.;-)

    Maar een troost, iets zinnigers dan leren kun je niet doen met je leven.

    Succes!

    Bijdrager
    Steff
    ”iJoost”

    Tja… In mijn beleving moet je in het algemeen weten wat je aan het doen bent, als je kwaliteit wilt.

    Het is niet zo dat ik er helemaal niets van weet. Maar zulke langen scripten gaan gewoon boven mijn pet. Ik ga het wel anders uitzoeken, ik vind het wel gewoon raar en jammer dat als je iets maakt in een programma en het dan niet werkt.

    Bijdrager
    iJoost

    Ik kan het me voorstellen. Maar de twee genoemde fouten zijn echt genoeg.;-)

    En zoals ik al zei de foutmeldingen zijn op zich helder en geven goed aan wat er aan de hand is. Begin wel met het oplossen van de eerste want de tweede zou wel eens “gevolgschade” kunnen zijn die verdwijnt als je de eerste verhelpt.

    Bijdrager
    Steff

    Ik ga er eens lekker aan zitten vanavond. Het niveau eens opkrikken, bedankt en ik post het hier.

7 berichten aan het bekijken - 1 tot 7 (van in totaal 7)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.