Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema recupero dati $_post con form in pagina multiuso

    Salve a tutti, sono alle "primissime" armi con il linguaggio php e seguendo un libro mi sono bloccato in un punto, premetto che cercando su google ho trovato degli esempi più pratici e funzionali, però voglio capire esattamente cosa c'è di sbagliato in questo script del cavolo, spero che qualcuno di voi possa darmi una spiegazione perchè io non ne vengo fuori.
    Praticamente ho questa pagina in cui dovrei aggiungere un utente, il form viene visualizzato come html ma dopo aver iserito i dati e premuto invia mi ricarica la stessa pagina senza aver inserito nulla nel database.
    il codice è questo:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>A. punti dal web: Gestione degli autori</title>
    <meta http-equiv="content-type"
    content="text/html; charset=iso-8859-1" />
    </head>
    <body>
    <?php if (isset($_POST['nome'])):
    //connetto al db
    $dbconnect = @mysql_connect('xxx', 'xxx', 'xxx');
    if (!$dbconnect) {
    exit('

    Errore durante la connessione al server del database</p>');
    }
    //seleziona il database
    if (!@mysql_select_db('esercizi')){
    exit('

    Errore durante la connessione al database</p>');
    }
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $sql = "INSERT INTO autori SET
    nome='$nome' ,
    email='$email'";
    if (@mysql_query($sql)) {
    echo '

    Nuovo autore inserito</p>';
    } else {
    echo '

    A causa di un errore il nuovo autore non è stato inserito: ' . mysql_error() . '</p>';
    }
    ?>


    Aggiungi un altro autore</p>


    Gestisci autori</p>


    Torna all'inizio</p>
    <?php else: ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


    Inserisci un nuovo autore:</p>
    <label>Nome: <input type="text name="nome" /></label>

    <label>Email: <input type="text name="email" /></label>

    <input type="submit" value="Invia" />
    </form>
    </body>
    </html>

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    $sql = "INSERT INTO autori SET
    nome='$nome' ,
    email='$email'";

    La sintassi della INSERT non è così, ma
    Codice PHP:
    $sql "INSERT INTO autori (nome, email) VALUES ($nome,$email)"
    Inoltre hai nche sbagliato l'uso degli apici, attorno ad una variabile non puoi metterci l'apice singolo ' perché in tal caso non verrà preso il valore della variabile, al limite puoi metterci il doppio apice ", ma in questo caso non è necessario perché oltre alla variabile non hai altro.

    Quando posti del codice sul forum, mettilo all'interno del tag [php] così viene evidenziata la sintassi e mantenuta l'indentazione.

  3. #3
    Grazie mille per avermi risposto, è da parecchio tempo che non posto su un forum e ho dimenticato la netiquette
    Ho provato a modificare la stringa come mi hai consigliato però ora non carica nemmeno il form.
    Inoltre provando a controllare la sintassi con un programma mi restituisce sempre lo stesso errore unexpected $end in CODE on line 40

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    all'inzio del tuo codice PHP c'è questa cosa:
    codice:
    if (isset($_POST['nome'])):
    i ":" a che servono? Caso mai una { e fatto ciò, fai il conto delle aperte { e chiuse }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Scrivi
    <?php if (isset($_POST['nome'])):
    e non lo chiudi

    <?php else: ?>
    e non lo chiudi

    Hai anche dei problemi nell'HTML
    <label>Nome: <input type="text name="nome" /></label>

    <label>Email: <input type="text name="email" /></label>


    Dopo text non chiudi i doppi apici.

    Ci sono un bel po' di errori, mi meraviglierei se funzionass.e

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Originariamente inviato da Andrea1979
    all'inzio del tuo codice PHP c'è questa cosa:
    codice:
    if (isset($_POST['nome'])):
    i ":" a che servono? Caso mai una { e fatto ciò, fai il conto delle aperte { e chiuse }
    I : servono a dire "da qui comincia l'if", hanno la sressa funzione delle { solo che si chiude con
    endif e non con }

    In alcuni casi (quando c'è codice html mischiato a php) può risultare più pulito e comodo, ma la funzione è la stessa delle parentesi.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    bene, buono a sapersi e meglio ancora, buono a non utilizzarsi: provengo da java e in java le cose si fanno in un solo modo: bene. Mischiare mille sintassi diverse porta agli errori di cui sopra.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Ragazzi vi devo ancora ringraziare, come sospettavo il libro che sto leggendo è una chiavica, ed io essendo "autodidatta" alle prime armi non capivo dove erano gli errori.
    Il codice che vi ho mostrato è stato copiato PARI PARI dal libro e non ho fatto nessun errore di trascrizione (ho controllato fino a 2 secondi fa).
    Ho applicato tutte le regole che mi avete consigliato e devo dire che ora funziona alla grande!

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Originariamente inviato da Andrea1979
    bene, buono a sapersi e meglio ancora, buono a non utilizzarsi: provengo da java e in java le cose si fanno in un solo modo: bene. Mischiare mille sintassi diverse porta agli errori di cui sopra.
    Sta a te essere un buon programmatore e conoscere la sintassi, PHP ti da diverse opportunità, a te l'abilità e capacità di usarle a dovere.

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Per me è solo un problema di retrocompatibilità, poi ognuno la veda come voglia.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.