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

    Problema convalida email e ordine

    Ho un problema che hanno tutti arrivati a questo punto.
    Ho creato una pagina per modificare il proprio profilo, e quindi le password uguali per modificare nel database mysql.
    Ho 2 problemi:
    1) sta nel fatto che se le password sono diverse, e modifico un campo me lo cambia lo stesso.
    2) sta nel fatto che nonostante ci sia il controllo dell'email non lo legga e quindi salva nel db anche se è scritto "123".
    codice:
    <?
    session_start();
    
    if(!isset($_SESSION["username"])){
    	include("error.htm");
    	die();
    }
    
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     "http://www.w3.org/TR/html4/loose.dtd">
    <html>
      <head>
    <SCRIPT language="JavaScript">
    function ControllaMail()
       {
       EmailAddr = document.modulo.email.value;
       Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
       if (Filtro.test(EmailAddr))
          return true;
       else
          {
          alert("Controlla l'indirizzo di e-mail inserito");
          document.modulo.email.focus();
          return false;
          }
       }
    </SCRIPT>
    <SCRIPT LANGUAGE="JavaScript">
    function verifForm(formulaire)
      {
      if(formulaire.password.value == "") 
        alert('Non hai compilato tutti i campi richiesti!'); 
      else
        formulaire.submit();
    }
    function verifForm(formulaire)
     {
      if(formulaire.password2.value == "") 
        alert('Non hai compilato tutti i campi richiesti!'); 
      else
        formulaire.submit();
    }
    function verifForm(formulaire)
     {
      if(formulaire.email.value == "") 
        alert('Non hai compilato tutti i campi richiesti!'); 
      else
        formulaire.submit();
    }
    </SCRIPT>
    
    
    
    <script language="Javascript" type="text/javascript">
    function controllapassword(modulo) {
    if (modulo.password.value == "") {
    alert("Errore: inserire una password!")
    modulo.password.focus()
    return false
    }
    if (modulo.password.value != modulo.password2.value) {
    alert("La passord inserita non coincide con la prima!")
    modulo.password.focus()
    modulo.password.select()
    return false
    }
    return true
    }
    </script>
    
    
    <style>
    body { background-image:URL(images/sfondocn.JPG);
    background-attachment:fixed; }
    </style>
    <style type="text/css">
    A{text-decoration:none} 
    </style>
    	<title>Profilo <?
    echo "".$_SESSION["username"]."";
    	  ?> - Forix Forum</title>
      </head>
      <body background="images/sfondocn.JPG" text="red" vlink="white" link="white">
    <? 
    $host="miohost"; 
    $user="miouser"; 
    $password="miapass"; 
    $database="miodb"; 
    mysql_connect($host,$user,$password)or die("connessione non riusciuta"); 
    mysql_select_db($database)or die("Database non trovato");
    $user = $_SESSION["username"];
    $querystr = "SELECT * FROM pannellomod WHERE username = '".$user."'";
    if ($_GET['azione'] == "esegui"){
    	mysql_query(" 
            UPDATE pannellomod 
            SET nome = '" . $_POST['nome'] . "', cognome = '" . $_POST['cognome'] . "', email = '" . $_POST['email'] . "', 
                     annonascita = '" . $_POST['annonascita'] . "', 
                     genere = '" . $_POST['genere'] . "', skype = '" . $_POST['skype'] . "'  
                     
            WHERE username = '".$user."' 
                 ");
    	if (mysql_error()){ echo mysql_error();}
    }
    ?>
    
    
    <form name="modulo" id="test" action="profilo.php?azione=esegui" method="post" onsubmit="return controllapassword(this)" onSubmit="return ControllaMail()">
    <input type="hidden" name="done" /> 
        
    
    <font size="5">Modifica Profilo</font></p>
        
    
    <font size="3">Nickname:</font></p>
        
    
    <input name="nickname" readonly value=<?
    echo "".$_SESSION["username"]."";
    	  ?>>
        
    
    Password: *</p>
        
    
    <input type="password" name="password"value=<?
    echo "".$_SESSION["password"]."";
    	  ?>></p>
        
    
    Inserisci nuovamente password: *</p>
        
    
    <input type="password" name="password2"></p>
        
    
    Nuova Password:</p>
        
    
    <input type="password" name="newpasword"></p>
        
    
    E-mail:</p>
        
    
    <input name="email" value="<?
    $querymail=mysql_query("SELECT * FROM pannellomod WHERE username = '".$user."'"); 
    $res=mysql_fetch_assoc($querymail); 
    echo $res['email'];
    ?>"></p>
        <input type="submit" value="   OK   " onClick="verifForm(this.form)">
        <input type="button" value="Annulla" onclick="document.location = 'java-script:history.back()';">
        
    
     </p>
        
    
    Altre informazioni:</p>
        
    
    Nome:</p>
        
    
    <input name="nome" value="<?
    $query=mysql_query("SELECT * FROM pannellomod WHERE username = '".$user."'"); 
    $res=mysql_fetch_assoc($query); 
    echo $res['nome'];
    ?>"></p>
        
    
    Cognome:</p>
    
    
    <input name="cognome" value="<?
    $query=mysql_query("SELECT * FROM pannellomod WHERE username = '".$user."'"); 
    $res=mysql_fetch_assoc($query); 
    echo $res['cognome'];
    ?>"></p>
    
    <?php
    $result = mysql_query("  
            select * 
            from pannellomod  
            WHERE username = '".$user."'  
            LIMIT 1") or die(mysql_error()); 
    $righi = mysql_fetch_array($result); 
    $ciao=$righi['annonascita'];
    $data_di_nascita_utente = $ciao;
    echo '<select name="annonascita">'; 
    echo '<option>Data di nascita</option>'; 
    for($i=1910; $i<=date('Y'); $i++) 
        { 
        $select = ''; 
        if($i ==  $data_di_nascita_utente) 
            { 
            $select = ' selected'; 
            } 
        echo ' 
            <option value="'.$i.'"'.$select.'>'.$i.'</option>'; 
        } 
    echo '</select>' 
    ?>
        
    
    Tuo Genere:</p>
         Maschile:<input type="radio" name="Sex" value="1">
    
         Femminile:<input type="radio" name="Sex" value="2">
        
        
    
    Indirizzo MSN:</p>
        
    
    <input name="messenger" value="<?
    $query=mysql_query("SELECT * FROM pannellomod WHERE username = '".$user."'"); 
    $res=mysql_fetch_assoc($query); 
    echo $res['messenger'];
    ?>"></p>
        
    
    Indirizzo Skype:</p>
        
    
    <input name="skype" value="<?
    $query=mysql_query("SELECT * FROM pannellomod WHERE username = '".$user."'"); 
    $res=mysql_fetch_assoc($query); 
    echo $res['skype'];
    ?>"></p>
        <font size="1"><input type="submit" value="   OK   " onClick="verifForm(this.form)"></font>
    <input type="button" value="Annulla" onclick="document.location = 'java-script:history.back()';">
    
        
    
    <font size="2">Dov'e' scritto * il campo e' obbligatorio.</font></p></form>
               <div>
             
          </div>
          <div>
             
          </div>
          <div>
             
          </div>
          <div>
             
          </div><div>
             
          </div><div>
             
          </div>
        </center>
        <div align="center">
    
        </div>
        <p align="center"><font color="red">Copyright &copy; 2010 <a href="contattaci.php">Luigi
        Parziale (ixol)</a> & DarkLeo - Forix Creations</font></p>
     
    
    
    
    
    
    </body>
    </html>
    Grazie a chi riuscirà ad aiutarmi

  2. #2
    :O modificando un pò il codice per inserire i 2 onsubmit ora non va più neanche il codice per i campi mancanti...

  3. #3
    up aiuto per favore

  4. #4
    uo, è urgente, come faccio a unire 2 o più onsubmit??

  5. #5
    Originariamente inviato da ixol
    uo, è urgente, come faccio a unire 2 o più onsubmit??
    Certo, ora hai capito!
    Tu hai due function separate che fanno controlli e ovviamente
    tu vuoi che il submit avvenga solo se entrambe passano i controlli!
    Considerando che di eventi onsubmit ne puoi mettere solo uno,
    la soluzione &egrave;
    codice:
    <form name="modulo" id="test" action="profilo.php?azione=esegui" method="post" onsubmit="return controllapassword(this) && ControllaMail();">
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da ixol
    uo, è urgente, come faccio a unire 2 o più onsubmit??
    questo non e' un helpdesk privato

    non piu' di un up al giorno
    l' urgenza del tuo problema non rende la tua discussione piu' importante delle altre qui presenti

    adeguati o sarai allontanato

  7. #7
    Grazie zappa, ma comunque ciò che è scritto dopo && non va, non capisco!
    Spostando al primo posto ControllaMail(); funziona quella ma non va l'altra!

    xinod mi dispiace, lo so che è possibile fare solo un up al giorno, ma sono giorni che provo a risolvere e non capisco, e devo consegnare il sito entro la fine del mese.
    Ancora scusa

  8. #8
    Tu cosa vuoi che succeda?
    vuoi che le due funzioni vengano comunque eseguite entrambe anche se la prima va male?
    oppure ti basta che vada male la prima per allertare l'Utente, farlo correggere, e solo dopo che la prima va bene procedere con il controllo della seconda?

    Nel caso tu le voglia SEMPRE eseguire entrambe, allora ti fai una terza funzione:
    codice:
    function ControllaTutto(modulo) {
        var ritorno = true;
        ritorno &amp;= controllapassword(modulo); // se controllapassword ritorna false,
                                              // ritorno diventa false (era true)
        ritorno &amp;= ControllaMail();           // se ControllaMail ritorna true, 
                                              // ritorno rimane com'era, altrimenti
                                              // diventa false
        return ritorno;
    }
    Poi, ovviamente cambi l'onsubmit:
    codice:
    <form name="modulo" id="test" action="profilo.php?azione=esegui" method="post" onsubmit="return ControllaTutto(this);">
    HTH
    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  9. #9
    Mi accorgo solo ora che:
    • Hai ben 3 (tre) funzioni in javascript con lo stesso nome (verifForm): vietato!
    • Hai un po' troppi tag <script> aperti e chiusi! Apri all'inizio, scrivi tutto il javascript che ti pare, poi chiudi alla fine!


    Zappa
    [PC:Presario 2515EU][Cpu:P4@2.3GHz][Ram: 512M][HDU:80G@5400 RPM]
    [Wireless:LinkSys][OS: Ubuntu 9.04 - Jaunty Jackalope]

  10. #10
    grazie, infatti fa tutto e mi serviva, ma ora ho un altro problema:
    anche se esce il messaggio d'errore mi salva i dati nel db.
    dove devo modificare quindi il javascript in modo che invece di fare il submit dopo l'alert mi ricarichi la pagina?
    Grazie ancora per il tuo aiuto

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.