tablodan bir alani oldugu gibi degistirmek

Y
ysf
Misafir
Merhabalar baslik yanlis acilmis olabilri
soyle bir sorunum var, db tablosu asagidaki gibi

user_id, username, userpass

ben userpass kisminda bulunnan tüm degerleri rastgele bir sifre vermek istiyorum 6 haneli. tamami degisecek. bunu nasil yapabilirim?
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
PHP:
$q = mysql_query("SELECT user_id FROM tablo");

function sifre_uret($num) {
$str = "ABCDEFGHIJKLMNOPRSTUWVYZ1234567890";
  for ($i=0; $i <= $num; $i++) {
  $harf = rand(1,34);
  $sifre = $sifre . $str{$harf};
  }
return $sifre;
}

while ($a = mysql_fetch_array($q)) {
$uret = sifre_uret("5");
mysql_query("UPDATE tablo SET userpass='$uret' WHERE user_id='$a[user_id]'");
echo "$a[user_id] yeni sifresi: $uret<br>";
}
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
77
Konum
SEO
Al sana super kuvvetli bir random sifreleme komutu, tamamen bena ait bir koddur :)

UPDATE tablo SET userpass = substring(ENCRYPT(PASSWORD(username + RAND())) , 1, 6 )
 
B
Baria
Misafir
gerçi garanti deil yani username ve şifre aynı olursa ne olacak ?
 
Y
ysf
Misafir
iyinet' Alıntı:
Al sana super kuvvetli bir random sifreleme komutu, tamamen bena ait bir koddur :)

UPDATE tablo SET userpass = substring(ENCRYPT(PASSWORD(username + RAND())) , 1, 6 )

tesekkurler ama tekbir kayit yok.. 3800 tane kayitli kullanicinin hepsinin sifresi bir cirpida degismeli daha bunlari mail e yollacam :)
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
77
Konum
SEO
ysf' Alıntı:
tesekkurler ama tekbir kayit yok.. 3800 tane kayitli kullanicinin hepsinin sifresi bir cirpida degismeli daha bunlari mail e yollacam :)

Tamam iste bu komut tum sifreleri 1 kerede degistirmek icin. Her kullaniciya yeni farkli bir sifre verir.
Calistirmadan once sen yine de tablonun bir kopyasini al...
 
Y
ysf
Misafir
Angelo' Alıntı:
PHP:
$q = mysql_query("SELECT user_id FROM tablo");

function sifre_uret($num) {
$str = "ABCDEFGHIJKLMNOPRSTUWVYZ1234567890";
  for ($i=0; $i <= $num; $i++) {
  $harf = rand(1,34);
  $sifre = $sifre . $str{$harf};
  }
return $sifre;
}

while ($a = mysql_fetch_array($q)) {
$uret = sifre_uret("5");
mysql_query("UPDATE tablo SET userpass='$uret' WHERE user_id='$a[user_id]'");
echo "$a[user_id] yeni sifresi: $uret<br>";
}

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\aredhelrim\pass.php on line 16

hatasi aliyorum assoc denedim yine olmadi..
 
Y
ysf
Misafir
iyinet' Alıntı:
Al sana super kuvvetli bir random sifreleme komutu, tamamen bena ait bir koddur :)

UPDATE tablo SET userpass = substring(ENCRYPT(PASSWORD(username + RAND())) , 1, 6 )

bununlada tum degerler lisanssız oldu :)
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
Gerekli degisken isimlerini degistirmen lazim demek ki
$q = mysql_query("SELECT user_id FROM tablo");
Yanlis bir mysql kaynagi ise, tablonun adi tablo degil, yada alanin adi user_id degil.
 
Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,043
Tepki puanı
77
Konum
SEO
ysf' Alıntı:
bununlada tum degerler lisanssız oldu :)

Bu kodu postalamadan once mysql de calistirdim ve sifreleri guzelce resetledi.
Sende neden lisanssız oldu anlamadim???
Tablonun structure ini ve calistirdigin sorguyu buraya yazarsan bir fikrimiz olur belki.
 
Y
ysf
Misafir
sayin angelo ve iyinet gereken ayarlari yaptim tablo adlartini verdim. dedigim gibi angelo senin kodunda fetch_assoc ve array hatasi aldim iyinet seninkide ise

PHP:
<?
include "./settings/common.php";
db_Conn();

//$q = mysql_query("SELECT user_id FROM user"); 
//
//function sifre_uret($num) { 
//$str = "ABCDEFGHIJKLMNOPRSTUWVYZ1234567890"; 
//  for ($i=0; $i <= $num; $i++) { 
//  $harf = rand(1,34); 
//  $sifre = $sifre . $str{$harf}; 
//  } 
//return $sifre; 
//} 
//
//while ($a = mysql_fetch_assoc($q)) { 
//$uret = sifre_uret("5"); 
mysql_query("UPDATE anket SET password = substring(ENCRYPT(PASSWORD(username + RAND())) , 1, 6 )");
//UPDATE user SET password='$uret' WHERE user_id='$a[user_id]'"); 
echo "$a[user_id] yeni sifresi: $uret<br>"; 
//}  
?>

bu sekilde kullandim. ve tum password alanlari nbull oldu her kayidinki
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
$q = mysql_query("SELECT user_id FROM user") or die(mysql_error());

yapar misin
 
Y
ysf
Misafir
angelo cok saol
userid ymis id lerin bulundugu alan kusura bakmayin sizide yordum..
 
0
Onaylı Üye
Üye
Katılım
4 Mart 2005
Mesajlar
5,290
Tepki puanı
0
Konum
Kadıköy
ysf' Alıntı:
sayin angelo ve iyinet gereken ayarlari yaptim tablo adlartini verdim. dedigim gibi angelo senin kodunda fetch_assoc ve array hatasi aldim iyinet seninkide ise

PHP:
<?
include "./settings/common.php";
db_Conn();

//$q = mysql_query("SELECT user_id FROM user"); 
//
//function sifre_uret($num) { 
//$str = "ABCDEFGHIJKLMNOPRSTUWVYZ1234567890"; 
//  for ($i=0; $i <= $num; $i++) { 
//  $harf = rand(1,34); 
//  $sifre = $sifre . $str{$harf}; 
//  } 
//return $sifre; 
//} 
//
//while ($a = mysql_fetch_assoc($q)) { 
//$uret = sifre_uret("5"); 
mysql_query("UPDATE anket SET password = substring(ENCRYPT(PASSWORD(username + RAND())) , 1, 6 )");
//UPDATE user SET password='$uret' WHERE user_id='$a[user_id]'"); 
echo "$a[user_id] yeni sifresi: $uret<br>"; 
//}  
?>

bu sekilde kullandim. ve tum password alanlari nbull oldu her kayidinki
Ben PHP bilmiyorum ama kodlamaya bakılırsa, Şifre Üret değişkeni Rem yapılmış. Çalışmıyor yani. Ve adminin verdiği kod ile şifre üret değişkeninin hiçbir bağlantısı yok.

En son satırda "echo "$a[user_id] yeni sifresi: $uret<br>";" yazıyor. Uret değişkeni boş olduğu için sen lisanssız görüyorsun. Database e bağlanıp bir kontrol et istersen.
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
Konum
AZ
Olur, gozden kaciyor arada. Diyorsun bazen hersey dogru bilgisayar begenmedi galiba, ama bilgisayar hic hata yapmiyor..;)
 
0
Onaylı Üye
Üye
Katılım
4 Mart 2005
Mesajlar
5,290
Tepki puanı
0
Konum
Kadıköy
Evet ama bazen yapıyor galiba. Milyon defa okuduğum birkaç satırlık kod sürekli hata veriyor. Bende o zaman bilgisayardan daha güçlü olduğumu göstermek için klavye falan kırıyorum :)
 
Geri
Üst