Visualizzazione risultati 1 fino 6 di 6

Discussione: Aggiunta "cuccioli" (come registrazione)

  1. #1
    Guest

    Predefinito Aggiunta "cuccioli" (come registrazione)

    Ciao!
    Ho un problema
    Sto creando un sito su un "allevamento" per un'amica e volevo aggiungere la possibilità di creare un form per la "registrazione dei cuccioli" che cercano una casa per facilitare anche lei che di html/php ne capisce poco e niente.

    Ho creato queste pagine:

    config.inc.php
    Codice PHP:
    <?
    //DATI DI CONNESSIONE AL DB
    $db_host = "localhost"; //host
    $db_user = "zannadiluna"; //username
    $db_password = "xxxxxx"; //password
    $db_name = "my_zannadiluna"; //nome del database

    //CONNESSIONE AL DB
    $connessione = @mysql_connect($db_host,$db_user,$db_password)
    or die
    (
    "Non è possibile connettersi!!!");
    $db = @mysql_select_db($db_name,$connessione);
    ?>
    Questa per la registrazione:

    registracuccioli.php
    Codice PHP:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title></title>
    <link rel="stylesheet" href="stile.css" type="text/css">
    </head>

    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <?PHP
    include "config.inc.php";

    $PRIMA=$_POST['PRIMA'];
    $CUCCIOLO=$_POST['CUCCIOLO'];
    $SESSO=$_POST['SESSO'];
    $RAZZA=$_POST['RAZZA'];
    $DESCRIZIONE=$_POST['DESCRIZIONE'];
    $ETA=$_POST['ETA'];



    if (
    $PRIMA=='TRUE'){
    $CUCCIOLO='';
    }
    else if (
    $PRIMA=='FALSE'){

    //LANCIO LA QUERY PER VERIFICARE L'ESISTENZA DI ALTRI CUCCIOLI CON LO STESSO NOME
    $sqlver = "SELECT * FROM CUCCIOLI WHERE CUCCIOLO = '$CUCCIOLO'";
    $queryver = @mysql_query ($sqlver, $connessione) or die(mysql_error());
    $num_user = mysql_num_rows($queryver);

    //SE NE ESISTONO MENO DI 100 PASSO ALL'AGGIUNTA DEL CUCCIOLO
    if ($num_user == "100") {

    echo
    "<form name='formOK' method='post' action='index.php'>";
    echo
    "</form>";

    echo
    "<script language='Javascript'>";

    if (
    eregi("^[a-z]",$CUCCIOLO)) {
    if (
    eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})",$DESCRIZIONE)){

    //Inserimento dati in DB

    /*GESTIONE SIMBOLO SESSO*/
    if ($SESSO=='Maschio') $URLSESSO='../img/m.gif';
    if (
    $SESSO=='Femmina') $URLSESSO='../img/f.gif';




    $CUCCIOLO = str_replace("'", "'", $CUCCIOLO);

    $sql = "INSERT INTO CUCCIOLI
    ( CUCCIOLO, RAZZA, DESCRIZIONE, ETA, SESSO, URLSESSO)
    VALUES ('
    $CUCCIOLO','$RAZZA','$DESCRIZIONE','$ETA','$SESSO','$URLSESSO')";
    $query = @mysql_query ($sql, $connessione) or die(mysql_error());


    echo
    "document.formOK.submit();";
    echo
    "alert ('Il cucciolo è stato aggiunto correttamente.')";
    }else{ echo
    "alert ('Il nome del cucciolo non è stato inserito correttamente.')";}
    }else{ echo
    "alert ('La descrizione del cucciolo non è stata inserita correttamente.')";}
    echo
    "</script>";
    }

    else if (
    $num_user == "101"){
    echo
    "<form name='formESISTE' method='post' action='registracuccioli.php'>";
    echo
    "</form>";
    echo
    "<script language='Javascript'>";
    echo
    "alert ('Ci sono già 100 cuccioli che si chiamano in questo modo');";
    echo
    "document.formESISTE.submit();";
    echo
    "</script>";
    }
    }

    @
    mysql_close ($connessione);
    ?>



    <form name="form1" method="post" action="registracuccioli.php">

    <div align="center"><table border="0" width="500" cellspacing="2" cellpadding="0">
    <tr>
    <td align="center" height="20" class="login">Nome del cucciolo:</td>
    <td height="20" align="left"><input name="CUCCIOLO" type="text" class="textfieldBASE" id="CUCCIOLO" value="<?=$CUCCIOLO?>" size="20" maxlength="40">
    </td>
    </tr>
    <tr>
    <td align="center" height="20" class="login">Razza:</td>
    <td height="20" align="left">
    <select name="RAZZA" class="textfieldBASE" id="RAZZA">
    <option value="Pastore Tedesco" selected>Pastore Tedesco</option>
    </select>
    </td>
    </tr>

    <tr>
    <td align="center" height="20" class="login">Sesso:</td>
    <td height="20" align="left">
    <select name="SESSO" class="textfieldBASE" id="SESSO">
    <option value="Maschio" selected>Maschio</option>
    <option value="Femmina">Femmina</option>
    </select>
    </td>
    </tr>


    <tr>
    <td align="center" height="20" class="login">Età (valutata in mesi):</td>
    <td height="20" align="left">
    <select name="ETA" class="textfieldBASE" id="ETA">
    <option value="0" selected>0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    <option value="32">32</option>
    <option value="33">33</option>
    <option value="34">34</option>
    <option value="35">35</option>
    <option value="36">36</option>
    <option value="37">37</option>
    <option value="38">38</option>
    <option value="39">39</option>
    <option value="40">40</option>
    <option value="41">41</option>
    <option value="42">42</option>
    <option value="43">43</option>
    <option value="44">44</option>
    <option value="45">45</option>
    <option value="46">46</option>
    <option value="47">47</option>
    <option value="48">48</option>
    <option value="49">49</option>
    <option value="50">50</option>
    <option value="51">51</option>
    <option value="52">52</option>
    <option value="53">53</option>
    <option value="54">54</option>
    <option value="55">55</option>
    <option value="56">56</option>
    <option value="57">57</option>
    <option value="58">58</option>
    <option value="59">59</option>
    <option value="60">60</option>
    <option value="61">61</option>
    <option value="62">62</option>
    <option value="63">63</option>
    <option value="64">64</option>
    <option value="65">65</option>
    <option value="66">66</option>
    <option value="67">67</option>
    <option value="68">68</option>
    <option value="69">69</option>
    <option value="70">70</option>
    <option value="71">71</option>
    <option value="72">72</option>
    <option value="73">73</option>
    <option value="74">74</option>
    <option value="75">75</option>
    <option value="76">76</option>
    <option value="77">77</option>
    <option value="78">78</option>
    <option value="79">79</option>
    <option value="80">80</option>


    </select>
    </td>
    </tr>

    <tr>
    <td align="center" height="20" class="login">Descrizione:</td>
    <td height="20" align="left"><input name="DESCRIZIONE" type="text" class="textfieldBASE" id="DESCRIZIONE" value="<?=$DESCRIZIONE?>" size="20" maxlength="500">
    </td>
    </tr>
    <tr>
    <td height="20" colspan="2" align="center" class="RedB">
    <input name="PRIMA" type="hidden" id="PRIMA" value="FALSE">
    <input type="submit" value="Registra" class="textfieldBASE" name="submit"></td>
    </tr>
    </table>
    </form></div>

    </body>
    </html>

    Il problema è tanto semplice, quanto grave non mi da la conferma della creazione (o di errore) ed ovviamente, non ci pensa neanche di registrare il cucciolo. E' come se il form non fosse mai stato compilato.

    Consigli?



    EDIT: Non capisco xke copiando il codice di registracuccioli.php,sul forum, la parte: "VALUES ('$CUCCIOLO','$RAZZA','$DESCRIZIONE','$ETA','$SESS O','$URLSESSO')"; " sesso viene "staccato",nel codice è scritto bene e se provo a riattaccarlo, me lo rimette cosi
    Ultima modifica di zannadiluna : 01-04-2006 alle ore 11.46.44

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Se ho letto bene il codice, tu vorresti notificare l'avvenuto o il fallito inserimento tramite un "alert" di JavaScript. Però ci sono un po' di incongruenze tra quello che intendevi fare e quello che invece hai dichiarato, eccoti un esempio:
    Codice PHP:
    //SE NE ESISTONO MENO DI 100 PASSO ALL'AGGIUNTA DEL CUCCIOLO
    if ($num_user == "100") {
    sicuro? Qui leggo che fai l'inserimento quando hai esattamente 100 cuccioli, non di meno... dovresti scrivere < invece di == (e magari togliere le virgolette da 100, visto che è un numero e non una stringa...)
    Codice PHP:
    }

    else if (
    $num_user == "101"){
    a questo punto questo test non diventa più necessario, avendo già supposto dal test prima (fallito) che ci siano più di 100 cuccioli. Quindi lascia semplicemente else.

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    Grazie per i consigli! :)
    Ma continua a non andare...

    Ora, a differenza di prima, l'alert da segni di vita, ma comunque componga il form di inserimento dati, mi da l'errore "il nome del cucciolo non è stato inserito correttamente".

  4. #4
    Guest

    Predefinito

    Ho letto solo parzialmente lo script, quella formattazione è un caos
    cmq non ti inserisce nulla perchè eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})",$DESCRIZIONE)
    questo va bene per un indirizzo email e non per una descrizione

    ti faccio poi notare che il tuo script ha seri problemi di sicurezza

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da Inverno
    Ho letto solo parzialmente lo script, quella formattazione è un caos
    cmq non ti inserisce nulla perchè eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})",$DESCRIZIONE)
    questo va bene per un indirizzo email e non per una descrizione

    ti faccio poi notare che il tuo script ha seri problemi di sicurezza
    Grazie!
    Effettivamente modificando quel punto, tutto ha preso a funzionare

    Per quanto riguarda invece la sicurezza, cosa intendi? Ed in che modo posso rimediare? (valuta che comunque il link sarà "nascosto" in qualche sottocartella e raggiungibile solo dall'admin tramite indirizzo diretto, quindi non recuperabile dall'interno del sito)

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Penso che Inverno si riferisca alla possibilità che qualcuno possa inserirti qualche dato del tipo:
    Codice:
    <IFRAME SRC="http://un-sito-pieno-zeppo-di-trojan-e-spyware.biz" STYLE="display:none"></IFRAME>
    o, più in generale, che qualcuno possa inserirti tutto il codice HTML che vuole. Per rimediare dovresti crearti una funzione (forse anche PHP ne ha qualcuna di standard che fa questo) che sostituisca i caratteri "pericolosi" (almeno i simboli < e >) con i rispettivi escape HTML (nell'esempio &lt; e &gt;). Poi, quando dovrai stampare i dati, semplicemente prima di farlo li "cripti" attraverso quella funzione.

    Se così non fosse, fate lumi... statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •