Problema invio dati da textarea

zerocool

Nuovo Utente
25 Feb 2013
2
0
0
Ciao a tutti ragazzi.
Ho iniziato a studiare php circa un mese fà e come "esercizio" ho deciso di creare un blog da 0. (Diciamo con funzioni base).
Per ampliare lo studio ho iniziato ad introdurre anche script di javascript come, per esempio, il controllo numerico dei caratteri immessi in una textarea per limitare la lunghezza del commento.
Qui sorge il problema. Ora lo script php, che attraverso una textarea e un bottone inviava al database e quindi in output il commento, ha smesso di funzionare.
Il codice è il seguente:
PHP:
<?php

include('core/init_inc.php');

if (isset($_GET['pid'], $_POST['user'], $_POST['body'])){
    
    if (addComment($_GET['pid'], $_POST['user'], $_POST['body'])){
        header("location: blog_read.php?pid={$_GET['pid']}");
    }else{
        header("location: blog_list.php");
    }
    
    die();
    
    
}

?>
<!DOCTYPE html>
<html>
    <head>
        <script language="javascript" type="text/javascript">
            function limitText(limitField, limitCount, limitNum) {
                if (limitField.value.length > limitNum) {
                    limitField.value = limitField.value.substring(0, limitNum);
                    } else {
                    limitCount.value = limitNum - limitField.value.length;
                    }
            }
        </script>
        <title>Blog Prova</title>
    </head>
    <body>
        <div>
            <?php
            
            if (isset($_GET['pid']) === false || valid_pid($_GET['pid']) === false){
                echo 'ID del post non valido.';
            }else{
                
            $post = getPost($_GET['pid']);
            
            ?>
            <h2><?php echo $post['title']; ?></h2>
            <h4>By <?php echo $post['user']; ?> il <?php echo $post['date']; ?> (<?php echo count($post['comments']); ?> commenti)</h4>
            
            <hr />
            
            <p><?php echo $post['body']; ?></p>
            
            <hr />
            <?php
            
            foreach($post['comments'] as $comment){
                ?>
                <h4>Da: <?php echo $comment['user']; ?> il <?php echo $comment['date']; ?></h4>
                <p><?php echo $comment['body']; ?></p>
                <?php
            }
            
            ?>
            <form action="" method="post">
                <p>
                    <label for="user">Nome</label>
                    <input type="text" name="user" id="user" />
                </p>
                <p>
                    <textarea name="body" rows="5" cols="60" maxlength="180" onKeyDown="limitText(this.form.body,this.form.countdown,180);" onKeyUp="limitText(this.form.body,this.form.countdown,180);"></textarea><br />
                    <font size="2">(Massimo 180 caratteri.)<br />
                    Hai ancora <input readonly type="text" name="countdown" size="4" value="180"> caratteri rimanenti.</font>
                    </form>
                    
                </p>
                <p>
                    <input type="submit" value="Aggiungi Commento" />
                </p>
            </form>
            <a href="blog_list.php">Torna ai post</a>
            <?php
            }
            ?>
        </div>
    </body>
</html>

Non riesco a riscontrare alcun problema di battitura e lo script di js funziona alla perfezione. Ma quando inserisco il commento nella textarea e dò l'invio attraverso il submit non succede nulla.
p.s. Scusate se ho sbagliato la sezione, non sapevo se aprire il thread nella sezione javascript o qui. Visto che il problema penso sia del php l'ho aperto qui.
Grazie in anticipo delle risposte.

Zero.
 
Ultima modifica di un moderatore:
Ho trovato la soluzione. Ho chiuso il tag <form> prima del submit quindi il bottone non veniva riconosciuto. Scusate la prossima volta presterò più attenzione.
Potete chiudere tranquillamente.

Grazie ancora
 

Discussioni simili