1. #1

    Registered
    19/09/05
    Posts
    1,911
    iTrader
    0
    Mentioned
    0 Post(s)

    PHP: formulier werkt niet correct

    op een pagina gebruik ik volgend formulier :

    PHP Code:
    <?php

    if( $_POST['send_request'] ) 
    {

            
    $regex['first_name'] = "^."#require atleast one charecter
            
    $regex['last_name'] = "^."#require atleast one charecter
            
    $regex['email'] = "^[_a-zA-Z0-9-]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,3})$*"#must be valid email

            
    $form_errors['first_name'] = "Gelieve een voornaam op te geven";
            
    $form_errors['last_name'] = "Gelieve een naam op te geven";
            
    $form_errors['email'] = "Gelieve een correct e-mailadres op te geven";

            foreach( 
    $regex as $k => $v 
            {
                  if( ! 
    ereg$v $_POST[$k] ) )
                  {
                         
    $errors[$k] = $form_errors[$k];
                  }
            }


            if( ! isset( 
    $errors ) ) {

        
    $send_to "sales@staff.be";
        
    $send_subject "Info request NL";
        
    $send_from "Info request form";
        
    $mesg  "The following person has submitted an info request form:\n\n";
        
    $mesg .= "First Name   : ".$_POST['first_name']."\n";
        
    $mesg .= "Last Name    : ".$_POST['last_name']."\n";
        
    $mesg .= "Organization : ".$_POST['company']."\n";
        
    $mesg .= "Phone        : ".$_POST['phone']."\n";
        
    $mesg .= "Email        : ".$_POST['email']."\n";
        
    $mesg .= "Inquiry      :\n\n".$_POST['inquiry']."";
        
        
    mail$send_to$send_subject$mesg,
            
    "From: ".$send_from."\r\n"
            
    ."Reply-To: ".$send_from."\r\n"
            
    ."X-Mailer: PHP/" phpversion());

            
    $thank_you 1;

            }
    }
        
        
    $labels['first_name'] = "Voornaam";
        
    $labels['last_name'] = "Familienaam";
        
    $labels['email'] = "E-mail";
        
    $labels['phone'] = "Telefoon";
        
    $labels['company'] = "Bedrijf";
        
    $labels['inquiry'] = "Uw vraag/opmerking";
        
    $labels['thankyou'] = "Bedankt voor uw vraag/opmerking. U krijg zo spoedig mogelijk antwoord.";
        
    ?>
    <?php 
    if(!  $thank_you ) { ?>
    <form name="form1" method="post" action="">
        <table width="0%"  border="0" cellspacing="0" cellpadding="2">
           <tr>
               <td class="input"><?= $labels['first_name'?>:</td>
               <td>
                    <?php if( isset($errors['first_name'] ) ) { ?>
                    <font size = "1" color="red"><?= $errors['first_name'?></font><br />
                    <?php ?>
                    <input class="inputbox2" name="first_name" type="text" size="30" id="first_name" value="<?= $_POST['first_name'?>"></td>
              </tr>
           <tr>
               <td class="input"><?= $labels['last_name'?>: </td>
               <td>
                    <?php if( isset( $errors['last_name'] ) ) { ?>
                    <font size = "1" color="red"><?= $errors['last_name'?></font><br />
                    <?php ?>
                    <input class="inputbox2" name="last_name" type="text" id="last_name" size="30" value="<?= $_POST['last_name'?>"></td>
              </tr>
           <tr>
               <td class="input"><?= $labels['company'?>: </td>
               <td><input class="inputbox2" name="company" type="text" id="company" size="30" value="<?= $_POST['company'?>"></td>
              </tr>
           <tr>
               <td class="input"><?= $labels['email'?>: </td>
               <td>
                    <?php if( isset( $errors['email'] ) ) { ?>
                    <font size = "1" color="red"><?= $errors['email'?></font><br />
                    <?php ?>
                    <input class="inputbox2" name="email" type="text" id="email" size="30" value="<?= $_POST['email'?>"></td>
              </tr>
           <tr>
               <td class="input"><?= $labels['phone'?>:</td>
               <td><input class="inputbox2" name="phone" type="text" id="phone" size="30" value="<?= $_POST['phone'?>"></td>
              </tr>
           <tr>
               <td valign="top" class="input"><?= $labels['inquiry'?>: </td>
            <td><textarea class="box3" name="inquiry" cols="30" rows="7" id="inquiry"><?= $_POST['inquiry']?></textarea>
            </div></td>
              </tr>
           <tr>
               <td valign="top">&nbsp;</td>
               <td><div align="left"><br><bR>
                   <input type="submit" name="Submit" value="Verzenden">
                  <input name="send_request" type="hidden" id="send_request" value="1">
               </div></td>
              </tr>
           </table>
    </form>
    <?php } else { ?> 
    <p><font color="green"><b><?= $labels['thankyou'?></b></font></p>
    <?php ?>
    ziet er iemand de fout?
    bij het openen van de pagina zie ik onmiddellijk de error messages :

    Gelieve een voornaam op te geven
    Gelieve een naam op te geven
    Gelieve een correct e-mail adres op te geven
    Last edited by KoenDK; 22-08-2007 at 19:08.
    no votes  

  2. #2

    Registered
    19/09/05
    Posts
    1,911
    iTrader
    0
    Mentioned
    0 Post(s)
    euhm, iemand ?
    no votes  

  3. #3

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    if( isset($_POST['send_request'] ) )

    edit: en n/o, maar laat dit script hermaken door iemand die wel php kan. Ik denk dat er geen regel zonder fout is.
    no votes  

  4. #4

    Registered
    19/09/05
    Posts
    1,911
    iTrader
    0
    Mentioned
    0 Post(s)
    het werkt nog steeds niet
    ok, de error messages komen niet meer tevoorschijn bij het laden van de pagina, maar ze komen ook niet tevoorschijn als men de naam niet invult

    en euhm, wat is er dan zoal allemaal mis? hulp zou leuk zijn
    dan heb ik eens en voor altijd een formulier dat werkt, met alles erop en eraan
    no votes  

  5. #5

    Registered
    19/09/05
    Posts
    1,911
    iTrader
    0
    Mentioned
    0 Post(s)
    ik denk trouwens dat veel te maken heeft met de php versie
    op een server met PHP4 werkt dit dus perfect, maar helaas moet ik werken met PHP5, en daar krijg ik dus geen enkele error message indien men bv niets invult
    no votes  

  6. #6
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Quote Originally Posted by KoenDK View Post
    This quote is hidden because you are ignoring this member. Show
    op een server met PHP4 werkt dit dus perfect, maar helaas moet ik werken met PHP5, en daar krijg ik dus geen enkele error message indien men bv niets invult
    Ooit al gehoord van de error_reporting functie in PHP?

    En wat je code betreft : het zou misschien wel eens kunnen helpen dat je de $errors array ook op voorhand als array definieert alvorens je er waardes in gaat steken, en vervolgens werkt met empty ipv isset om te testen of er foutmeldingen gezet zijn (als je op die manier wil blijven werken).
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

  7. #7

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    -je gebrukt variabelen zonder dat ze geïntiailiseerd zijn
    -Je gebruikt bestaanscontrole met if($var) ipv if(isset($var))
    -Je gebruikt de te vermijden <?= tag

    Maar ik had blijkbaar overdreven daarstraks.

    Ook raad ik ereg af ten voordele van preg_match.

    en zoals djeez zegt: error_reporting(E_ALL), a debugger's best friend.
    no votes  

  8. #8

    Registered
    19/09/05
    Posts
    1,911
    iTrader
    0
    Mentioned
    0 Post(s)
    ik heb het idd door iemand anders kunnen laten doen, alles werkt eigenlijk nu
    de check wordt gedaan via een js

    er klopt echter iets niet met mijn php syntax want de mail wordt niet verstuurd

    PHP Code:
    <?php
    if(isset( $_POST['submit'] )) 
    {
        
    $send_to "testertje@gmail.com";
        
    $sendto "test contact";
        
    $send_subject "subject";
        
    $send_from $_POST['email'] . "<" $_POST['email'] . ">";
        
    $mesg  "Bla :\n\n";
        
    $mesg .= "Email : ".$_POST['email']."\n";
        
        
    mail$send_to$send_subject$mesg,
                
    "From: ".$send_from."\r\n"
                
    ."Reply-To: ".$send_from."\r\n"
                
    ."X-Mailer: PHP/" phpversion());
    ?>

        <p><font color="green"><b>Vriendelijk bedankt voor uw bericht.</p>

    <?php
    }
    else
    {
    ?>
    <form>
    blablabla
    <input type="submit" name="submit" value="Verzenden" />
    </form>
    <?
    }
    ?>


    iemand enig idee?
    no votes  

  9. #9

    Registered
    19/09/05
    Posts
    1,911
    iTrader
    0
    Mentioned
    0 Post(s)



    ps : ik heb error_reporting(E_ALL); toegevoegd aan mijn formulier, maar ik krijg niets te zien



    *edit : ik denk dat ik het weet, die 'name' is denk ik niet correct als ID,
    ik ga het eens proberen met een iets specifiekere naam...
    Last edited by KoenDK; 27-08-2007 at 13:19.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in