Chybné zpracování registračního formuláře.
Ahoj,
mám problém s pracování registračního formuláře.
Pokud se do hesla zadávají jen číslice, tak je vše ok a heslo se zahašuje.
Pokud heslo obsahuje písmeno zapíše se heslo se kterým přistupuji do datábáze.
Takže kdokoliv se zaregistruje a použije v hesle písmeno tak se mu zapíše stejné heslo a to ještě heslo se kterým přistupuji já do db.
Nějak to nechápu.
Přikládám kod.
<?php
ob_start(); // cachujeme vystup
if(isset($_POST['sent'])){ // pokud byl odeslan formular pokracuj timto
$jmeno=trim($_POST['jmeno']);
$heslo1=$_POST['heslo1'];
$heslo2=$_POST['heslo2'];
$mail=trim($_POST['mail']);
$bl=$_SERVER['HTTP_REFERER'];
if($jmeno=="" or $heslo1=="" or $mail==""){ // pokud nebylo vyplněno něco z toho, co je povinné, dáme vědět a skript ukončíme
$backlink="index.php?page=registrace&Alert=1";
}else{ // povinné udaje vyplněny vsechny
require "settings.php"; // pripojime se k databazi
$PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `uzivatele` WHERE `jmeno`='$jmeno' OR `mail`='$mail'"), 0);
if($PocetStejnych!=0){ // pokud v db je jiz takove jmeno nebo heslo...
$backlink="index.php?page=registrace&Alert=2";
}elseif($heslo1 != $heslo2){ // pokud se hesla nerovnají
$backlink="index.php?page=registrace&Alert=3";
}else{ // hesla se shoduji, vlozime tedy data do databaze
$heslo=md5($heslo1); // zahashujeme heslo
}
$VlozData=mysql_query("INSERT INTO uzivatele (jmeno,heslo,mail) VALUES ('$jmeno', '$heslo', '$mail')") or die (mysql_error());
// Vlozim do tabulky hodnoty - prvni je ID - nevyplnim, tvori se samo.
// Jako posledni hodnota je "0", to jsou ty prava uzivatele.
$backlink="$bl"; // presmerovani s hlaskou ze je vse OK
}
}else{
$backlink="index.php?page=registrace&Alert=5";
}
// pokud pouzijete HEADER LOCATION tak by pred nim nemelo byt zadne platne ECHO
//echo "<a href='index.php'>index</a>";
// samozrejme zde muze byt presmerovani na jinou stranku pomoci
header ("Location: $backlink");
ob_end_flush();
?>
Asi jsem to vyřešil že jsem v DB použil místo varchar jen char.