Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema con controllo validazione

    questa è la pagina nella quale ho un form per inviare email:
    Codice PHP:
    <?php
    require 'class.mail.php';

    if (isset(
    $_POST['send'])) {
        require_once 
    'control.php';

        
    $errori validate_field($_POST['from_address'], $_POST['message']);

        if (empty(
    $errori)) {
            
    $from $_POST['from_address'];
            
    $cc $_POST['cc_address'];
            
    $subj $_POST['subject'];
            
    $text $_POST['message'];

            
    $mail = new mail_og();
            
    $mail->setToAddress('email');
            
    $mail->setFromAddress($from);
            
    $mail->setCcAddress($cc);
            
    $mail->setSubject($subj);
            
    $mail->setTextBody($text);

    //        if ($mail->send()) {
    //            echo "

    Il messaggio è stato inviato

    ";
    //            echo "
    [b]From:[/b" . $_POST['from_address'] . "
    ";
    //            echo '[b]CC:[/b] ' . 
    $_POST['cc_address'] . "
    ";
    //            echo "
    [b]Subject:[/b" . $_POST['subject'] . "
    ";
    //            echo "
    [b]Message:[/b]</p>";
    //            echo nl2br(
    $_POST['message']);
    //            echo '
    Tra 5 secondi sarai reindirizzato nella home page.';
    //            header('refresh: 5; url=index.html');
    //        }
        }
    } else if (isset(
    $errori)) {
        if (!empty(
    $array_errori)) {
            echo 'Si sono verificati i seguenti errori:
    ';
            foreach (
    $errori as $key => $value) {
                echo '-' . '[b]' . 
    $value . '[/b]' . '
    ';
            }
        }
    }
    ?>
    <!DOCTYPE HTML PUBLIC "
    -//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <
    head>
            <
    meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <
    link rel="stylesheet" href="style.css" type="text/css" />
            <
    link href='http://fonts.googleapis.com/css?family=Orbitron' rel='stylesheet' type='text/css'>
            <
    title>Contact Us</title>
        </
    head>
        <
    body>
            <
    form method="post" action="#">
                <
    table>
                    <
    tr>
                        <
    td>Your email: </td>
                        <
    td><input type="text" name="from_address" value="" size="40" /></td>
                        <
    td>*</td>
                    </
    tr>
                    <
    tr>
                        <
    td>CC:</td>
                        <
    td><input type="text" name="cc_address" value="" size="40" /></td>
                    </
    tr>
                    <
    tr>
                        <
    td>Subject:</td>
                        <
    td><input type="text" name="subject" value="" size="40" /></td>
                    </
    tr>
                    <
    tr>
                        <
    td valign="top">Message:</td>
                        <
    td>
                            <
    textarea name="message" rows="10" cols="60"></textarea>
                        </
    td>
                        <
    td>*</td>
                    </
    tr>
                    <
    tr>
                        <
    td><input type="submit" value="Send" name="send" /></td>
                        <
    td><input type="reset" value="Reset" name="reset" /></td>
                    </
    tr>
                </
    table>
            </
    form>
        </
    body>
    </
    html>
    il file control.php è questo:
    Codice PHP:
    <?php

    function valida_text($field) {
        if (
    $field == "") {
            return 
    "Non e' stato inserito nessun testo
    "
    ;
        }
        return 
    ""// se tutto ok è vuoto
    }

    function 
    valida_email($field) {
        if (
    $field == "") {
            return 
    "Nessuna Email inserita
    "
    ;
        } else if (!((
    strpos($field".") > 0) && (strpos($field"@") > 0)) || preg_match("/[^a-zA-Z0-9.@_-]/"$field)) {
            return 
    "L'indirizzo Email è invalido
    "
    ;
        }
        return 
    "";
    }

    function 
    validate_field($text$email) {
        
    $email trim($email);
        
    $error = array();
        if (
    valida_text($text) != '') {
            
    $error[] = valida_text($text);
        }
        if (
    valida_email($email) != '') {
            
    $error[] = valida_email($email);
        }
    }

    ?>
    nn funziona.
    se lascio tutti i campi vuoti e clicco su send nn succede nulla mentre mi dovrebbe restituire un errore.
    nn riesco a capire dove sbaglio!

  2. #2
    Codice PHP:
    function validate_field($text$email) { 
        
    $email trim($email); 
        
    $error = array(); 
        if (
    valida_text($text) != '') { 
            
    $error[] = valida_text($text); 
        } 
        if (
    valida_email($email) != '') { 
            
    $error[] = valida_email($email); 
        } 
        return 
    $error;


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    si in effetti quello è un errore che nn avevo visto.
    però nn mi stampa cmq gli errori !!
    ho ricontrollaro 200 volte!!

  4. #4
    senza controlli funziona, nel senso che la mail la invia.
    appena aggiungo i controlli nn funziona più nulla:
    Codice PHP:
    require 'class.mail.php';

    if (isset(
    $_POST['send'])) {
        require_once 
    'control.php';

        
    $errori validate_field($_POST['from_address'], $_POST['message']);

        if (empty(
    $errori)) {
            echo 
    "ciao";
            
    $from $_POST['from_address'];
            
    $cc $_POST['cc_address'];
            
    $subj $_POST['subject'];
            
    $text $_POST['message'];

            
    $mail = new mail_og();
            
    $mail->setToAddress('matteo.ferrone@gmail.com');
            
    $mail->setFromAddress($from);
            
    $mail->setCcAddress($cc);
            
    $mail->setSubject($subj);
            
    $mail->setTextBody($text);

            if (
    $mail->send()) {
                echo 
    "

    Il messaggio è stato inviato

    "
    ;
                echo 
    "[b]From:[/b] " $_POST['from_address'] . "
    "
    ;
                echo 
    '[b]CC:[/b] ' $_POST['cc_address'] . "
    "
    ;
                echo 
    "[b]Subject:[/b] " $_POST['subject'] . "
    "
    ;
                echo 
    "[b]Message:[/b]</p>";
                echo 
    nl2br($_POST['message']);
                echo 
    '
    Tra 5 secondi sarai reindirizzato nella home page.'
    ;
                
    header('refresh: 5; url=index.html');
            }
        }
    //} else if (isset($errori)) {
    //    if (!empty($errori)) {
    //        echo 'Si sono verificati i seguenti errori:
    ';
    //        foreach ($errori as $key => $value) {
    //            echo '
    -' . '[b]' . $value . '[/b]' . '
    ';
    //        }
    //    }
    }
    ?> 
    infatti l'echo 'debug' nn lo stampa.

  5. #5
    risolto:
    Codice PHP:
    <?php
    require 'class.mail.php';

    if (isset(
    $_POST['send'])) {
        include 
    'control.php';

        
    $errori validate_field($_POST['from_address'], $_POST['message']);

        if (empty(
    $errori)) {
            
    $from $_POST['from_address'];
            
    $cc $_POST['cc_address'];
            
    $subj $_POST['subject'];
            
    $text $_POST['message'];

            
    $mail = new mail_og();
            
    $mail->setToAddress('matteo.ferrone@gmail.com');
            
    $mail->setFromAddress($from);
            
    $mail->setCcAddress($cc);
            
    $mail->setSubject($subj);
            
    $mail->setTextBody($text);

            if (
    $mail->send()) {
                echo 
    "

    Il messaggio è stato inviato

    "
    ;
                echo 
    "[b]From:[/b] " $_POST['from_address'] . "
    "
    ;
                echo 
    '[b]CC:[/b] ' $_POST['cc_address'] . "
    "
    ;
                echo 
    "[b]Subject:[/b] " $_POST['subject'] . "
    "
    ;
                echo 
    "[b]Message:[/b]</p>";
                echo 
    nl2br($_POST['message']);
                echo 
    '
    Tra 5 secondi sarai reindirizzato nella home page.'
    ;
                
    header('refresh: 5; url=index.html');
            }
        } else if (isset(
    $errori)) {
            if (!empty(
    $errori)) {
                echo 
    'Si sono verificati i seguenti errori:
    '
    ;
                foreach (
    $errori as $key => $value) {
                    echo 
    '-' '[b]' $value '[/b]' '
    '
    ;
                }
            }
        }
    }
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.