Thread subject: pHpFusion Nederlands (BE|NL) » Ondersteuning, Themas, Infusies, Modificaties en Installatie :: Formulier

Posted by T013S on 09 december 2008, 17:06
#1

Hoi, Ik wil graag een formulier op m'n site plaatsen. Via phphulp.nl kwam ik op een code:

Code


// geef e-mail adres op van ontvanger 
$mail_ontv = "mijn@email.com";

// is niet 100% !!!
function checkmail($mail)
{
    $email_host = explode("@", $mail);
    $email_host = $email_host['1'];
    $email_resolved = gethostbyname($email_host);

    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        $valid = 1;

    return $valid;
}

// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
    if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))   
    {
        echo "Je bent je naam, e-mail adres, onderwerp of bericht vergeten in te vullen. Ook kan het zijn ";
        echo "dat je een verkeerd e-mail adres hebt ingevuld.

";
    }
     
    // form + tabel
    echo "

";
    echo "";
     
    // naam
    echo "";
    echo "";
     
    // space
    echo "";
     
    // mail
    echo "";
    echo "";
     
    // space
    echo "";
     
    // mail
    echo "";
    echo "";
     
    // space
    echo "";
     
    // mail
    echo "";
    echo "";
     
    // space
    echo "";
     
    // button
    echo "";
    echo "";
     
    // sluit form + tabel
    echo "";
    echo "
Naam:
 
E-mail adres:
 
Inzending:
 
Bericht:
 
 
";
}
// versturen naar
else
{     
    // set datum
    $datum = date("d.m.Y H:i");
     
    // set ip
    $ip = $_SERVER['REMOTE_ADDR'];
     
    $inhoud_mail = "===================================================\n";
    $inhoud_mail .= "Ingevulde contact formulier\n";
    $inhoud_mail .= "===================================================\n\n";
   
    $inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";

    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
    $inhoud_mail .= "Bericht:\n";
    $inhoud_mail .= $_POST['msggs'] . "\n\n";
     
    $inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n";
     
    $inhoud_mail .= "===================================================\n\n";
   
    // --------------------
    // spambot protectie
    // ------
    // van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
    // ------
   
    $headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
   
    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n
    $headers = str_replace("\r", "", $headers); // Verwijder \r
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
   
    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
     
    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);
     
    echo "

Je e-mail is verstuurd

";
   
    echo "

Bedankt voor de inzendig.";
    echo "De inzending wordt eerst gecontroleerd voordat de inzending op de website komt.

";
     
}
?>

Echter doet deze het niet? zie:http://sartob1.nl/files/viewpage.php?page_id=79

Wie kan mij helpen? Een andere formulier/code mag natuurlijk ook!

b.v.d.

Edited by T013S on 09 december 2008, 17:07

Posted by Wanabo on 09 december 2008, 17:12
#2

Haal de php tags weg en het werkt zie voorbeeld.

Quote

openside;

// geef e-mail adres op van ontvanger
$mail_ontv = "mijn@email.com";

// is niet 100% !!!
function checkmail($mail)
{
$email_host = explode("@", $mail);
$email_host = $email_host['1'];
$email_resolved = gethostbyname($email_host);

if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
$valid = 1;

return $valid;
}

// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
echo "Je bent je naam, e-mail adres, onderwerp of bericht vergeten in te vullen. Ook kan het zijn ";
echo "dat je een verkeerd e-mail adres hebt ingevuld.

";
}

// form + tabel
echo "

";
echo "";

// naam
echo "";
echo "";

// space
echo "";

// mail
echo "";
echo "";

// space
echo "";

// mail
echo "";
echo "";

// space
echo "";

// mail
echo "";
echo "";

// space
echo "";

// button
echo "";
echo "";

// sluit form + tabel
echo "";
echo "
Naam:
 
E-mail adres:
 
Inzending:
 
Bericht:
 
 
";
}
// versturen naar
else
{
// set datum
$datum = date("d.m.Y H:i");

// set ip
$ip = $_SERVER['REMOTE_ADDR'];

$inhoud_mail = "===================================================\n";
$inhoud_mail .= "Ingevulde contact formulier\n";
$inhoud_mail .= "===================================================\n\n";

$inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";

$inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
$inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
$inhoud_mail .= "Bericht:\n";
$inhoud_mail .= $_POST['msggs'] . "\n\n";

$inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n";

$inhoud_mail .= "===================================================\n\n";

// --------------------
// spambot protectie
// ------
// van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
// ------

$headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";

$headers = stripslashes($headers);
$headers = str_replace("\n", "", $headers); // Verwijder \n
$headers = str_replace("\r", "", $headers); // Verwijder \r
$headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes

$_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
$_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
$_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes

mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);

echo "

Je e-mail is verstuurd

";

echo "

Bedankt voor de inzendig.";
echo "De inzending wordt eerst gecontroleerd voordat de inzending op de website komt.

";

}


closeside;

Edited by Wanabo on 09 december 2008, 17:12

Posted by Steff on 09 december 2008, 17:19
#3

Waarvoor wil je het formulier gebruiken , ik veronderstel dat er nog andere mogelijkheiden zijn.

Posted by T013S on 09 december 2008, 17:30
#4

Quote

Jeepers1993 schreef:
Waarvoor wil je het formulier gebruiken , ik veronderstel dat er nog andere mogelijkheiden zijn.


Zie: http://sartob1.nl/fotoenznverhaal.htm

Dat is nog de oude site zeg maar. Ik wil nu php.

Posted by T013S on 09 december 2008, 17:32
#5

Quote

Wanabo schreef:
Haal de php tags weg en het werkt zie voorbeeld.

Quote

openside;

Code

// geef e-mail adres op van ontvanger
$mail_ontv = "mijn@email.com";

// is niet 100% !!!
function checkmail($mail)
{
    $email_host = explode("@", $mail);
    $email_host = $email_host['1'];
    $email_resolved = gethostbyname($email_host);

    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
        $valid = 1;

    return $valid;
}

// als er niet op submit is gedrukt, of als er wel op is gedrukt maar niet alles ingevoerd is
if (!$_POST['submit'] || $_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))
{
    if ($_POST['submit'] && (!$_POST['naam'] || !$_POST['mail'] || !checkmail($_POST['mail']) || !$_POST['msggs'] || !$_POST['onderwerp']))   
    {
        echo "Je bent je naam, e-mail adres, onderwerp of bericht vergeten in te vullen. Ook kan het zijn ";
        echo "dat je een verkeerd e-mail adres hebt ingevuld.

";
    }
     
    // form + tabel
    echo "

";
    echo "";
     
    // naam
    echo "";
    echo "";
     
    // space
    echo "";
     
    // mail
    echo "";
    echo "";
     
    // space
    echo "";
     
    // mail
    echo "";
    echo "";
     
    // space
    echo "";
     
    // mail
    echo "";
    echo "";
     
    // space
    echo "";
     
    // button
    echo "";
    echo "";
     
    // sluit form + tabel
    echo "";
    echo "
Naam:
 
E-mail adres:
 
Inzending:
 
Bericht:
 
 
";
}
// versturen naar
else
{     
    // set datum
    $datum = date("d.m.Y H:i");
     
    // set ip
    $ip = $_SERVER['REMOTE_ADDR'];
     
    $inhoud_mail = "===================================================\n";
    $inhoud_mail .= "Ingevulde contact formulier\n";
    $inhoud_mail .= "===================================================\n\n";
   
    $inhoud_mail .= $_SERVER['SCRIPT_URI'] . "\n\n";

    $inhoud_mail .= "Naam: " . $_POST['naam'] . "\n";
    $inhoud_mail .= "E-mail adres: " . $_POST['mail'] . "\n";
    $inhoud_mail .= "Bericht:\n";
    $inhoud_mail .= $_POST['msggs'] . "\n\n";
     
    $inhoud_mail .= "Verstuurd op " . $datum . " via het ip " . $ip . "\n\n";
     
    $inhoud_mail .= "===================================================\n\n";
   
    // --------------------
    // spambot protectie
    // ------
    // van de tutorial: http://www.phphulp.nl/php/tutorials/10/340/
    // ------
   
    $headers = "From: " . $_POST['naam'] . " <" . $_POST['mail'] . ">";
   
    $headers = stripslashes($headers);
    $headers = str_replace("\n", "", $headers); // Verwijder \n
    $headers = str_replace("\r", "", $headers); // Verwijder \r
    $headers = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $headers)); // Slashes van quotes
   
    $_POST['onderwerp'] = str_replace("\n", "", $_POST['onderwerp']); // Verwijder \n
    $_POST['onderwerp'] = str_replace("\r", "", $_POST['onderwerp']); // Verwijder \r
    $_POST['onderwerp'] = str_replace("\"", "\\\"", str_replace("\\", "\\\\", $_POST['onderwerp'])); // Slashes van quotes
     
    mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);
     
    echo "

Je e-mail is verstuurd

";
   
    echo "

Bedankt voor de inzendig.";
    echo "De inzending wordt eerst gecontroleerd voordat de inzending op de website komt.

";
     
}


closeside;


heb ik gedaan en nu krijg ik dit: http://sartob1.nl/files/viewpage.php?page_id=79

Posted by Steff on 09 december 2008, 18:41
#6

Ik weet niet waarom hij het zij, Wannabo (niet goed wakker?) maar in een eigen pagina heb je de tags op begin & einde wel nodig in php. De code die hij schreef is voor een nieuwe php pagina met de nodige includes bovenaan. Maar nu terzake , er bestaat nogaltijd iets zoals het contact formulier, mischien kan je dat gebruiken ? (je moet wel sendmail en/of de nodige smtp login in de settings aanpassen)

Edited by Steff on 09 december 2008, 18:43

Posted by T013S on 09 december 2008, 18:51
#7

Quote

Jeepers1993 schreef:
Ik weet niet waarom hij het zij, Wannabo (niet goed wakker?) maar in een eigen pagina heb je de tags op begin & einde wel nodig in php. De code die hij schreef is voor een nieuwe php pagina met de nodige includes bovenaan. Maar nu terzake , er bestaat nogaltijd iets zoals het contact formulier, mischien kan je dat gebruiken ? (je moet wel sendmail en/of de nodige smtp login in de settings aanpassen)


uhm, maar zo'n formulier bestaat dus niet? Zo'n contactformulier waar vind ik die?

Posted by Steff on 09 december 2008, 18:52
#8

Quote

Jorn schreef:

Quote

Jeepers1993 schreef:
Ik weet niet waarom hij het zij, Wannabo (niet goed wakker?) maar in een eigen pagina heb je de tags op begin & einde wel nodig in php. De code die hij schreef is voor een nieuwe php pagina met de nodige includes bovenaan. Maar nu terzake , er bestaat nogaltijd iets zoals het contact formulier, mischien kan je dat gebruiken ? (je moet wel sendmail en/of de nodige smtp login in de settings aanpassen)


uhm, maar zo'n formulier bestaat dus niet? Zo'n contactformulier waar vind ik die?

Bij de standaard php-fusion installatie staat die al in je navigatie menu , de link is contact.php
Pfft

--- Edit

In Jouw geval dus:
http://sartob1.nl/files/contact.php

Edited by Steff on 09 december 2008, 19:34

Posted by Jelle on 09 december 2008, 20:16
#9

En anders is er altijd nog het zogenaamde custom comtact formulier. http://www.phpfusion-mods.com/forum/v...file=35536

Misschien kan je hier wat mee.

Posted by Wanabo on 09 december 2008, 20:58
#10

Quote

Jeepers1993 schreef:
Ik weet niet waarom hij het zij, Wannabo (niet goed wakker?) maar in een eigen pagina heb je de tags op begin & einde wel nodig in php. De code die hij schreef is voor een nieuwe php pagina met de nodige includes bovenaan. Maar nu terzake , er bestaat nogaltijd iets zoals het contact formulier, mischien kan je dat gebruiken ? (je moet wel sendmail en/of de nodige smtp login in de settings aanpassen)


Ah een kwestie van aannames! Jij gaat uit van een eigen pagina, ik ging uit van een paneel. Ik heb de eerste post nog eens nagelezen en daar staat niets expliciet over in.

De php tags die in het voorbeeld stonden zijn zeker niet via een eigen pagina gegeneerd, want dan zou er hebben gestaan
Daaruit maak ik op dat het om een stuk code ging elders van internet geplukt. (edit inderdaad van phphulp.nl)

Mijn werkende voorbeeld werkt in een paneel, dat verklaart ook de openside en closeside opdrachten.

Edited by Wanabo on 09 december 2008, 21:01

Posted by T013S on 09 december 2008, 21:31
#11

Quote

Jeepers1993 schreef:

Quote

Jorn schreef:

Quote

Jeepers1993 schreef:
Ik weet niet waarom hij het zij, Wannabo (niet goed wakker?) maar in een eigen pagina heb je de tags op begin & einde wel nodig in php. De code die hij schreef is voor een nieuwe php pagina met de nodige includes bovenaan. Maar nu terzake , er bestaat nogaltijd iets zoals het contact formulier, mischien kan je dat gebruiken ? (je moet wel sendmail en/of de nodige smtp login in de settings aanpassen)


uhm, maar zo'n formulier bestaat dus niet? Zo'n contactformulier waar vind ik die?

Bij de standaard php-fusion installatie staat die al in je navigatie menu , de link is contact.php
Pfft

--- Edit

In Jouw geval dus:
http://sartob1.nl/files/contact.php


Oke, ik denk dat dit het handigste is. Maar waar zou ik dan een aantal dingen kunnen veranderen. Bijvoorbeeld ipv bericht-inzending? En waar kan ik dan mijn email adres invoeren etc.

Posted by Steff on 10 december 2008, 12:25
#12

Quote

Jorn schreef:

Quote

Jeepers1993 schreef:

Quote

Jorn schreef:

Quote

Jeepers1993 schreef:
Ik weet niet waarom hij het zij, Wannabo (niet goed wakker?) maar in een eigen pagina heb je de tags op begin & einde wel nodig in php. De code die hij schreef is voor een nieuwe php pagina met de nodige includes bovenaan. Maar nu terzake , er bestaat nogaltijd iets zoals het contact formulier, mischien kan je dat gebruiken ? (je moet wel sendmail en/of de nodige smtp login in de settings aanpassen)


uhm, maar zo'n formulier bestaat dus niet? Zo'n contactformulier waar vind ik die?

Bij de standaard php-fusion installatie staat die al in je navigatie menu , de link is contact.php
Pfft

--- Edit

In Jouw geval dus:
http://sartob1.nl/files/contact.php


Oke, ik denk dat dit het handigste is. Maar waar zou ik dan een aantal dingen kunnen veranderen. Bijvoorbeeld ipv bericht-inzending? En waar kan ik dan mijn email adres invoeren etc.

Je email instellingen kan je veranderen in de Administratie -> Systeem
De tekst die op je contact pagina staan kan je veranderen in
locale/dutch/contact.php
of als je engels hebt
locale/english/contact.php

uploaden en hij is aangepast.

Posted by T013S on 12 december 2008, 21:47
#13

Op advies van iemand zet ik er even opnieuw in wat ik wil en bedoel, probeer het op een zo duidelijke mogelijke manier te vertellen:


Op mij huidige website (HTML) heb ik een rubriek 'Foto en z'n verhaal' zie: http://www.sartob1.nl/fotoenznverhaal...erhaal.htm. Het formulier heb ik vanaf http://www.html-site.nl/formulier1.php gehaald.

Nu snap ik dat het onmogelijk is het formulier voor HTML op PHP site te zetten. Is er misschien iemand die een code weet voor een formulier de de inzendingen eerst naar een mail adres stuurt en dus niet rechtstreeks erop gaat.

Eigen wil ik dus de volgende opzet:
----------------------------------------------
Tekst

Formulier: Zodat bezoekers inzendingen kunnen sturen, die krijg ik aan met mail, controleer en zet em online als ie goedgekeurd is

Foto

Inzendingen

Meer: dus de eerdere verschenen foto's en de inzendingen (reacties)

Duidelijhk zo? ik hoop dat iemand me kan helpen en me zo beter begrijpen?

Edited by T013S on 12 december 2008, 21:48

Posted by Puma on 12 december 2008, 22:09
#14

Waarom gebruik je dan de standaard inzending functie van PHP-Fusion niet? Die inzendingen worden ook pas gepubliceerd nadat een beheerder die heeft goedgekeurd.
In je beheerderpaneel kan je namelijk de inzendingen zien en deze eerst bekijken voor je ze publiek maakt.

Posted by T013S on 12 december 2008, 22:15
#15

Quote

Puma schreef:
Waarom gebruik je dan de standaard inzending functie van PHP-Fusion niet? Die inzendingen worden ook pas gepubliceerd nadat een beheerder die heeft goedgekeurd.
In je beheerderpaneel kan je namelijk de inzendingen zien en deze eerst bekijken voor je ze publiek maakt.


Ik zal morgen eens proberen te kijken, Kan ik bij zo'n inzending functie ook tekst en foto's erbij zetten?

Posted by MysticFire on 13 december 2008, 10:29
#16

Ik denk dat je de inzending pagina wel kan aanpassen ja, Ik had op v6 eens een mod (HelpDesk ) werkte een beetje als inzendingen enzo, en die kon je helemaal makkelijk aanpassen. Heb dit nog niet geprobeerd met deze pagina. Iemand anders wel?

Posted by Steff on 13 december 2008, 11:31
#17

Quote

Puma schreef:
Waarom gebruik je dan de standaard inzending functie van PHP-Fusion niet? Die inzendingen worden ook pas gepubliceerd nadat een beheerder die heeft goedgekeurd.
In je beheerderpaneel kan je namelijk de inzendingen zien en deze eerst bekijken voor je ze publiek maakt.

Ik stelde dat ook al voor maar hij bedoelde : hij post een foto en gasten En leden verzinnen er een verhaal bij.
Dus ik stelde voor om comments bij photogallery te gebruiken . Maar dat vondt hij ook maar niets. :s

Posted by MysticFire on 13 december 2008, 12:01
#18

beter om de submit pagina te gebruiken, en te bewerken naar zijn behoeften denk ik.