Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23

Discussione: form e password

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201

    form e password

    Ciao a tutti, scusatemi per il titolo ma non sapevo come scrivere....
    Allora, vediamo se qualcuno di voi mi può dare una mano.

    Io ho un form dove i dati vengono immessi automaticamente (select), ricavati da un db.Questo form mi serve per modificare o eliminare il messaggio.
    All'interno di questo form ho una password che è memorizzata nel file config.inc.php
    Per quanto riguarda "modifica" tutto bene, funziona alla grande tramite un form action-submit che mi va alla pagina edit.php, dopo la verifica della password se corretta mi esegue l'update.
    Il problema è con "elimina", ho fatto un pulsante:


    codice:
    <input type="button" value="Elimina comunicato" onclick="location.href= 'delete.php?id=<?echo "$id"?>
    trova l'id corretto nella pagina delete, però non mi trova la password dice "password errata".
    Posto la pagina contenete il form e i pulsanti modifica e elimina:

    codice:
    <?php 
    include ("top_foot.inc.php"); 
    include ("config.inc.php"); 
    
    //intestazione 
    top(); 
    $nome_db = "nome_db"; 
    $nome_tbl = "stampa"; 
    
    $connessione = @mysql_connect("localhost", "user_db", "pass_db") 
    or die("Impossibile connettersi con il database!"); 
    $db = @mysql_select_db($nome_db, $connessione) 
    or die("Impossibile selezionare il database!"); 
    $sql_str = "SELECT *, DATE_FORMAT(data, '%d.%m.%Y') as data FROM $nome_tbl WHERE id='$id'"; 
    //echo "$sql_str
    "; 
    $risultato = @mysql_query($sql_str,$connessione) 
    or die(mysql_error() . "Impossibile leggere i dati del database!"); 
    
    $progr= 1; 
    $tbl = ''; 
    
    while ($riga = mysql_fetch_array($risultato)) { 
    
    $id = $riga['id']; 
    $oggetto = $riga['Oggetto']; 
    $messaggio = $riga['Messaggio']; 
    $data = $riga['data']; 
    $luogo = $riga['Luogo']; 
    $ora = $riga['Ora']; 
    $redatto = $riga['Redatto']; 
    
    
    $tbl .= "<tr><input type=\"hidden\" name=\"id\" value=\"$id\"><td class=\"USERFORUM\" colspan=\"2\"><font face=\"Arial\" color=\"#000000\">Password:</font><input type=\"password\" name=\"pass\"><font face=\"Arial\" color=\"#000000\"> Redatto da:<SELECT size=1 cols=6 NAME=\"redatto\"value=\" $redatto \">"; 
    $user = array("test","test1","test2","test3","test4"); 
    $i=0; 
    while ($user[$i]) { 
    if ($user[$i] == $redatto) { 
    $tbl .= "<OPTION value=\" $user[$i] \" selected>$user[$i]"; 
    } else { 
    $tbl .= "<OPTION value=\" $user[$i] \">$user[$i]"; 
    } 
    $i++; 
    } 
    $tbl .= " 
    </select> 
    Data: ". date('d-m-Y')." - 
    Ora attuale: <input type=\"text\" value=" .date('H:i'). " size=\"8\" name=\"ora\"> 
    </td></tr>"; 
    $tbl .= "<tr><td class=\"USERFORUM\" colspan=\"0\"><font face=\"Arial\" color=\"#000000\">Titolo: <input type=\"text\" size=\"40\" name=\"oggetto\" value=\"$oggetto \"> Luogo:<input type=\"text\" size=\"25\" name=\"luogo\" value=\"$luogo \"> 
    Immissione comunicato:[b]
    <textarea name=\"messaggio\" cols=\"118\" rows=\"8\">$messaggio</textarea></font> 
    </td></tr>"; 
    
    
    $progr++; 
    } 
    ?> 
    <HTML> 
    
    <HEAD> 
    <TITLE>Tre Valli Soccorso</TITLE> 
    <link rel="stylesheet" type="text/css" href="screen.css"> 
    <base target="_self"> 
    
    </HEAD> 
    <BODY> 
    <h3><font face="Tahoma" color="#0000FF" size="4">Edita comunicati stampa</font></h3> 
    <form ACTION="edit.php" METHOD="POST" NAME="Send_reply" ENCTYPE="multipart/form-data"> 
    <table border=1 width=100% align="center" colspan=1> 
    
    <? echo "$tbl"; 
    ?> 
    </table> 
    <p align="center"><input type="submit" value="Modifica comunicato"> <input type="button" value="Elimina comunicato" onclick="location.href= 'delete.php?id=<?echo "$id"?>'; " /> 
    </form> 
    <p align="left"> 
    </BODY> 
    </HTML>
    Il problema è che non mi legge la password che immetto in questo form, posto le prime righe della pagina delete.php:


    codice:
    <?php 
    include("top_foot.inc.php");
    include("config.inc.php");
    top();
    if ($pass != $password):
    
    echo "<font size=\"3\" color=\"#0000FF\" face=\"Arial\">Password errata</font>";
    
    
    
    else:
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    
    $query = "DELETE FROM stampa WHERE id='$id'";
    echo "$query
    ";
    if (mysql_query($query, $db))
    echo "<font size=\"3\" face=\"Arial\">Il comunicato è stato eliminato definitivamente</font>";
    else
    echo "Errore durante l'inserimento";
    mysql_close($db); 
    endif;
    Come posso fare a far riconoscere la password e eliminare in seguito il record?

    Grazie in anticipo....
    teo

  2. #2
    Dove apri il form che usi per inviare la password?


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Ma io codice che riconosce la password non ne vedo! Cmq nel caso in cui tu voglia proprio il codice per fargli riconoscere la pass devi scrivere qualcosa tipo

    codice:
    if ($_GET['pass'] == $password_del_config)
      {
         esegue la query che cancella il record
      }
    else
      {
          echo 'La password è errata';
      }
    Non so se volessi questo ma non ho capito molto bene la richiesta. Cmq $_GET['pass'] lascialo così perchè si riferisce al campo che hai settato tu. $password_del_config invece devi sostituirlo con la variabile che contiene la password.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201
    Ciao grazie per la risposta e scusate il ritardo non ho potetuto rispondere prima.
    Per piero.mac: la password è nel file config.inc cliccando su modifica file, la password viene letta nel config.inc e se ok mi lascia modificare il form altrimenti no.
    Invece con il file elimina non riesce a leggermi questa password, cioè se elimino la parte di riconoscimento password funziona così:

    codice:
    <input type="button" value="Elimina comunicato" onclick="location.href= 'delete.php?id=<?echo "$id"?>
    In pratica l'id lo riconosce mi va al file delete.php ede elimina correttamnte il record, ma se riattivo la funzione password, che è all'inizio del file delete.php, dice sempre "password errata" posto le prime righe di delete.php per farvi (ti) capire:

    codice:
    <?php 
    include("top_foot.inc.php");
    include("config.inc.php");
    top();
    if ($pass != $password):
    
    echo "<font size=\"3\" color=\"#0000FF\" face=\"Arial\">Password errata</font>";
    
    
    
    else:
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    
    $query = "DELETE FROM stampa WHERE id='$id'";
    echo "$query
    ";
    if (mysql_query($query, $db))
    echo "<font size=\"3\" face=\"Arial\">Il comunicato è stato eliminato definitivamente</font>";
    else
    echo "Errore durante l'inserimento";
    mysql_close($db); 
    endif;
    spero di essere riuscito ad essere più chiaro, grazie e saluti
    teo

  5. #5
    Da quello che vedo il tuo problema potrebbe essere questo: tu usi la variabile $password nel file config che viene confrontata con $pass (immessa nel form). Prova a sostituire $pass con $_GET['pass'] (la forma $_GET['var'] la devi usare per la variabile della pass passata dal form) e vedi se funziona. Ti consiglio comunque di utilizzare questa forma per entrambi i casi (modifica o cancella).
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    201
    potresti essere cos`gentile di postarli la riga intera che devo sostituire con la variante da te proposta, sai sono un po'imbranato...

    grazie
    teo

  7. #7
    Assolutamente no.

    if ($pass != $password):

    una variabile viene dall'include del conf.inc.php. L'altra da dove arriva? e' questo che non si capisce.

    metti prima della if

    echo "pass = $pass - password = $pasword
    ";

    Vedi da te quel che ti stampa.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Originariamente inviato da mircov
    Da quello che vedo il tuo problema potrebbe essere questo: tu usi la variabile $password nel file config che viene confrontata con $pass (immessa nel form). Prova a sostituire $pass con $_GET['pass'] (la forma $_GET['var'] la devi usare per la variabile della pass passata dal form) e vedi se funziona. Ti consiglio comunque di utilizzare questa forma per entrambi i casi (modifica o cancella).
    Guarda che da post precedenti aveva detto di avere register_globals in ON.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Allora io mi sto incasinando e pure dovrei aiutare! VVoVe:

    Ricominciamo. Tu devi confrontare le due pass però questo confronto funziona solo per la modifica e non per la cancellazione: per quest'ultima dice sempre che la pass è errata. Ora il problema è questo: io non vedo il post dove dici che hai le register globals a ON ma ho comunque visto un campo che si chiama "pass" e che era un campo per la password.

    In base a questo io dico che (partendo dal presupposto che tu abbia le register globals a off) quando fai il controllo devi sostituire la variabile proveniente dal form (cioè il nome del campo dove immetti la pass) in questo modo: $_GET['nome_campo_password'].
    Poi se mi sbaglio scusate: io ci ho provato!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  10. #10
    Originariamente inviato da mircov
    In base a questo io dico che (partendo dal presupposto che tu abbia le register globals a off) quando fai il controllo devi sostituire la variabile proveniente dal form (cioè il nome del campo dove immetti la pass) in questo modo: $_GET['nome_campo_password'].
    Poi se mi sbaglio scusate: io ci ho provato!
    $query = "DELETE FROM stampa WHERE id='$id'";

    questo funziona e lo passa per query string. Semplicemente non voglio dare la pappa fatta..... ma non passa il dato. Ma dovrebbe arrivarci da solo....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.