Pagina 4 di 6 PrimoPrimo ... 23456 UltimoUltimo
Visualizzazione risultati 91 fino 120 di 177
Like Tree2Likes

Discussione: login e registrazione

  1. #91
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Semplicemente perché esegui due volte la query, ovvero richiami il metodo "query" due volte:
    Codice PHP:
    $result = $conn->query($sql);
    if (
    $conn->query($sql) === TRUE) {
    Ciao!

  2. #92
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Il problema è qui:
    Codice PHP:
    $sql="update $table SET quantita=quantita-1 WHERE codicef=255";
    $result = $conn->query($sql);
    if (
    $conn->query($sql) === TRUE) {
    Stai eseguendo la query due volte di fila.
    Modifica in:
    [php]

    Codice PHP:
    $sql = "UPDATE $table SET quantita = quantita - 1 WHERE codicef = 255";
    $result = $conn->query($sql);
    if (
    $result === TRUE) {

  3. #93
    Guest

    Predefinito

    il mio prof mi ha dato una pagina da login da studiare capite le condizioni in cui stiamo messi(mi scuso in anticipo se non l'ho fatto interamente io ma prendevo spunto qua e la)volevo spiegate meglio alcune cose cosi da capirlo e in seguito provarci a farlo io
    questo è il codice:
    Codice PHP:
    <!DOCTYPE html>
    <html>
    <head>
    <title>Login</title>
    </head>
    <body>
    <?php
    require('db.php');
    session_start();
    if(isset(
    $_POST['username']))
    {

    $username = $con->escape_string( $_POST['username'] );
    $password = $con->escape_string( $_POST['password'] );

    $query = "SELECT * FROM utenti WHERE username='$username' and password='$password'";
    $result = mysqli_query($con,$query) or die(mysql_error());
    $rows = mysqli_num_rows($result);
    if(
    $rows==1){
    $_SESSION['username'] = $username;
    header("Location: index.php");
    }else{
    echo
    "<div class='form'>
    <h3>Username/password is incorrect.</h3>
    <br/>Click here to <a href='login.php'>Login</a></div>"
    ;
    }
    }else{
    ?>
    <div class="form">
    <h1>Log In</h1>
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
    <input type="text" name="username" placeholder="Username" required />
    <input type="password" name="password" placeholder="Password" required />
    <input type="submit" name="invia" value="Login" />
    </form>
    <p>Non sei registrato? <a href='registrazione.php'>registrati</a></p>
    </div>
    <?php } ?>
    </body>
    </html>
    perchè se nel post mettiamo invia e non username quando schiaccio login(con campi inseriti giusti) non entra resta sulla pagina?
    perchè se usavo $result = $conn->query($sql) mi dava errore e dovevo mettere $result mysqli_query($con,$query) or die(mysql_error());
    da $rows fino alla chiusura del php non ho capito bene cosa faccia...
    GRAZIE PER LE EVENTUALI RISPOSTE

  4. #94
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    perchè se nel post mettiamo invia e non username quando schiaccio login(con campi inseriti giusti) non entra resta sulla pagina?
    Controlla bene. Sostituendo
    Codice PHP:
    if(isset($_POST['username']))
    con
    Codice PHP:
    if(isset($_POST['invia']))
    funziona allo stesso modo.


    perchè se usavo $result = $conn->query($sql) mi dava errore e dovevo mettere $result mysqli_query($con,$query) or die(mysql_error());
    MySQLi e relative funzioni esistono in due "versioni", una orientata ad oggetti ed una procedurale.
    Un esempio della prima "versione" è proprio $conn->query($sql), in cui invochi il metodo query sull'oggetto $conn. Un esempio "versione" procedurale è invece il mysqli_query($con, $query) che stai usando: in questo caso non invochi un metodo, ma chiami una funzioni a cui passi due parametri, uno dei quali rappresenta la connessione alla base di dati.
    Come forse avrai intuito, le due "versioni" sono equivalenti, ciò che si può fare con l'una può essere realizzato anche con l'altra, MA non sono intercambiabili e non si possono mescolare.
    In termini concreti, se hai effettuato la connessione alla base di dati usando la "versione" procedurale (come è nel tuo caso), per eseguire le query non puoi usare la "versione" ad oggetti, bensì continuare con la procedurale mysqli_query, e viceversa.

    da $rows fino alla chiusura del php non ho capito bene cosa faccia...
    Suggerisco di riscrivere quel blocco di codice con una formattazione adeguata:
    Codice PHP:
    $rows = mysqli_num_rows($result);
    if (
    $rows == 1) {
    $_SESSION['username'] = $username;
    header("Location: index.php");
    }
    else {
    echo
    "<div class='form'>
    <h3>Username/password is incorrect.</h3>
    <br/>
    Click here to <a href='login.php'>Login</a>
    </div>"
    ;
    }
    come prima cosa, in $rows viene inserito il numero di righe ottenute mediante la query: quando usi SELECT stai estraendo delle righe da una tabella, con quell'istruzione non fai altro che "contare" quante righe hai estratto.

    Dopodiché, se il numero di righe è uguale ad 1 entri nel corpo dell'if. Se il numero di righe è uguale ad 1, significa che nella tabella c'è esattamente una riga che risponde alla condizione che hai posto durante la SELECT, ovvero c'è esattamente una riga con il nome utente e la password indicati, quindi si può dedurre che la procedura di autenticazione sia avvenuta correttamente.
    In questo caso il nome utente viene memorizzato nella sessione, e l'utente viene reindirizzato alla pagina index.php.

    Altrimenti, se il numero di righe estratte è diverso da 1 (per come è impostata la tabella, tale numero se non è 1 allora è necessariamente 0), significa che l'autenticazione non è andata a buon fine. Può darsi che il nome utente inserito sia sbagliato, oppure il nome utente sia corretto ma la password sbagliata. In questo caso vengono mostrati un messaggio d'errore ed un collegamento verso la pagina login.php in modo da poter ritentare la procedura.

    Occhio ad una "sottigliezza" su cui è bene soffermarsi. La pagina è strutturata in questo modo:
    Codice:
    [intestazioni HTML]
    
    if (isset($_POST['username'])) {
        [controlli ed operazioni PHP]
    }
    else {
        [blocco HTML]
    }
    
    [altro HTML]
    ovvero c'è del codice HTML all'interno di un else di PHP. Il codice HTML in questione verrà considerato solo quando il ramo else viene eseguito. In questo caso, significa che il form di autenticazione verrà mostrato solo a condizione che $_POST['username'] non sia impostato.

    Se hai altri dubbi, chiedi.

  5. #95
    Guest

    Predefinito

    l'immagine se uso background nel body verra sempre ripetuta,senza il css si puo mettere l'immagine full screen?

  6. #96
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Forse, con una svalangata di codice HTML di dubbia qualità. Meglio usare CSS.

  7. #97
    Guest

    Predefinito

    salve vorrei aumentare la sicurezza del mio sito perchè quando vado nella pagina login(chiamata index.php)perchè se vado a fare il login funziona ma se nella barra oltre al nome del sito metto /ciao.php(reinderizzamento fatto il login) va lo stesso saltando il login come posso fare?
    Ultima modifica di esami : 23-03-2018 alle ore 18.02.36

  8. #98
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    dentro "ciao.php" devi controllare se l'utente è loggato. (quindi se esiste la sessione, del tipo:

    Codice PHP:
    is(!isset($_SESSION['nome_che_hai_scelto']))
    {
    //se entra qui, o mostri un errore dicendo che l'utente non è loggato, oppure lo rimandi alla schermata di login etc etc
    }
    )

    Ciao!

  9. #99
    Guest

    Predefinito

    Codice PHP:
    <?php
    if(!isset($_SESSION['username']))
    {
    echo
    'non sei loggato ritorna a '.'<a href="index.php">login</a>';
    }
    ?>
    cosi o intendevi altro?

  10. #100
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Sì, però poi interrompi il flusso della pagina con exit() dopo la echo, altrimenti la pagina continuerà a processarsi.

    Ciao!

  11. #101
    Guest

    Predefinito

    adesso quando faccio il login mi spunta solo quello nell'echo

  12. #102
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Hai aperto prima la sessione con session_start()? (devi sempre usare quella funzione quando vuoi anche solamente leggere le sessioni).

    Ricorda di usare quella funzione prima di qualsiasi carattere html (anche spazi) in uscita: mettila sempre come prima istruzione e non sbagli mai (assicurati che non ci sia nessun carattere prima di "<?php", nemmeno uno spazio).

    Ciao!

  13. #103
    Guest

    Predefinito

    fatto il login mi deve andare sulla pagina ciao.php sei sei loggato ti deve spuntare una cosa se invece salti il login mettendo /ciao.php nella barra mi dovrebbe uscire che non è loggato il codice cosi?
    Codice PHP:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION['username']))
    {
    echo
    'non sei loggato ritorna a '.'<a href="index.php">login</a>';

    }
    exit()
    ?>
    <html>
    <head>
    </head>
    <body>
    <a href="logout.php">logout</a>
    </body>
    </html>

  14. #104
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La exit va messa dentro al corpo dell'if.
    Codice PHP:
    <?php
    session_start
    ();
    if (isset(
    $_SESSION['username']))
    {
    echo
    'non sei loggato ritorna a '.'<a href="index.php">login</a>';
    exit();
    }
    ?>
    <html>
    <head>
    </head>
    <body>
    <a href="logout.php">logout</a>
    </body>
    </html>

  15. #105
    Guest

    Predefinito

    non vede html quando faccio il login vede quella nell'echo
    Ultima modifica di esami : 24-03-2018 alle ore 17.30.28

  16. #106
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Ah certo, mi era sfuggita una cosa: nella guardia dell'if devi valutare se l'utente non è autenticato, ed in quel caso mostrare l'echo e la exit. Quindi la condizione da utilizzare è la negazione di quella che stai utilizzando tu:
    Codice PHP:
    <?php
    session_start
    ();
    if (!isset(
    $_SESSION['username']))
    {
    echo
    'non sei loggato ritorna a '.'<a href="index.php">login</a>';
    exit();
    }
    ?>
    <html>
    <head>
    </head>
    <body>
    <a href="logout.php">logout</a>
    </body>
    </html>
    Nota il "!" prima di isset.

  17. #107
    Guest

    Predefinito

    risalve rieccomi qui con una domanda,
    stavo studiando un po di css e mi sono inbattuto in questo codice

    Codice PHP:
    <!DOCTYPE html>
    <
    html>
    <
    head>
    <
    link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
    <
    style>
    * {
    box-sizing: border-box;}

    body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    }

    .
    topnav {
    overflow: hidden;
    background-color: #e9e9e9;
    }

    .
    topnav a {
    float: left;
    display: block;
    color: black;
    text-align: center;
    padding: 14px 16px;
    text-decoration: none;
    font-size: 17px;
    }

    .
    topnav a:hover {
    background-color: #ddd;
    color: black;
    }

    .
    topnav a.active {
    background-color: #2196F3;
    color: white;
    }

    .
    topnav .search-container {
    float: right;
    }

    .
    topnav input[type=text] {
    padding: 6px;
    margin-top: 8px;
    font-size: 17px;
    border: none;
    }

    .
    topnav .search-container button {
    float: right;
    padding: 6px 10px;
    margin-top: 8px;
    margin-right: 16px;
    background: #ddd;
    font-size: 17px;
    border: none;
    cursor: pointer;
    }

    .
    topnav .search-container button:hover {
    background: #ccc;
    }

    @
    media screen and (max-width: 600px) {
    .
    topnav .search-container {
    float: none;
    }
    .
    topnav a, .topnav input[type=text], .topnav .search-container button {
    float: none;
    display: block;
    text-align: left;
    width: 100%;
    margin: 0;
    padding: 14px;
    }
    .
    topnav input[type=text] {
    border: 1px solid #ccc;
    }
    }
    </
    style>
    </
    head>
    <
    body>

    <
    div class="topnav">
    <
    a class="active" href="#home">Home</a>
    <
    a href="#about">About</a>
    <
    a href="#contact">Contact</a>
    <
    div class="search-container">
    <
    form action="/action_page.php">
    <
    input type="text" placeholder="Search.." name="search">
    <
    button type="submit"><i class="fa fa-search"></i></button>
    </
    form>
    </
    div>
    </
    div>

    <
    div style="padding-left:16px">
    <
    h2>Responsive Search Bar</h2>
    <
    p>Navigation bar with a search box and a submit button inside of it.</p>
    <
    p>Resize the browser window to see the responsive effect.</p>
    </
    div>

    </
    body>
    </
    html>
    vorrei capire come funziona questo tasto cerca

  18. #108
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    In che senso come funziona?

    È settato il simbolo \f002 tramite CSS con:
    Codice:
    .fa-search:before {
        content: "\f002";
    }
    Comunque, apri una nuova discussione perché si tratta di un argomento diverso.

    Ciao!

  19. #109
    Guest

    Predefinito

    Codice PHP:
    <!DOCTYPE html>
    <html>
    <head>
    <link href="stile2.css" rel="stylesheet" type="text/css">
    <title>Login</title>
    </head>
    <body>
    <?php
    require('db.php');
    session_start();
    if(isset(
    $_POST['username']))
    {
    $username = $con->escape_string( $_POST['username'] );
    $password = $con->escape_string( $_POST['password'] );
    $email = $con->escape_string( $_POST['email'] );

    $query = "SELECT * FROM utenti WHERE username='$username' or email='$email' and password='$password'";
    $result = mysqli_query($con,$query) or die(mysql_error());
    $rows = mysqli_num_rows($result);
    if(
    $rows==1){
    $_SESSION['username'] = $username or $_SESSION['email'] = $email;
    header("Location: ecommerce.php");
    }else{
    echo
    "<div class='form'>
    <h3>Username/password errate.</h3>
    <br/>clicca qui per il <a href='index.php'>Login</a></div>"
    ;
    }
    }else{
    ?>
    <div class="form">
    <audio controls loop autoplay>
    <source src="inno.mp3" type="audio/mp3">
    </audio>
    <br><br><br><br><br><br><br><br><br><br>
    <center><h3>Log In</h3></center>
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
    <center><table bgcolor="silver">
    <tr><td>username o email</td></tr>
    <tr><td><input type="text" name="username" placeholder="Username" /></tr></td>
    <tr><td>password</td></tr>
    <tr><td><input type="password" name="password" placeholder="Password" required /></tr></td>
    <tr><td><center><input type="submit" name="invia" value="Login" /></center></tr></td>
    </table></center>
    </form>
    <center>Non sei registrato? <a href='registrazione.php'>registrati</a></center>
    </div>
    <?php } ?>
    Salve,vi domando se è possibile fare login inserendo email o username inserendoli nello stesso input type ho provato cosi ma se non dichiaro email mi da errore,il campo email c'è,come posso fare?
    Ultima modifica di esami : 29-04-2018 alle ore 19.44.14

  20. #110
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    • Codice PHP:
      $_SESSION['email']
      Sbaglio o vedo che non esiste alcun input con name="email"? se ho ben capito, dovresti usare "$username" sa per la ricerca di 'username' che per 'email', una cosa del tipo:
      Codice PHP:
      $query = "SELECT * FROM utenti WHERE username='$username' or email='$username' and password='$password'";
      (anche se a questo punto cambierei il nome della variabile che può trarre in inganno).
    • Per come è fatta la query, io aggiungerei una parentesi per stare sicuro in questo modo:
      Codice:
      WHERE (contizione1 or condizione2) and condizione3
      Senza parentesi, se per sbaglio venisse interpretato in questo modo:
      Codice:
      WHERE contizione1 or (condizione2 and condizione3)
      un utente potrebbe effettuare il login tramite la condizione1 senza utilizzare la password corretta!
    • la funzione session_start() va richiamata prima di qualsiasi output HTML: puoi aprire più volte il tag <?php ... ?>, quindi richiama quella funzione prima di qualsiasi carattere HTML.
    • Lato html non utilizzare <center> ed evita di usare tabelle per posizionare contenuti della pagina.


    Ciao!

  21. #111
    Guest

    Predefinito

    grazie mille funziona

  22. #112
    Guest

    Predefinito

    salve torno a rompervi i ...... questa volta volevo sapere come fare uno script per un "aggiungi al carrello" senzs javascript,avevo pensato ad un semplice php ma mi mostrerebbe solo l'oggetto quando schiaccio il tasto,poi ho pensato che li inserivo in una tabella e poi quando schiaccio carrello(in una barra)mi viene mostrato quello che ho aggiunto attraverso un select il problema e che non so fare che quando schiaccio "elimina o un tasto"mi elimina quella riga

  23. #113
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Per eliminare un elemento dal carrello, devi generare tanti form (o uno solo, vedi tu) inviando allo script l'id della riga da eliminare. Poi procedi con la query DELETE
    Codice:
    DELETE FROM tabella WHERE id=57
    Ciao!

  24. #114
    Guest

    Predefinito

    ma cosi mi elimina la query dove c'è il campo id 57,se tipo ho un ogetto che non ha quell'id?(probabilmente non ho capito,devo generare tanti form perchè aggiungo vari oggetti)

  25. #115
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    57 era un esempio, alla fine sarà una cosa del tipo:
    Codice PHP:
    if(isset($_POST['id_da_form']))
    {
    $id_da_eliminare = $_POST['id_da_form'];

    //controlli vari di $id_da_eliminare (esempio escape_string o controllo che sia effettivamente un numero)

    $mysqli->query('DELETE FROM tabella WHERE id='.$id_da_eliminare);
    }
    Il dato POST "id_da_form" verrà da un form dove l'utente seleziona l'oggetto da eliminare.

    Ciao!
    Ultima modifica di alemoppo : 08-05-2018 alle ore 22.01.05

  26. #116
    Guest

    Predefinito

    $id_da_eliminare gli posso mettere un campo che voglio eliminare?

  27. #117
    Guest

    Predefinito

    Salve,

    sono un utente di altervista da diversi anni e mi trovo veramente bene.

    Tempo fa ho creato un sito qui su altervista http://estractorevolution.altervista.org a cui ho connesso alcuni miei software (si collegano in ftp e fanno upload e download di piccoli files).

    E' successo che a fronte di una mia formattazione del pc ho perso i dati di login,la password e cosi ho fatto il reset della password senza pensare che poi i miei software avrebbero smesso di connettersi visto che la password era cambiata.

    La mia domanda è questa:

    E' possibile ripristinare la password precedente a quella attuale (per l' utente estractorevolution) ? Ne ho sincero bisogno perchè non ho altro modo di far connettere questi miei programmi se non ripristinando la vecchia password per l' accesso al sito e al ftp.

    Spero proprio si possa fare !!!

    Cordiali Saluti,
    Sergio Cionini
    http://estractorevolution.altervista.org

  28. #118
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    Citazione Originalmente inviato da esami Visualizza messaggio
    $id_da_eliminare gli posso mettere un campo che voglio eliminare?
    Lo prelevi dal form inviato, come vedi da $_POST['id_da_form'].

    @estractorevolution: apri una tua discussione, qui non centra nulla. Comunque puoi modificare la password dal pannello di controllo->profilo (scorri in basso).

    Ciao!

  29. #119
    Guest

    Predefinito

    questo è il carrello http://esami.altervista.org/ciao/eco...va2/prova1.php ad ogni riga devo mettere qualcosa dove la toglie,il isset form quindi lo devo mettere su prova1.php,? scusa l'ignoranza a capire ci sto tanto...

  30. #120
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,064

    Predefinito

    La cosa più facile è così: in quella tabella, aggiungi una nuova colonna e ci inserisci un link per eliminare l'oggetto.
    (Piuttosto del form che ti avevo suggerito prima, è sufficiente e forse più facile impostare un link con un parametro GET)


    Un link di questo tipo:
    Codice PHP:
    echo '<a href="paginachevuoi.php?elimina='.$row['id'].'"> elimina </a>';
    Dove $row è la variabile che cicla le righe del database (non so come l'hai chiamata quella variabile).

    Poi la pagina "paginachevuoi.php" avrà dentro il codice che ti avevo mostrato prima, però invece di $_POST['...'] sarà:
    Codice PHP:
    $id_da_eliminare = $_GET['elimina'];
    Ciao!

Pagina 4 di 6 PrimoPrimo ... 23456 UltimoUltimo

Regole di scrittura

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