Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Pillola Login

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    Pillola Login

    ciao a tutti,

    secondo voi è giusto connettersi cosi

    file conn.php
    codice:
    <?php
    $hostname_conn = "localhost";
    $database_conn = "Sql71161_1";
    $username_conn = "miauser";
    $password_conn = "miapassw";
    $conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR); 
    ?>
    funzione per connettermi
    codice:
    function connetti() { 
    	require_once('../Connections/conn.php');
        $connessione = mysql_connect($hostname_conn,$username_conn,$password_conn) or die("Impossibile collegarsi al server MySQL."); 
        mysql_select_db($database_conn,$connessione) or die("Impossibile selezionare il database $dbname"); 
        return $connessione; 
    }
    sto tentando di fare un login seguendo questa pillola, adesso ho sitemato la connessione cosi ma se provo a loggarmi mi dà questo errore
    codice:
    Fatal error: Call to undefined function: check() in c:\appserv\www\html\login.php on line 3
    :master:

  2. #2
    oltre a fare 2 connessioni inutilmente, visto che il file conn.php fa gia' una cossessione al db, non si vede dove usi la funzione check

    <?php
    $hostname_conn = "localhost";
    $database_conn = "Sql71161_1";
    $username_conn = "miauser";
    $password_conn = "miapassw";
    $conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn);
    ?>



    codice:
    function connetti($dbname) { 
    	require_once('../Connections/conn.php');
    	mysql_select_db($dbname, $conn);
        	return $conn;
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie

    ma continua a dare errore sulla funzione
    codice:
    function check($ip) { 
        $conn = connetti(); 
        $ora = @time()+60*5; 
        $query = mysql_query("UPDATE utenti_online SET tempo='$ora' WHERE ip='$ip'",$conn) or die( "Errore allungamento tempo: " . mysql_error() ); 
        $ora = @time(); 
        $query = mysql_query("SELECT id FROM utenti_online WHERE tempo<'$ora'",$conn) or die( "Errore utenti fuoritempo: " . mysql_error() ); 
        while ($info = mysql_fetch_row($query)) { 
            $elim = mysql_query("DELETE FROM utenti_online WHERE id='$info[0]' LIMIT 1",$conn) or die( "Errore eliminazione utenti online: " . mysql_error() ); 
        } 
        disconnetti($conn); 
    }
    e poi viene richiamata cosi
    codice:
    check($REMOTE_ADDR);
    mica può dipendere dal fatto che lo provo in locale?
    :master:

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    allora certo di ricapitolare...

    il file di connessione
    Codice PHP:
    $hostname_conn "localhost";
    $database_conn "Sql71161_1";
    $username_conn "";
    $password_conn "";
    $conn mysql_connect($hostname_conn$username_conn$password_conn) or die("Impossibile collegarsi al server MySQL."); 
    il file funzioni.inc.php

    Codice PHP:
     <? 
    function connetti() { 
        require_once(
    '../Connections/conn.php');
        
    mysql_select_db($database_conn$conn);
        
    $connessione $conn;
            return 
    $connessione;
    }


    function 
    disconnetti($connessione) { 
        
    mysql_close($connessione); 


    function 
    intestazione() { 
    ?> 
    <html> 
    <head> 
    <title>Titolo del sito</title> 
    </head> 
    <body> 
    <? 


    function 
    finepag() { 
    ?> 
    </body> 
    </html> 
    <? 


    function 
    controllo($user$passw) { 
        
    $conn connetti(); 
        
    $query mysql_query("SELECT id_utente,pass FROM utenti WHERE nick='$user'",$conn) or die( "Errore ricerca pass: " mysql_error() ); 
        
    $info mysql_fetch_assoc($query); 
        
    disconnetti($conn); 
        if (
    $info['pass']==$passw) { 
            return 
    $info[id_utente]; 
        } else { 
            return 
    0
        } 


    function 
    checkIP($ip) { 
        
    $conn connetti(); 
        
    $query mysql_query("SELECT nick FROM utenti INNER JOIN utenti_online ON utenti.id_utente=utenti_online.id_utente WHERE ip='$ip'",$conn) or die( "Errore controllo ip: " mysql_error() ); 
        
    $info mysql_fetch_row($query); 
        
    disconnetti($conn); 
        return 
    $info[0]; 


    function 
    check($ip) { 
        
    $conn connetti(); 
        
    $ora = @time()+60*5
        
    $query mysql_query("UPDATE utenti_online SET tempo='$ora' WHERE ip='$ip'",$conn) or die( "Errore allungamento tempo: " mysql_error() ); 
        
    $ora = @time(); 
        
    $query mysql_query("SELECT id FROM utenti_online WHERE tempo<'$ora'",$conn) or die( "Errore utenti fuoritempo: " mysql_error() ); 
        while (
    $info mysql_fetch_row($query)) { 
            
    $elim mysql_query("DELETE FROM utenti_online WHERE id='$info[0]' LIMIT 1",$conn) or die( "Errore eliminazione utenti online: " mysql_error() ); 
        } 
        
    disconnetti($conn); 

    ?>
    la pagina login.php
    Codice PHP:
    <? 
    include 'funzioni.inc.php'
    check($REMOTE_ADDR); 
    intestazione(); 
    ?> 
    [b]Pagina di Log In[/b]
     
    <? 
    $ris 
    checkIP($REMOTE_ADDR); 
    if (
    $ris) { 
        print 
    "Ciao $ris, eri già loggato. Vai alla home page.

    "

    } else { 
        if  (
    $id=controllo($_POST['user'],$_POST['passw'])) { 
            
    $conn connetti(); 
            
    $dataEntr = @time()+60*10// 60 sec * 10 minuti 
            
    $query mysql_query("INSERT INTO `utenti_online` (`id_utente`,`ip`,`tempo`) VALUES ('$id','$REMOTE_ADDR','$dataEntr')",$conn) or print mysql_error(); 
            
    disconnetti($conn); 
            echo 
    "Utente connesso. Vai alla home page.

    "

            } else { 
                print 
    "Attenzione il nick o la password inseriti non sono esatti!

    "

          } 


    finepagina(); 
    ?>
    e ricevo questo errore
    codice:
    Pagina di Log In
    
    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in c:\appserv\www\html\funzioni.inc.php on line 4
    
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\appserv\www\html\funzioni.inc.php on line 45
    Errore controllo ip:
    sia in locale che on-line

    che posso fare?

  5. #5
    perche' fare 10 connessioni in una sola pagina quando ne basta una per un intero forum ?

    perche' connetti e sconnetti di continuo in ogni funzione ?

    perche' modifichi la mia funzione aggiungendo questo
    $connessione = $conn;
    return $connessione;
    quando e' completamente inutile fare quello poiche' bastava il solo
    return $conn
    ed eimini il nome del database passato a funzione impedendo a check di connettersi e selezionare il database ?


    queste ed altre 1000 domande prossimamente su questo 3D


    scherzi a parte, non fare 10 connetti e sconnetti in uno script, non fare copie di variaibli locali o globali che siano in una funzione se non ti servono a niente e non modificare, se non dopo aver capito bene cosa fanno, gli script degli altri.

    inoltre ti consiglio di usare le super globali $_SERVER['REMOTE_ADDR'] poiche' easyphp a parte, praticamente tutti gli host hanno register_global a off (perche' a on sono pericolose) e $REMOTE_ADDR risulterebbe inesistente .


    Detto questo, elimina la funzione connetti, fai un require di conn.php a inizio script e il selec db subito dopo, poi, solo alla fine della pagina o dello script fai un mysql_close($conn) e passa $conn a tutte le funzioni che devono fare query, passalo per riferimento magari .. ma probabilmente sto' esagerando


    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    scusami tu hai sicuramente ragione ma io sto studiando una vostra pillola... quel codice non l'ho fatto io lo sto tentando di far funzionare per poi capirlo passo passo...

    da qualche parte devo pur studiare.. l'unica cosa che sto modificando è la connessione in quanto vorrei sfuttare la stassa che gia uso in altre pagine

    la pillola a cui mi riferisco è questa

    se hai da consigliarmi qualcosa dove posso studiare un modo per fare il login sicuro ti prego indicamela


  7. #7
    Originariamente inviato da Rossella_75
    la pillola a cui mi riferisco è questa
    con tutto il rispetto per quei bei tempi ... quella pillola e' del 2002 e come potrai leggere dopo, e' stata stracommentata ed un po' criticata.

    Cio' non toglie niente al valido aiuto dato al tempo da quella pillola ma se vuoi un consiglio spassionato, lasciala perdere.


    Originariamente inviato da Rossella_75
    se hai da consigliarmi qualcosa dove posso studiare un modo per fare il login sicuro ti prego indicamela
    login sicuro ? .... veramente complicato se non conosci sessioni in database, javascript o https , login normale ?
    ti basta un form , verificare che nome utente e password siano validi e in caso salvarli sul cookie del cliente (non sulle sessioni) con scadenza 20 minuti e aggiornamento ad ogni pagina dell' area protetta dove per ogni sezione o ogni sotto pagina., dovrai riverificare che nome utente e password sono presenti in database, altrimenti sarebbe troppo facile entrare da esterno
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    grazie mille
    hai un link dove posso studiare un'esempio o qualcosa di simile?


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.