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

    query modifica database mysql non funziona

    Ciao a tutti,
    ho creato un form per generare una password casuale che poi può essere modificata nella propria area privata. Però non riesco a far funzionare la query che modifica la password nel database. Qualcuno un pò più pratico di me sa dirmi dove sbaglio? Ecco il codice:

    <?php

    function random($lunghezza=12){
    $caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyz1234567890";
    $codice = "";
    for($i = 0; $i<$lunghezza; $i++){
    $codice = $codice.substr($caratteri_disponibili,rand(0,strle n($caratteri_disponibili)-1),1);
    }
    return $codice;
    }


    $email=$_POST['email'];
    $id=$riga['Id_utente'];

    include ("connetti.php");

    $query="SELECT * FROM `utenti_privati` WHERE `Email` = '".$_POST['email']."'";

    $result=mysql_query($query);
    while($riga=mysql_fetch_array($result))
    {
    $email = $riga['Email'];

    }

    if(mysql_num_rows($result)>0)
    {
    $password=random(8);

    }
    else

    echo "Email non presente nel nostro database";


    //se non ci sono stati errori, invio l'email all'utente con il link da confermare
    if(mysql_num_rows($result)>0)

    {
    $sql= "UPDATE `mercurialluminio_com_areaprivata`.`utenti_privati ` SET `Psw` = '".md5($password)." WHERE `utenti_privati`.`Id_utente` ='".$id."' LIMIT 1″";

    $result = mysql_query($sql);

    $header= "From: mercurialluminio.com <info@mercurialluminio.com>\n";
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";

    $subject= "mercurialluminio.com - Nuova password utente";

    $mess_invio="<html><body>";
    $mess_invio.=" Gentile utente, la tua nuova password e' $password.\n Accedi all'area privata del sito per poter modificare la tua password\n\n Cordiali saluti,\n\n Mercuri Alluminio S.r.l.";
    $mess_invio.='</body><html>';

    //invio email
    if(@mail($_POST['email'], $subject, $mess_invio, $header)){

    echo " Gentile utente,\n
    ti abbiamo inviato una mail con la tua nuova password.\n\n Cordiali saluti,\n Mercuri Alluminio S.r.l.";
    }

    }

    include ("chiudi.php");


    ?>

    Grazie a tutti comunque

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    perchè il where è così?

    $sql= "UPDATE `mercurialluminio_com_areaprivata`.`utenti_privati ` SET `Psw` = '".md5($password)." WHERE `utenti_privati`.`Id_utente` ='".$id."' LIMIT 1″";

    forse intendevi:

    $sql= "UPDATE `mercurialluminio_com_areaprivata`.`utenti_privati ` SET `Psw` = '".md5($password)." WHERE Id_utente ='".$id."' LIMIT 1″";
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Consigli per l'uso del forum

    1) Quando posti codice usa il tag php, che lo rende leggibile, così

    Codice PHP:
    <?php 

    function random($lunghezza=12){
    $caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    $codice "";
    for(
    $i 0$i<$lunghezza$i++){
    $codice $codice.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
    }
    return 
    $codice;
    }
    2) Spiega qual è il problema. "Non riesco a far funzionare" non vuol dire granché.

    Consiglio per l'uso di php:
    Quando usi una istruzione mysql verifica sempre il risultato con la clausola "or die(mysql_error())", così
    Codice PHP:
    $result mysql_query($sql) or die(mysql_error()); 
    In questo modo se c'è qualche problema sul db te ne accorgi al volo

  4. #4
    Grazie Homerbit per avermi ancora risposto: il problema sembra essere proprio quello:
    Ho modificato la query come hai detto tu e grazie al suggerimento del nostro amico luca200 l'errore che mi compare è:
    "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''e1b1fc5ff51163a4776275d8da5bc81b WHERE Id_utente ='' LIMIT 1″' at line 1"


    In ogni caso il problema che ho è: che la funzione di nuova password funziona, riesco ad inviare la mail a chi ha perso la password ma il database non riesce ad aggiornarmi il campo password, cioè rimane settata la vecchia password

    Grazie

  5. #5
    Vi riposto il codice in maniera corretta come suggerito da Luca

    Codice PHP:
    <?php
    function random($lunghezza=12){
    $caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyz1234567890";
    $codice = "";
    for($i = 0; $i<$lunghezza; $i++){
    $codice = $codice.substr($caratteri_disponibili,rand(0,strle n($caratteri_disponibili)-1),1);
    }
    return $codice;
    }


    $email=$_POST['email'];
    $id=$riga['Id_utente'];

    include ("connetti.php");

    $query="SELECT * FROM `utenti_privati` WHERE `Email` = '".$_POST['email']."'";

    $result=mysql_query($query);
    while($riga=mysql_fetch_array($result))
    {
    $email = $riga['Email'];

    }

    if(mysql_num_rows($result)>0)
    {
    $password=random(8);

    }
    else

    echo "Email non presente nel nostro database";


    //se non ci sono stati errori, invio l'email all'utente con il link da confermare
    if(mysql_num_rows($result)>0)

    {

    $sql= "UPDATE `mercurialluminio_com_areaprivata`.`utenti_privati ` SET `Psw` = '".md5($password)." WHERE Id_utente ='".$id."' LIMIT 1″";
    $result = mysql_query($sql) or die(mysql_error());

    $header= "From: mercurialluminio.com <info@mercurialluminio.com>\n";
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";

    $subject= "mercurialluminio.com - Nuova password utente";

    $mess_invio="<html><body>";
    $mess_invio.=" Gentile utente, la tua nuova password e' $password.\n Accedi all'area privata del sito per poter modificare la tua password\n\n Cordiali saluti,\n\n Mercuri Alluminio S.r.l.";
    $mess_invio.='</body><html>';

    //invio email
    if(@mail($_POST['email'], $subject, $mess_invio, $header)){

    echo " Gentile utente,\n
    ti abbiamo inviato una mail con la tua nuova password.\n\n Cordiali saluti,\n Mercuri Alluminio S.r.l.";
    }

    }

    include ("chiudi.php");
    Codice PHP:
    ?> 

  6. #6
    Codice PHP:
     function random($lunghezza=12){ $caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"$codice ""; for($i 0$i<$lunghezza$i++){ $codice $codice.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1); } return $codice; }   $email=$_POST['email']; $id=$riga['Id_utente'];  include ("connetti.php");  $query="SELECT * FROM `utenti_privati` WHERE `Email` = '".$_POST['email']."'";  $result=mysql_query($query); while($riga=mysql_fetch_array($result)) { $email $riga['Email'];  }  if(mysql_num_rows($result)>0) { $password=random(8);  } else  echo "Email non presente nel nostro database";   //se non ci sono stati errori, invio l'email all'utente con il link da confermare if(mysql_num_rows($result)>0)  {      $sql= "UPDATE `mercurialluminio_com_areaprivata`.`utenti_privati` SET `Psw` = '".md5($password)." WHERE Id_utente ='".$id."' LIMIT 1″"; $result = mysql_query($sql) or die(mysql_error());  $header= "From: mercurialluminio.com <info@mercurialluminio.com>\n"; $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; $header .= "Content-Transfer-Encoding: 7bit\n\n";  $subject= "mercurialluminio.com - Nuova password utente";  $mess_invio="<html><body>"; $mess_invio.=" Gentile utente, la tua nuova password e' $password.\n Accedi [url='index.php']all'area privata[/url] del sito per poter modificare la tua password\n\n Cordiali saluti,\n\n Mercuri Alluminio S.r.l."; $mess_invio.='</body><html>';  //invio email if(@mail($_POST['email'], $subject, $mess_invio, $header)){  echo " Gentile utente,\n ti abbiamo inviato una mail con la tua nuova password.\n\n Cordiali saluti,\n Mercuri Alluminio S.r.l."; }  }  include ("chiudi.php"); 

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Mi sa che i problemi sono almeno 2.

    1) $id sembra essere vuoto... dovresti capire perché
    2) c'è un errore di sintassi nel sql di update. Prova a stamparlo e postarlo qui

  8. #8
    Non ci riesco

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da alessandra25
    Il secondo tentativo andava già meglio
    Per postarlo correttamente non devi incollare il codice dentro il popup, altrimenti te lo mette tutto in una linea. Devi incollarlo direttamente nella textarea del messaggio fra i tag [ PHP ] e [ / PHP ]

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    tipo così
    Codice PHP:
    function random($lunghezza=12){
    $caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
    $codice "";
    for(
    $i 0$i<$lunghezza$i++){
    $codice $codice.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
    }
    return 
    $codice;
    }


    $email=$_POST['email'];
    $id=$riga['Id_utente'];

    include (
    "connetti.php");

    $query="SELECT * FROM `utenti_privati` WHERE `Email` = '".$_POST['email']."'";

    $result=mysql_query($query);
    while(
    $riga=mysql_fetch_array($result))
    {
    $email $riga['Email'];

    }

    if(
    mysql_num_rows($result)>0)
    {
    $password=random(8);

    }
    else

    echo 
    "Email non presente nel nostro database";


    //se non ci sono stati errori, invio l'email all'utente con il link da confermare
    if(mysql_num_rows($result)>0)

    {

    $sql"UPDATE `________areaprivata`.`utenti_privati` SET `Psw` = '".md5($password)." WHERE Id_utente ='".$id."' LIMIT 1″";
    $result mysql_query($sql) or die(mysql_error());

    $header"From: xxx.com <info@xxxx.com>\n";
    $header .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";

    $subject"xxxxx.com - Nuova password utente";

    $mess_invio="<html><body>";
    $mess_invio.=" Gentile utente, la tua nuova password e' $password.\n Accedi [url='index.php']all'area privata[/url] del sito per poter modificare la tua password\n\n Cordiali saluti,\n\n xxxx S.r.l.";
    $mess_invio.='</body><html>';

    //invio email
    if(@mail($_POST['email'], $subject$mess_invio$header)){

    echo 
    " Gentile utente,\n
    ti abbiamo inviato una mail con la tua nuova password.\n\n Cordiali saluti,\n xxxxxx S.r.l."
    ;
    }

    }

    include (
    "chiudi.php"); 

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.