PHP

Programovacie jazyky, rady, poradňa...
aaaa
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 241
Registrovaný: 23 okt 2005, 13:22

PHP

Príspevok od používateľa aaaa »

Potreboval by som helpnut s php, no php neviem ale daco som zbuchal
ide o "Zmena hesla na prístup do užívateľského profilu"

Mám pass.php

Kód: Vybrať všetko

<link rel="stylesheet" href="style.css"> 
<center>Zmena hesla na prístup do užívateľského profilu</center> 
<?php 
include "security.php"; 
include "config.php"; 
$query = "SELECT * FROM users WHERE login=\"".$_GET['login']."\"" ; 
$result = mysql_query($query, $link) or die ("Chyba"); 
$cosi = mysql_fetch_array($result); 
?> 
<style type="text/css"> 
xx {padding-left: 50px;} 
</style> 
<form action="pass2.php" method="post"><br><br><br> 

<xx>Váš Login: <?php echo "" .$cosi['login']; ?><br></xx> 
<xx>Váša e-mailová adresa: <?php echo "" .$cosi['email']; ?><br><br></xx> 
<xx>Staré heslo:<INPUT TYPE="password" NAME="heslo">(pre overenie)<br></xx> 
<xx>Nové heslo: <INPUT TYPE="password" NAME="noveheslo"><br></xx> 
<xx>Nové heslo 2:<INPUT TYPE="password" NAME="noveheslo2">(pre potvrdenie)<br></xx> 
<xx>Nová e-mailová adresa :<INPUT TYPE="text" NAME="novymail" VALUE="<?php echo "" .$cosi['email']; ?>"><br></xx> 
<xx><INPUT CLASS="button" TYPE="submit" VALUE="Uložiť zmeny"></xx> 
<xx><INPUT CLASS="button" TYPE="reset" VALUE="Zrušiť"></xx> 
</p></form>
a pass2.php

Kód: Vybrať všetko

<?php
include "config.php";
include "security.php";

if (isset($_POST['heslo']) && isset($_POST['noveheslo']) && isset($_POST['noveheslo2'])){
if ($_POST['heslo'] == "" || $_POST['noveheslo'] == "" || $_POST['novyemail'] == "" || $_POST['noveheslo2']== ""){
die("Niečo ste vynechaly.");
}

$sql = "SELECT heslo FROM users WHERE login=\"".$_GET['login']."\"" ;
$mysql_query=@mysql_query($sql);   
$a=@mysql_fetch_array($mysql_query); 
echo $a['heslo'];
}

if ($_POST['heslo'] != $a['heslo']){ 
die("Vaše heslo sa nezhoduje s heslom v DB");
}
if ($_POST['heslo'] != $_POST['heslo2']){ 
die("Hesla musia byť rovnake!");
}

$sql = "UPDATE users SET heslo = '".($_POST['noveheslo'])."'";
{
die("chyba 2");
}
?>
prosim vas najdite mi chybu v tom scripte a keby daco tak by som tam chcel us rovno pridat ten spominany v pass.php.
Tu je akoze "logika"

pokiaľ zadal stare heslo:
choď do databázy a zisti jeho heslo pokiaľ sa zhoduje so starým pokračuj
pokiaľ sa nové heslo a nové heslo2 zhodujú pokračuj
choď do dataázy a zmeň heslo a mail
pokiaľ si zmenil heslo a mail vypis "hlasku"
Dakujem
Frikso
Darca
Darca
Používateľov profilový obrázok
Príspevky: 4777
Registrovaný: 07 mar 2006, 19:09

Príspevok od používateľa Frikso »

Máš to docela chaoticky písané, ludovo povedané "bordel".

Na základe toho som sa snažil napísať niečo, čo dúfam, že aspoň ako šablona poslúži. Neskúšal som to nikde, nebolo kde takže sa tam zrejme aj nejake chyby objavia. Je to v jednom subore formular a spracovanie po odoslani formu.

Kód: Vybrať všetko

<?
// treba sa pripojit k databaze
$ktosi=$_GET['login'];
$email = mysql_query("SELECT email FROM users WHERE 'login=$ktosi' LIMIT 1");


if(isset($_POST['odoslane'])){
  $heslo=$_POST['heslo'];
  $noveheslo=$_POST['noveheslo'];
  $noveheslo2=$_POST['noveheslo2'];
  $novymail=$_POST['novymail'];
  
  if($heslo=="" || noveheslo=="" || noveheslo2=="" || novymail==""){
    echo"musite vyplnit vsetky udaje";
  }else{
    $query = mysql_query("SELECT * FROM users WHERE 'login=$ktosi' LIMIT 1")or die ('nepodarilo sa spojit s db');
       while ($query2=mysql_fetch_array($query)){ 
        $stareheslo=$query2['heslo'];  //v hranatej zatvorke musi byt nazov stlpcu databazy s danym udajom
        $email=$query2['email'];
  }
  if($stareheslo==$heslo){
	  $sql=mysql_query("UPDATE users SET heslo='$noveheslo', email='$novymail' WHERE login='$ktosi' LIMIT 1");
  }esle{ 
	  echo" zadane hesla sa musia byt rovnake";
  } 
}  
?>


<form action="#" method="post"><br> 
<input type="hidden" name="odoslane" value="">
Váš Login: <? echo $ktosi; ?><br> 
Váša e-mailová adresa: <?php echo $email; ?><br><br>
Staré heslo:<INPUT TYPE="password" NAME="heslo">(pre overenie)<br> 
Nové heslo: <INPUT TYPE="password" NAME="noveheslo"><br> 
Nové heslo 2:<INPUT TYPE="password" NAME="noveheslo2">(pre potvrdenie)<br> 
Nová e-mailová adresa :<INPUT TYPE="text" NAME="novymail" VALUE="<?php echo $email; ?>"><br>
<INPUT CLASS="button" TYPE="submit" VALUE="Uložiť zmeny"> 
<INPUT CLASS="button" TYPE="reset" VALUE="Zrušiť">
</p></form>
aaaa
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 241
Registrovaný: 23 okt 2005, 13:22

Príspevok od používateľa aaaa »

ok diky.
Napísať odpoveď