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

    Controllo informazioni e inserimento nel DB

    ho una pagina che controlla i dati di un form
    Codice PHP:
    <? 
        
    require ('config.php');
        
        if(
    $_POST['mail'] =! $_POST['mail2'])
        {
        echo
    "<span class=\"text\">[b]Le email inserite non coincidono![/b]</span>";
        }
        
        if(
    $_POST['pass'] =! $_POST['pass2'])
        {
        echo
    "<span class=\"text\">[b]Le password inserite non coincidono![/b]</span>";
        }
        
        if(
    $_POST['pass'] == '' or $_POST['pass2'] == '' )
        {
        echo
    "<span class=\"text\"><b<Non puoi lasciare il campo password vuoto![/b]</span>";
        }
        
        if(
    $_POST['mail'] == '' or $_POST['mail2'] == '' )
        {    
        echo
    "<span class=\"text\"><b<Non puoi lasciare il campo password vuoto![/b]</span>";
        }
        if(
    $_POST['user'] == '')
        {
        echo
    "<span class=\"text\">[b]Non puoi lasciare il campo username vuoto![/b]</span>";
        }
        if(
    $_POST['user'] == "$username")
        {
        echo
    "<span class=\"text\">[b]L'username scelto è già utilizzato![/b]</span>";
        }
        else        
        {
            
    $conn mysql_connect("$db_host","$db_user","$db_pass") or die ("Impossibile selezionare database");
        
                    
    mysql_select_db("$db_name"$conn) or die("Impostazioni connessione errate");    
              
                        
    $user $_POST['user'];
                        
    $pass $_POST['pass'];
                        
    $mail $_POST['mail'];
                        
    $date date("F j, Y, g:i a");
                        
                    
    $insert   mysql_query ("INSERT INTO `members` ( `user` , `pass` , `email` , `regdate` , `ban` ) VALUES ('$user', '$pass', '$mail', '$date', '0');");
                    
                    }
    ?>
    solo che non so come mai non funziona!che caspio ho sbajato???
    deve controllare tutto e se va tutto bene esegue l'inserimento e se la query va ok manda al login.
    ma non so se ho fatto bene
    Modalità curioso ON...attendere riavvio del sistema in corso...

    Errore nessuna tastiera trovata premere un tasto per continuare...

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    L'unica discriminante per l'inserimento nel database è solo l'ultima condizione.
    L'elenco di condizioni che hai fatto tu non sono esclusive, ovvero se c'è l'errore lo script si limita a segnalarlo.
    Ma se questa condizione ($_POST['user'] == "$username")
    dovesse risultare falsa, l'inserimento avverrà ugualmente, anche se tutte le condizioni precedenti risultassero vere.

    L'errore è nella logica.
    Anzichè usare una sfilza di if, prova a sostituirli con elseif

  3. #3
    e come devo fare allora?????
    Modalità curioso ON...attendere riavvio del sistema in corso...

    Errore nessuna tastiera trovata premere un tasto per continuare...

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Codice PHP:
    <? 
    require ('config.php');
    if(
    $_POST['mail'] =! $_POST['mail2']) {
     echo 
    "<span class=\"text\">[b]Le email inserite non coincidono![/b]</span>";
    }
    elseif(
    $_POST['pass'] =! $_POST['pass2']) {
     echo
    "<span class=\"text\">[b]Le password inserite non coincidono![/b]</span>";
     }
    elseif(
    $_POST['pass'] == '' or $_POST['pass2'] == '' ) {
     echo
    "<span class=\"text\"><b<Non puoi lasciare il campo password vuoto![/b]</span>";
    }
    else {
     
    $conn mysql_connect("$db_host","$db_user","$db_pass") or die ("Impossibile selezionare database");
     
    mysql_select_db("$db_name"$conn) or die("Impostazioni connessione errate");    
     
    $user $_POST['user'];
     
    $pass $_POST['pass'];
     
    $mail $_POST['mail'];
     
    $date date("F j, Y, g:i a");
     
    $insert mysql_query ("INSERT INTO `members` ( `user` , `pass` , `email` , `regdate` , `ban` ) VALUES ('$user', '$pass', '$mail', '$date', '0');");
    }
    ?>

  5. #5
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Anche se, personalmente, sono contrario all'uso continuato degli IF, se proprio vuoi lasciarli (per mostrare messaggi d'errore appropriati, di volta in volta) magari potresti crearti una funzione che oltre a mostrare il messaggio d'errore specifico in base alla condizione in cui si verifica l'errore, ti permette pure di bloccare l'esecuzione dello script stesso.

    Se ti va, prova in questo modo...
    (potrebbero esserci degli errori, controlla)
    Codice PHP:
    [font=courier new]<?php
    require('config.php');

    //questa funzione puoi includerla
    //per comodità nel file config.php
    function msg_error($msg)
    {
    echo 
    "<span class=\"text\">[b]$msg[/b]</span>
    "
    ;
    echo 
    "<a href=\"javascript:history.go(-1)\">Indietro</a>";
    exit(); 
    //interrompe l'esecuzione dello script...
    }

    //controllo se i dati sono stati inviati dal form
    if(isset($_POST['submit'])) {

    $mail $_POST['mail'];
    $mail2 $_POST['mail2'];
    $pass $_POST['pass'];
    $pass2 $_POST['pass2'];
    $user $_POST['user'];
    $date date("F j, Y, g:i a");

    if(
    $mail == '' || $mail2 == '')
    msg_error("Non puoi lasciare il campo mail vuoto!");

    if(
    $user == '')
    msg_error("Non puoi lasciare il campo username vuoto!");

    if(
    $pass == '' || $pass2 == '')
    msg_error("Non puoi lasciare il campo password vuoto!");

    if(
    $mail != $mail2)
    msg_error("Le email inserite non coincidono!");

    if(
    $pass != $pass2)
    msg_error("Le password inserite non coincidono!");

    if(
    $user == "$username") {
    msg_error("L'username scelto è già utilizzato!");

    } else {

    $conn mysql_connect($db_host$db_user$db_pass)
    or die(
    "Impossibile selezionare database");
    mysql_select_db($db_name$conn)
    or die(
    "Impostazioni connessione errate");

    $query "INSERT INTO
              `members` (`user`, `pass`, `email`, `regdate`, `ban`)
              VALUES
              ('
    $user', '$pass', '$mail', '$date', '0')";

    $insert mysql_query($query$conn)
              or die(
    mysql_error());
    }

    } else {
    //redirect alla pagina di provenienza (form)
    header("Location: registra.php");
    }
    ?>[/font]

  6. #6
    Originariamente inviato da neida
    Anche se, personalmente, sono contrario all'uso continuato degli IF, se proprio vuoi lasciarli (per mostrare messaggi d'errore appropriati, di volta in volta) magari potresti crearti una funzione che oltre a mostrare il messaggio d'errore specifico in base alla condizione in cui si verifica l'errore, ti permette pure di bloccare l'esecuzione dello script stesso.

    Se ti va, prova in questo modo...
    (potrebbero esserci degli errori, controlla)
    Codice PHP:
    [font=courier new]<?php
    require('config.php');

    //questa funzione puoi includerla
    //per comodità nel file config.php
    function msg_error($msg)
    {
    echo 
    "<span class=\"text\">[b]$msg[/b]</span>
    "
    ;
    echo 
    "<a href=\"javascript:history.go(-1)\">Indietro</a>";
    exit(); 
    //interrompe l'esecuzione dello script...
    }

    //controllo se i dati sono stati inviati dal form
    if(isset($_POST['submit'])) {

    $mail $_POST['mail'];
    $mail2 $_POST['mail2'];
    $pass $_POST['pass'];
    $pass2 $_POST['pass2'];
    $user $_POST['user'];
    $date date("F j, Y, g:i a");

    if(
    $mail == '' || $mail2 == '')
    msg_error("Non puoi lasciare il campo mail vuoto!");

    if(
    $user == '')
    msg_error("Non puoi lasciare il campo username vuoto!");

    if(
    $pass == '' || $pass2 == '')
    msg_error("Non puoi lasciare il campo password vuoto!");

    if(
    $mail != $mail2)
    msg_error("Le email inserite non coincidono!");

    if(
    $pass != $pass2)
    msg_error("Le password inserite non coincidono!");

    if(
    $user == "$username") {
    msg_error("L'username scelto è già utilizzato!");

    } else {

    $conn mysql_connect($db_host$db_user$db_pass)
    or die(
    "Impossibile selezionare database");
    mysql_select_db($db_name$conn)
    or die(
    "Impostazioni connessione errate");

    $query "INSERT INTO
              `members` (`user`, `pass`, `email`, `regdate`, `ban`)
              VALUES
              ('
    $user', '$pass', '$mail', '$date', '0')";

    $insert mysql_query($query$conn)
              or die(
    mysql_error());
    }

    } else {
    //redirect alla pagina di provenienza (form)
    header("Location: registra.php");
    }
    ?>[/font]
    mi rimanda sempre a registra.php senza mostrare errori o inserire niente nel DB
    Modalità curioso ON...attendere riavvio del sistema in corso...

    Errore nessuna tastiera trovata premere un tasto per continuare...

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Aspe'... fammi capire una cosa...

    Hai 2 pagine, giusto?

    In una hai il form e nell'altra lo script per elaborare i dati, giusto?

    Se è così, nella pagina dove hai il form, aggiungi l'attributo name del submit del form:
    codice:
    <input type="submit" name="submit" value="Registra">
    altrimenti isset() non funzionerebbe...

  8. #8
    register.php

    <html>
    <body></body></html><link href="style.css" rel="stylesheet" type="text/css">
    <center></center><form action="create_account.php" method="post" name="reg" id="reg">
    <table width="839" border="0" cellpadding="0" cellspacing="0" class="text">
    <tr>
    <td>[img]images/blue-box_left.gif[/img]</td>
    <td background="/images/blue-box_repeat.gif">Registrati[img]images/arrow.gif[/img]</td>
    <td>[img]images/blue-box_right.gif[/img]</td>
    </tr>
    <tr bgcolor="#C5DBED" class="blue_box">
    <td width="17"><span class="Stile1"></span><span class="Stile1"></span><span class="Stile1"></span><span class="Stile1"></span><span class="Stile1"></span></td>
    <td width="799">
    <table width=688 border=\"0\" cellpadding=1 cellspacing=1 class=text>
    <tr>
    <td colspan="3">Impostazioni utente </td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td>

    </p></td>
    <td><span class="alert">*</span>Username</td>
    <td></td>
    </tr>
    <tr>
    <td width="148"></td>
    <td width="280"><input name="user" type=text class=logger size="40" maxlength="32"></td>
    <td width="285"></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td><span class="alert">*</span>Password</td>
    <td><span class="alert">*</span>Ripeti password</td>
    </tr>
    <tr>
    <td></td>
    <td><div align="left">
    <input name="pass" type=password class=logger id="pass" size="40" maxlength="32">
    </div></td>
    <td><input name="pass2" type=password class=logger id="pass2" size="40" maxlength="32"></td>
    </tr>
    <tr>
    <td></td>
    <td><div align="left"></div></td>
    <td></td>
    </tr>
    <tr>
    <td colspan="3">Impostazioni email
    <div align="left"></div></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td><span class="alert">*</span>Email</td>
    <td><span class="alert">*</span>Ripeti e mail</td>
    </tr>
    <tr>
    <td></td>
    <td><input name="mail" type=text class=logger id="mail" size="40" maxlength="100"></td>
    <td><input name="mail2" type=text class=logger id="mail2" size="40" maxlength="100"></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td colspan="3"></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td><div align="center">
    <input name="Submit" type="submit" class="logger" value="Prosegui">
    </div></td>
    <td></td>
    </tr>
    </table></td>
    <td width="23"><span class="Stile1"></span><span class="Stile1"></span><span class="Stile1"></span></td>
    </tr>
    <tr bgcolor="#C5DBED">
    <td><span class="Stile1"></span></td>
    <td><span class="Stile1"> </span></td>
    <td><span class="Stile1"></span></td>
    </tr>
    <tr bgcolor="#C5DBED">
    <td><span class="Stile1"></span></td>
    <td><span class="Stile1"></span></td>
    <td><span class="Stile1"></span></td>
    </tr>
    <tr>
    <td class="alert">[img]images/blue-box_down_left.gif[/img]</td>
    <td bgcolor="#C5DBED" class="advisory"></td>
    <td>[img]images/blue-box_down_right.gif[/img]</td>
    </tr>
    </table>
    </form>
    </body>
    </html>


    create_account.php
    Codice PHP:
    <?php
    require('config.php');

    function 
    msg_error($msg)
    {
    echo 
    "<span class=\"text\">[b]$msg[/b]</span>
    "
    ;
    echo 
    "<a href=\"java script:history.go(-1)\">Indietro</a>";
    exit();
    }

    if(isset(
    $_POST['submit'])) {

    $mail $_POST['mail'];
    $mail2 $_POST['mail2'];
    $pass $_POST['pass'];
    $pass2 $_POST['pass2'];
    $user $_POST['user'];
    $date date("F j, Y, g:i a");
    $passmd md5('$pass');

    if(
    $mail == '' || $mail2 == '')
    msg_error("Non puoi lasciare il campo mail vuoto!");

    if(
    $user == '')
    msg_error("Non puoi lasciare il campo username vuoto!");

    if(
    $pass == '' || $pass2 == '')
    msg_error("Non puoi lasciare il campo password vuoto!");

    if(
    $mail != $mail2)
    msg_error("Le email inserite non coincidono!");

    if(
    $pass != $pass2)
    msg_error("Le password inserite non coincidono!");

    if(
    $user == "$username") {
    msg_error("L'username scelto è già utilizzato!");

    } else {

    $conn mysql_connect("$db_host$db_user$db_pass")
    or die(
    "Impossibile selezionare database");
    mysql_select_db("$db_name"$conn)
    or die(
    "Impostazioni connessione errate");

    $query "INSERT INTO
              `members` (`user`, `pass`, `email`, `regdate`, `ban`)
              VALUES
              ('
    $user', '$passmd', '$mail', '$date', '0')";

    $insert mysql_query($query$conn)
              or die(
    mysql_error());
    }

    } else {

    header("Location: index.php?page=register.php");
    }
    ?>
    non inserisce niente e non da nessun errore manda solo a register.php con l'header
    Modalità curioso ON...attendere riavvio del sistema in corso...

    Errore nessuna tastiera trovata premere un tasto per continuare...

  9. #9
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Devi sostituire
    codice:
    <input name="Submit" type="submit" class="logger" value="Prosegui">
    con
    codice:
    <input name="submit" type="submit" class="logger" value="Prosegui">
    (le variabili sono case-sensitive)

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.