• User Newbie

    Ragazzi sono nuovo...Allora ho provato ad utilizzare il codice però ho qualche problema..Ecco cosa mi esce fuori:

    Warning: session_start() [function.session-start]: open(C:/php/sessionfiles\sess_r6ka3fr1sp189nt9ni9dfbnrv6, O_RDWR) failed: No such file or directory (2) in C:\www\login\Login\config.php on line 2
    Non hai fatto il login correttamente, mi spiace riprova o iscriviti
    Warning: Unknown: open(C:/php/sessionfiles\sess_r6ka3fr1sp189nt9ni9dfbnrv6, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

    Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:/php/sessionfiles) in Unknown on line 0Mi potreste aiutare?

    EDIT: Ho risolto il problema precedente creando una cartella "sessionfiles" nella root di php....Adesso il problema è che lo script non mi funziona...mi da sempre username e password errate...ho anche provato a togliere la md5 ma non funziona lo stesso...:x

    EDIT 2: Ok tutto risolto...ho dovuto modificare un po il codice ma adesso funziona...se serve ve lo posto...


  • User Attivo

    ciao Darkito e benvenuto nel forum.

    Posta pure il codice si ti và, potrebbe essere utile ad altri.


  • User Newbie

    Ho dovuto modificare lo script login.php
    Ecco il codice:

    File login.php
    [php]<?php

    //includo il file di Configurazione con session_start()) dentro
    include "config.php";

    $userid=trim($_POST['username']);
    $pass=trim($_POST['password']);

    //Eseguo una query nella tabella utenti verificando se esiste l'username con quella password.
    // codice vulnerabile...converebbe introdurre codice anti inject codes..
    $query = mysql_query("SELECT username FROM utenti WHERE username = '".$_POST['username']."' AND password = '".md5($_POST['password'])."'");
    $var=mysql_num_rows($query);
    //se esiste l'account registra la sessione
    if($var==1)
    {
    //metto l'username nella variabile di sessione "username"
    $_SESSION['username'] = $_POST['username'];
    //Faccio il redirect nella pagine enter.php
    echo "<script>
    window.location = "enter.php"
    </script>";
    }
    else
    {
    //Faccio il redirect nella pagine enter.php
    //Questa sezione può contenere l'implementazione della parte di codice relativa al login errato.
    echo "<script>
    window.location = "enter.php"
    </script>";
    }
    ?>
    [/php]


  • User Attivo

    Grazie darkito sarà un utile feedback per altri utenti


  • User

    scusami DARKITO ma a cosa ti servono

    $userid=trim($_POST['username']);
    $pass=trim($_POST['password']);

    e poi io ho un problema, ti scrivo i miei passi:

    1)uso easyphp in locale e quindi ho scaricato il codice, unzippato nella cartella
    WWW/Login/
    2)ho creato il db con phpmyadmin creando un utente con tutti i privilegi
    username= 'log'
    password= 'log'
    ed ho creato il db nominato 'logdb'
    3)ho creato la tabella 'utenti' con campi 'username' e 'password'
    4)inserito allinterno della tabella i valori 'renato','renato'
    5)ho settato config.php cosi:

    <?php
    session_start();

    $database_name = "logdb";
    $nomeutente = "log";
    $password = "log";

    $connection = mysql_connect( 'localhost', $nomeutente, $password) or die('Could not connect to server.' );
    mysql_select_db($database_name, $connection) or die('Could not select database.');
    ?>

    6)ora quando vado a fare il login ed inserisco renato renato mi esce la pagina con

    Non hai fatto il login correttamente, mi spiace riprova o iscriviti

    Ora mi sai spiegare il perchè?

    p.s. ho fatto tutte le modifiche sopra descritte :mmm:


  • User Attivo

    Ciao pizzet e benvenuto nel forumGT

    Per quanto riguarda **trim **serve a togliere gli spazi all'interno della stringa.

    Per quanto riguarda il secondo punto dovrebbe essere un problema di configurazione del server.

    Potrebbero essere le sessioni non abilitate.


  • User

    grazie per la tua velocità
    cmq se non l'avessi capito non sono un veterano del php ma solo un dilettante.
    Mi potresti spiegare come configurare le sessioni????

    🙂


  • User Attivo

    visto che non lo hai scritto... hai fatto l'iscrizione prima?


  • User

    no ho inserito direttamente i campi nel database quindi dovrebbe trovare l'utente renato quando va a fare la query per il login
    Sbaglio???


  • User Newbie

    @pizzet said:

    no ho inserito direttamente i campi nel database quindi dovrebbe trovare l'utente renato quando va a fare la query per il login
    Sbaglio???

    Forse ho capito quale è il tuo errore...Nell'inserimento molto probabilmente hai inserito la passwordo senza la crittazione MD5 per questo quando cerchi renato renato non ti fa il log-in. Puoi risolvere in due modi:
    1- Modificando la query originale togliendo la crittazione MD5

    [php]$query = mysql_query("SELECT username FROM utenti WHERE username = '".$_POST['username']."' AND password = '"$_POST['password']."'");[/php]2- Inserendo i dati in questo modo..riporto pure la tabella a cui fa riferimento l'inserimento

    
         CREATE TABLE utenti (
          id INT(4) NOT NULL AUTO_INCREMENT,
          username VARCHAR(65) NOT NULL DEFAULT '',
          password VARCHAR(65) NOT NULL DEFAULT '',
            PRIMARY KEY (id,username)
    
          ) ;
     
        INSERT INTO `utenti` VALUES (1, 'admin', md5('admin'));
    
    
    
    ```Spero di essere stato utile

  • User

    Mi inchino a te!!!!!

    Grazie sei stato grande

    ora invece provo a vedere se riesco a fare la registrazione oppure esiste già lo script inoltre io volevo inserire la funzione in cui l'user volesse modificare dei suoi campi(es.email) hai qualche idea.


  • User Newbie

    @pizzet said:

    Mi inchino a te!!!!!

    Grazie sei stato grande

    ora invece provo a vedere se riesco a fare la registrazione oppure esiste già lo script inoltre io volevo inserire la funzione in cui l'user volesse modificare dei suoi campi(es.email) hai qualche idea.

    Per la registrazione io uso questo script
    [PHP]<?php
    require 'config.ini.php';
    require 'connection.php';

        $nome=trim($_POST['nome']);
        $cognome=trim($_POST['cognome']);
        $codice_fiscale=trim($_POST['codice_fiscale']);
        $via=trim($_POST['via']);
        $civico=intval($_POST['civico']);
        $telefono=trim($_POST['telefono']);
        $citta=trim($_POST['citta']);
        $regione=trim($_POST['regione']);
        $userid=trim($_POST['userid']);
        $pwd=trim($_POST['pwd']);
        
        
        
        $query = "INSERT INTO membro (nome,cognome,codice_fiscale,via,civico,telefono,citta,regione)
        VALUES ('$nome','$cognome','$codice_fiscale','$via',$civico,'$telefono','$citta','$regione')";
        $result=mysql_query($query);
        if (!$result) {  
            die("Impossibile inserire i dati" . mysql_error());  
            
        }  
        $query= "INSERT INTO account (codice_fiscale,userid,pwd,,tipoacc,valido) 
        VALUES ('$codice_fiscale','$userid','$pwd','user',0)";
        $result=mysql_query($query);
        if (!$result) {  
            die("Impossibile creare l'account" . mysql_error());  
            
        }  
        
        echo "Dati Inseriti";
        
        mysql_close();
    

    ?>[/PHP]
    Nel tuo caso dovresti inserire un campo mail. Per quanto riguarda la modifica dei campi non saprei....potresti adottare varie strategie..Quella che mi viene in mente adesso è di cancellare il vecchio record ed inserire quello con i campi aggiornati..Ma per questo punto passo la palla a chi ne sa più di me visto che anche io sono alle prime armi con php e non lo conosco nel dettaglio..magari esiste qualche funzione che ti permette di modificare i valori di un record...


  • User

    lo scrpt così com'era non mi girava.. ho apportato qualche piccola modifica: come faccio a postarlo?? se lo copio e incollo non me lo mostra...


  • User Attivo

    ciao Gigi la Trottol e benvenuto nel forumGT.

    riprova un CTRL-C CTRL-V dovrebbe funzionare ..poi racchiudi il codice cliccando sul tag php accanto a quello di youtube.

    Se vuoi specifica anche casa era che non ti funzionava...

    Grazie


  • User

    sentite io l'ho risolta così e funziona

    il primo file è config.php
    [PHP]
    <?php
    session_start();

    $server = "localhost" ;
    $username = "" ;//il tuo username per accedere al db
    $password = "" ;//la tua password
    $database = "" ;//ed il nome del tuo db

    $link = mysql_connect($server,$username,$password) or die("Connessione non riuscita: " . mysql_error()); // si collega al db generale

    mysql_select_db($database, $link); //sceglie il database

    ?>

    [/PHP]

    poi ho creato un pulsante MODIFICA nella pannello dell'user che mi rimandasse al file modifyregister.php così fatto
    [PHP]
    <form action="modifyclient.php" method="post">
    <input type="submit" value="Modifica account">
    </form>
    [/PHP]

    e questo è modifyclient.php

    [PHP]
    <?php
    include ("config.php");
    include ("basetop.php");
    ?>

            Modifica account<br/><br/>
            <div class="box_data" align="left">
    

    <?php

    $query = mysql_query("SELECT * FROM tid_client WHERE ID='".$_SESSION["id"]."'")or die("ID errato: " . mysql_error());
    $numrows = mysql_num_rows($query);
    for($x=0; $x<$numrows; $x++){

    //Recupero il contenuto di ogni record rovato
    $resrow = mysql_fetch_row($query);
    $id = $resrow[0];
    $_SESSION["palid"] = $resrow[1];
    $_SESSION["name"] = $resrow[2];
    $_SESSION["surname"] = $resrow[3];
    $_SESSION["email"] = $resrow[4];
    $_SESSION["address"] = $resrow[5];
    //Stampo il risultato
    print "account ID: <b>" . $id . "</b><br>";
    }
    ?>

    <form action="modifyregister_client.php" method="post">
    <input type="hidden" name="id" value=" <?php echo $_SESSION["id"] ?> ">
    <input type="text" name="account" value=" <?php echo $_SESSION["palid"] ?> "> accont PayPal<br/>
    <input type="text" name="name" value="<?php echo $_SESSION["name"] ?> "> nome<br/>
    <input type="text" name="surname" value=" <?php echo $_SESSION["surname"] ?> "> cognome<br/>
    <input type="text" name="email" value=" <?php echo $_SESSION["email"] ?> "> email<br/>
    <input type="text" name="address" value=" <?php echo $_SESSION["address"] ?> "> indirizzo<br/>
    <p><input type="submit" value="Modifica i tuoi dati"></p>
    </form>

             </div>
    

    <?php
    include ("basebottom.php");
    ?>

    [/PHP]

    ed infine modifyregister_client.php

    [PHP]
    <?php
    include ("config.php");

         $id=trim($_POST['id']);
        $account=trim($_POST['account']);
        $name=trim($_POST['name']);
        $surname=trim($_POST['surname']);
        $email=trim($_POST['email']);
        $address=trim($_POST['address']);        
        
        include ("basetop.php");
        
        $query = "DELETE FROM `tid_client` WHERE CONVERT( `ID` USING utf8 ) = '$id' LIMIT 1 ;
    

    ";
    $result=mysql_query($query);
    $query2 = "INSERT INTO tid_client VALUES('$id','$account','$name','$surname','$email','$address')";
    $result=mysql_query($query2);
    if (!$result) {
    die("Impossibile inserire i dati" . mysql_error());
    echo '<br/><form action="enter_client.php" method="post"> <input type="submit" value="Torna al tuo pannello"></form>';
    }

        echo "Dati Inseriti";
        echo '<br/><form action="enter_client.php"  method="post"> <input type="submit" value="Torna al tuo pannello"></form>';
        
        mysql_close();
        include ("basebottom.php");
    

    ?>

    [/PHP]

    Ricordo che a me funge spero che possa servirvi


  • User

    riprovo: a me funziona così:
    [PHP]
    <?php
    session_start();
    include ('code/config.php');
    $account=$_POST[account];
    $pw=$_POST[pw];

    $punt_db=mysql_connect($host,$user,$psw) or $punt_db="Errore nella connessione al database";
    mysql_select_db($db,$punt_db) or die("Impossibile raggiungere il database".$db);
    //Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
    $query = mysql_query("SELECT * FROM utentiWHERE account ='$account' AND pw = '$pw'");
    $ok_login = mysql_num_rows($query);
    if($ok_login=="1")
    {
    unset($_SESSION['account']);
    unset($_SESSION['pw']);
    $_SESSION['account'] = $account;
    $_SESSION['pw']= $pw;
    echo "<script>
    window.location = "enter.php"
    </script>";
    }
    else
    {
    unset($_SESSION['account']);
    unset($_SESSION['pw']);
    echo "<script>
    window.location = "enter.php"
    </script>";
    }

    ?>[/PHP]


  • User Attivo

    Ottimo ragazzi, tra un pò raccoglieremo le varie versioni funzionanti in modo che se ne posso fruire più facilmente..


  • User

    prima non mi funzionava perchè, non "UNSETTANDO" le variabili di sessione, se all' interno della stessa sessione si faceva il login e poi si voleva entrare con un altro user, questo non era possibile dal momento che la variabile di sistema era già settata e pertanto anche se si entrava con un user erratto (ad esempio non registrato nel DB) per il server era tutto corretto essendo appunto settata la variabile nella pagina "enter".
    La soluzione da me proposta prevede comunque il setting e l' unsetting delle variabili ad ogni accesso anche all' interno della stessa sessione.
    Spero vi possa essere utile.
    ciao a tutti


  • User Newbie

    Anch'io ho un problema: ogni nick e pass che immetto mi da la frase di benvenuto. Quale potrebbe essere la soluzione?
    Nelle pagine non ho modificto nulla, eccetto i valori del database in config.php...
    PS: Avevo già postato un messaggio simile, ma sembra che hanno cancellato...
    PPS: Scusate, ho visto adesso che mi hanno fatto un topic a parte...