Afbeelding uploaden en verzenden

Status
Niet open voor verdere reacties.

lerrie

Gebruiker
Lid geworden
2 nov 2010
Berichten
300
Ik heb op deze pagina (http://www.oosterhoffmeubelen.nl/service.html) een service formulier staan waar mensen hun klachten in de form van een afbeelding in een email kunnen door sturen. Het uploaden werkt perfect alleen ik heb wat vragen over de email.

De email komt aan alleen hij mist wat informatie en de afzender (email) wordt niet weergegeven. kan iemand mij hier mee helpen?

PHP:
<?php 
$to = "info@voordeligslapen.nl";
$subject = "Service formulier";
$message = "Er is een nieuwe afbeelding geupload door " . $_POST["naam"] . ". Je kunt hem hier downloaden: http://www.oosterhoffmeubelen.nl/****". $_FILES["file"]["name"];
$headers = "from: " . $_POST["email adres"] . "";
 
mail($to,$subject,$message, $headers);
  
?>

Nu laat de email de $message goed zien met een link naar de afbeelding goed zien, alleen mist er wat informatie die wel ingevult is in het formulier. bijv het telefoonnummer en de vraag/klaar met id=telefoonnummer en id=vraag/klacht. Plus als ik op mijn email adres op beantwoorden druk staat er geen email adres die ingevult is in het formulier met id=email adres

Wie kan mij helpen?

Bvd,
Groet
 
Zet boven aan je pagina eens

echo "<pre>". print_r($_POST)."</pre>";

Dit laat je zien wat er verzonden is naar je pagina via de form.
 
Ik heb het email probleem al opgelost, ik wil nu alleen nog dat de vraag/klacht en het telefoonnummer in de mail verschijnen, hierbij het formulier

HTML:
<form action="upload.php" method="post" enctype="multipart/form-data" name="form2" id="form2">
        <table width="430" border="0" cellpadding="0">
          <tr>
            <td width="137"><label for="naam">Uw naam:</label></td>
            <td width="287"><input name="naam" type="text" class="contact" id="naam" /></td>
          </tr>
          <tr>
            <td><label for="email">Uw email adres:</label></td>
            <td><input name="email" type="text" class="contact" id="email" /></td>
          </tr>
          <tr>
            <td><label for="telefoonnummer">Uw telefoonnummer:</label></td>
            <td><input name="telefoonnummer" type="text" class="contact" id="telefoonnummer" /></td>
          </tr>
          <tr>
            <td>Upload uw afbeelding (max 200kb./0.2mb)</td>
            <td><label for="file"></label>
            <input name="file" type="file" class="contact" id="file" /></td>
          </tr>
          <tr>
            <td><label for="vraag/klacht">Uw vraag/klacht:</label></td>
            <td><textarea name="vraag/klacht" cols="45" rows="7" class="vraag" id="vraag/klacht"></textarea></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input name="verzend2" type="submit" class="verzendcontact" id="verzend2" value="Verzend" /></td>
          </tr>
        </table>
      </form>
 
Doe dat wat ik je in mijn vorige reply voorstelde. $_POST["email"] geeft je het emailadres in je bericht. Dus hoe zou je de andere gegevens tevoorschijn kunnen toveren?

Even logisch nadenken! ;)
 
Plus er is nog iets, als er een fout plaatje (te groot, foute type etc) wordt geupload dan wil ik dat er geen email wordt verstuurd hierbij even mijn totale scipt:

PHP:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/jpg"))
&& ($_FILES["file"]["size"] < 102400))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    header ("Location: /uploaderror.html");
    }
  else
    {
   header ("Location: /upload.html");
    if (file_exists("******/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "****" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  header ("Location: /uploaderror.html");
  }
    
  
// mailen naar e-mailadres:
$to = "info@voordeligslapen.nl";
$subject = "Service formulier";
$message = "Er is een nieuwe afbeelding geupload door " . $_POST["naam"] . ". Je kunt hem hier downloaden: http://www.oosterhoffmeubelen.nl/***". $_FILES["file"]["name"];
$headers = "From: " . $_POST["naam"] . " <" . $_POST["email"] . ">";
 
mail($to,$subject,$message, $headers);
  
?>
 
Leuk dat je het script post, maar ik ga het niet voor je scripten.

TIP
Zet dit boven in je script!
echo "<pre>". print_r($_FILES)."</pre>";

Je zult dan wel begrijpen wat je moet doen.
 
ik zal een kijken, nog een vraag ik heb nu mijn "email gedeelte" klaar. Alleen ziet het er niet uit. Hoe kan ik er voor zorgen dat er ruimte tussen de info zit:

PHP:
// mailen naar e-mailadres:
$to = "info@voordeligslapen.nl";
$subject = "Service formulier";
$message = "Er is een klacht/vraag binnen gekomen van" . $_POST["naam"] . ". Telefoonnummer:" . $_POST["telefoonnummer"] . ".  De vraag/klacht:" . $_POST["vraag/klacht"] . "Download de afbeedling hier: http://www.oosterhoffmeubelen.nl/upload/". $_FILES["file"]["name"];
$headers = "From: " . $_POST["naam"] . " <" . $_POST["email"] . ">";
 
mail($to,$subject,$message, $headers);
  
?>

Nu ziet de mail er zo uit:
Er is een klacht/vraag binnen gekomen van lerrie. Telefoonnummer1234567. De vraag/klacht: testjlsgfsdf Download de afbeedling hier:http://www.oosterhoffmeubelen.nl/****

En ik wil:
Er is een klacht/vraag binnen gekomen van lerrie.
Telefoonnummer: 1234567.
De vraag/klacht: testjlsgfsdf
Download de afbeelding hier:http://www.oosterhoffmeubelen.nl/****

bvd
 
Laatst bewerkt:
Bedankt voor de hulp hij werkt helemaal zoals ik wil!

PHP:
<?php

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/jpg"))
&& ($_FILES["file"]["size"] < 102400))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    header ("Location: /uploaderror.html");
    }
  else
    {
		
 header ("Location: /upload.html");
  // Dit kan je vervolgens mailen naar je eigen e-mailadres:
$to = "info@voordeligslapen.nl";
$subject = "Service formulier";
$message = "Er is een klacht/vraag binnen gekomen van " . $_POST["naam"] ."\r\n\r\n".
"Email adres: " . $_POST["email"] ."\r\n".
"Telefoonnummer: " . $_POST["telefoonnummer"] ."\r\n".
"De vraag/klacht: " . $_POST["vraag/klacht"] ."\r\n".
"Download de afbeelding hier: http://www.oosterhoffmeubelen.nl/****". $_FILES["file"]["name"];
$headers = "From: " . $_POST["naam"] . " <" . $_POST["email"] . ">";
 
mail($to,$subject,$message, $headers);
    if (file_exists("*****" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "*****" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  header ("Location: /uploaderror.html");
  }

Mensen kunnen nu hun klacht in de vorm van een plaatje door sturen. Welk kb/mb limiet moet ik erop zetten? Ik weet niet hoe groot fotos qua kbs zijn!?
 
Hoe groot je het limit moet zetten, dat ligt eraan wel formaat je wilt hebben.
100x100px is natuurlijk veel minder dan 1000x1000px en daarbij is ook de resolutie van belang.
En wat ook nog van belang is, hoe veel capaciteit heeft de server en datalimite heb je.

resume:
het is een beetje lastig om je een tip te geven wat je als limit moet instellen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan