Versio

Laat alleen source code zien

Overzicht Reageren

Pagina: 1 2 volgende »

Mark botter

mark botter

08/02/2012 23:20:48
Quote Anchor link
Hallo,

Ik heb een youtube tut gevolgd van Jaffie75 (PHP contact form).
Alles na getyped, (goede les geweest, kreeg prima uitleg over de codering)
Maar wanneer ik op verzenden klik, laad hij de php pagina, met daarin de source code.

Iemand enig idee hoe ik er voor kan zorgen dat het wél goed werkt?
Ben nu al 2 dagen bezig met 1 contact formuliertje...

Dat moet sneller kunnen!

Thx voor de reacties

Hieronder de php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
if(isset($_POST['email'])){
    
    // hier is de email naar, informatie
    $email_to = "mijn@emailadres.nl";
    $email_subject = "Dit is van mijn website contact formulier.";
    $email_from = "basisvoorgroei.";
    
    // error code
    
    function die($error){
        echo "Het spijt ons, maar er is een fout gevonden in uw verzonden mail.";
        echo "Deze fouten verschijnen hieronder.<br/><br/>";
        echo $error. "<br/><br/>";
        echo "Gaat u alstublieft terug om de fouten te herstellen.<br/>";
            die();
        }

    // validatie
    
        if(!isset($_POST['name']) ||
        !
isset($_POST['email']) ||
        !
isset($_POST['comments'])){
            died('Het spijt ons, maar er is een fout gevonden in uw verzonden email.');
            
            }

            
        $name = $_post['name'];
        $email = $_post['email'];
        $comments = $_post['comments'];
    
        $error_message = "";
        $error_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
        if(!preg_match($email_exp, $email)){
            $error_message .='Het ingevoerde email adres is onjuist.<br/>';
            }

        $string_exp = "/^[A-Za-z.'-]+$/";
        if(!preg_match($string_exp, $name)){
            $error_message .='Het ingevoerde naam is onjuist.<br/>';
            }

        if(strlen($comments) < 2){    
            $error_message .= 'Het bericht wat u verzend is onjuist.<br/>';
            }

        if(strlen($error_message) > 0 ){
            died($error_message);
            }

            $email_message = "Formulier details hier beneden.\n\n";
        
        function
clean_string($string){
            $bad = array("content-type", "bcc:", "to:", "cc:", "href");
            return str_replace($bad, "", $string);
            }

        $email_message .= "name:" . clean_string($name) . "\n";
        $email_message .= "email:" . clean_string($name) . "\n";
        $email_message .= "comments:" . clean_string($name) . "\n";
        
        // creer email headers
        $headers = 'From: ' .$email_From . "\r\n". 'Reply-To:' . $email. "\r\n" .
        'X-Mailer: PHP/' . phpversion();
        @
mail($email_to, $email_subject, $email_message, $headers);
?>

<!-- succes message goes here-->
Dank u voor uw interesse, wij zullen zo spoedig mogelijk contact met u opnemen. <br/>
Klik<a href="index.html"> hier</a>om terug te gaan naar de HOME pagina.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>


en hier het html gedeelte(alleen de div):

<div id="form-wrap">
<form action="contact.php" method="post">
<fieldset>
<label class="labelone" for="name">Naam: </label>
<input name="name"/>
<label for="email">Email: </label>
<input name="email"/>
<label for="comments">Bericht: </label>
<textarea name="comments"></textarea></br>

<input class="btn" type="submit" value="Versturen"/>
<input class="btn" type="reset" value="Opnieuw"/>
</fieldset>
</form>
</div>
 
PHP hulp

PHP hulp

25/05/2012 03:13:04
Gesponsorde koppelingen:
 
Hertog Jan

Hertog Jan

08/02/2012 23:23:01
Quote Anchor link
Heb je een server waar PHP op gehost kan worden? Heeft het bestand wel een .php extentie?
 
Mark botter

mark botter

08/02/2012 23:38:39
Quote Anchor link
Ja contact.php en heb dit geïnstalleerd https://chrome.google.com/webstore/detail/noaneddfkdjfnfdakjjmocngnfkfehhd

Zou moeten werken zo toch?
 
Hertog Jan

Hertog Jan

08/02/2012 23:42:49
Quote Anchor link
Weet zo niet wat chromePHP is, maar dit lijkt me meer zoiets als FireBug. Een tool/addon in de browser om websites te testen etc.

Wat jij nodig hebt is een server die PHP ondersteund. PHP is een serverside taal en word dus op een server uitgevoerd en dus niet in de browser en je kunt het dus niet zoals html gewoon openen in de browser via C:\Program Files\website etc.

Of neem een host of zorg er voor dat je een lokale server op je pc hebt zoals WAMP
 
Mark botter

mark botter

08/02/2012 23:46:27
Quote Anchor link
Ik heb WAMP al geïnstalleerd, nog niet de pc uit gehad in tussentijd..
Ga ik nu proberen
 
Hertog Jan

Hertog Jan

08/02/2012 23:53:49
Quote Anchor link
voor zover ik weet hoeft dat ook niet.

1) Dan zet je je bestanden in een nieuwe folder in de www map.
2) Zet wamp aan
3) ga naar de browser en dan naar localhost en klik op de nieuwe folder
 
Mark botter

mark botter

09/02/2012 00:02:49
Quote Anchor link
Is dat een instelling die ik bv in dreamweaver kan doen? Zoiets zag ik wel voorbij komen?

want bij wat je bij punt 1,2 en 3 zegt, ben ik zoals de film op rtl 5 nu... Clouless
 
Hertog Jan

Hertog Jan

09/02/2012 00:15:25
Quote Anchor link
dreamweaver heeft hier niks mee te maken. Je moet gewoon zorgen dat je PHP bestanden op een server staan en anders doet je script het niet.

Ik zal het zo goed mogelijk uitleggen wat je moet doen, aangezien je niet echt heel veel verstand van zaken hebt.

1) Wamp 2.2 installeren
2) Wamp 2.2 starten
3) Icoontje van Wamp komt rechts onderin je taakbalk te staan (Groen icoontje betekend dat alles werkt)
4) Ga naar de folder van Wamp (C:/ etc), daar vind je een folder genaamd WWW
5) Maak daar een nieuwe folder in genaamd: ContactForm
6) Start een browser op
7) Ga naar localhost/ContactForm

Nu moet je je contact form te zien krijgen en moet PHP werken.
Succes, beter kan ik het je niet uitleggen.

PS Mail functie werk niet op zomaar localhost, aan je localhost moet je eerst een mailserver koppelen via SMTP bv of gewoon via instellingen van php.ini
 
- SanThe -

- SanThe -

09/02/2012 00:17:15
Quote Anchor link
Dreamweaver heeft niks met php te maken.
Start WAMP gewoon opnieuw op en je webserver zou moeten werken.
 
Mark botter

mark botter

09/02/2012 00:58:15
Quote Anchor link
Allereerst dank voor de snelle reacties en de tips!

Ik heb de WAMP aanstaan, alles in de folder geplaatst zoals HJ zei. Krijg telkens fout meldingen dat ik onjuiste gegevens heb ingevoerd...

Ik heb alles even online gezet: http://www.basisreclame.nl/contact.html

Dan zien jullie wat er mis gaat...

Wat doe ik fout?!

Groet!
 
Hertog Jan

Hertog Jan

09/02/2012 01:03:35
Quote Anchor link
regel 11 krijg je een error, function die($error){ even veranderen naar function died($error){
 
Mark botter

mark botter

09/02/2012 01:09:54
Quote Anchor link
Aangepast. Nu krijg ik een .preg_match terwijl ik alle velden goed invul.
 
- SanThe -

- SanThe -

09/02/2012 01:18:31
Quote Anchor link
$_post bestaat niet. Altijd met hoofdletters $_POST.
 
Mark botter

mark botter

09/02/2012 01:19:44
Quote Anchor link
Is dat dan html taal ofzo?

Want in dreamweaver vult hij dat zelf aan...

Toevoeging op 09/02/2012 01:23:44:

Oke het helpt, zo het lijkt. Echter nog niet helemaal.
Krijg deze melding:

Warning: preg_match() [function.preg-match]: Empty regular expression in /home/basisrec/domains/basisreclame.nl/public_html/contact.php on line 33
Het ingevoerde email adres is onjuist.
 
Wouter J

Wouter J

09/02/2012 07:54:03
Quote Anchor link
Dat komt omdat DreamWeaver een vreselijk product is. $_POST is PHP.

En probeer nu eens zelf te leren debuggen i.p.v. alle errors direct hier te plaatsen. Stappen:

1) Vertaal de error en probeer hem te begrijpen
2) Op welke regel staat de error? Doorzoek die regel en een paar erboven en een paar eronder
3) Als je variabele in die regel gebruikt kijk je wat de waarde van die variabele zijn, door bijv. var_dump te gebruiken of goed je script te volgen.
4) Probeer op deze manier de fout te vinden.
5) Pak google en zoek op alleen de foutmelding, zonder persoonlijke dingen als bestandsnaam, on line ..., enz.
6) Kom je er nog steeds niet uit? Plaats het dan hier op het forum.
Gewijzigd op 09/02/2012 07:56:55 door Wouter J
 
Mark botter

mark botter

09/02/2012 11:52:11
Quote Anchor link
Ik denk dat ik het al weet, ik heb echter niet de oplossing.
Ik heb deze || erin staan (regel 20), volgens de 'leraar' betekend het OR of in dit geval AND. Maar ik twijfel of ik de juiste functie heb geprobeerd.

Weet iemand hoe de functie OR of AND werkt?

BVD!


Toevoeging op 09/02/2012 11:54:37:

Excuus dames en heren! Ik google eerst even!! :P
 
- SanThe -

- SanThe -

09/02/2012 12:07:47
Quote Anchor link
Mark botter op 09/02/2012 11:52:11:
volgens de 'leraar' betekend het OR of in dit geval AND


Het is niet de ene keer dit en de andere keer dat.

|| is or (als één van beiden waar is)
&& is and (als beiden waar zijn)
 
Hertog Jan

Hertog Jan

09/02/2012 12:14:02
Quote Anchor link
Zoals SanThe al zei || betekend OR, en && betekend AND. In PHP gebruik je nooit OR of AND maar || en &&. OR en AND gebruik je alleen in MySQL.

En wat betreft de fout melding van preg_match:
Je hebt op regel 33 dit staan if(!preg_match($email_exp, $email)) { en de foutmelding zegt 'Empty regular expression', dus bij $email_exp gaat het mis want dat is de regular expression. Hij zegt dat die leeg is, dus of $email_exp is niet geset of $email_exp is leeg. In jouwn geval is die niet geset.

Dus verander

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$error_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';


naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
Gewijzigd op 09/02/2012 12:15:19 door Hertog Jan
 
- SanThe -

- SanThe -

09/02/2012 12:17:56
Quote Anchor link
Hertog Jan op 09/02/2012 12:14:02:
In PHP gebruik je nooit OR of AND maar || en &&. OR en AND gebruik je alleen in MySQL.


Onzin.
 
Mark botter

mark botter

09/02/2012 13:50:48
Quote Anchor link
Heb alles gecontroleerd. Ik krijg nu telkens een foutmelding dat mijn email adres niet klopt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
$error_message
= "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]
        {2,4}$/'
;
        if(!preg_match($email_exp, $email)){
            $error_message .= 'Het ingevoerde email adres is onjuist.<br/>';
            }

?>
 
- SanThe -

- SanThe -

09/02/2012 13:53:24
 

Pagina: 1 2 volgende »



Overzicht Reageren