Avatar
Odpovídá na Ondřej Langr (andysekcze)
Ondřej Langr (andysekcze):

PS: potom to plánuju narvat do víc souborů ;)

Editováno 29.5.2015 16:54
Odpovědět 29.5.2015 16:52
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Nahoru Odpovědět 29.5.2015 17:16
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Ondřej Langr (andysekcze):

Pomohl by mi někdo vyřešit problém kde je chyba?

Nahoru Odpovědět 29.5.2015 17:19
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Odpovídá na Ondřej Langr (andysekcze)
Ondřej Štorc:

Ale kde? Ukaž kód a napiš co ti to dělá a co by to mělo dělat...

Nahoru Odpovědět 29.5.2015 17:22
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Ondřej Langr (andysekcze):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="vzhled/styl.css" type="text/css">
<link rel="icon" href="vzhled/favicon.ico">
<title>Registrace</title>
</head>

<body class="registrace">
<?php
$jmeno = $_POST["jmeno"];
$heslo = $_POST["heslo"];
$hesloz = $_POST["heslo_znovu"];
$email = $_POST["email"];
$pohl = $_POST["pohl"];
$bydlsite = $_POST["bydliste"];
$den = $_POST["den"];
$mesic = $_POST["mesic"];
$rok = $_POST["rok"];
$vek = "'$den' . '$mesic' . '$rok'";
$trida = $_POST["trida"];
$gym = $_POST["gymnazium"];
$zs = $_POST["zaklskol"];
$jmenoskoly = $_POST["jmenskol"];
$skola = $_POST["skola"];
$pottlac = $_POST["registrivat"];
$potcheck = $_POST["poduziv"];
$errors = array();
if ($_POST["$pottlac && $potcheck"]) {
  if (empty($jmeno)) {
    $errors[] = "Nebylo vyplněno jméno!";
  }
  if (empty($heslo)) {
    $errors[] = "Nebylo vyplněno heslo!";
  }
  if (empty($hesloz)) {
    $errors[] = "Nebylo vyplněno kontrolní heslo!";
  }
  if (empty($email)) {
    $errors[] = "Nebyl vyplněn email!";
        if (empty($vek)) {
    $errors[] = "Nebyl vyplněn věk!";
  }
  if (empty($podcheck)) {
    $errors[] = "Nesouhlasíte s pravidly používání!";
  }

  if (empty($errors)) {
      if (strlen($jmeno) <= 8 AND strlen($jmeno) >= 50) {
      $errors[] = "Jméno obsahuje příliš málo znaků!";
    }
    if ($heslo !== $hesloz) {
      $errors[] = "Zadaná hesla se neshodují!";
    }
    if (strlen($heslo) >=6 && strlen($heslo) <= 32) {
      $errors[] = "Heslo musí obsahovat minimálně 6 a maximálně 32 znaků!";
    }

    if(empty($errors))
    {
      if($zaklskol && $gym){
        $errors[] = "Můžete zvolit pouze jednu možnost!";
      }

          if($gym == 9){
                $errors[] = "Pokud zvolíte Gymnázium, můžete zvolit pouze 1. až 8. ročník!";
          }

      if(empty($skola)){
        $errors[] = "Musíte zadat na kterou školu chodíte!";
          }

    }

    if (empty($errors)) {
        $hesloh = md5(sha1($heslo));
        include "config.php";
        mysql_query("INSERT INTO 'uzivatele' WHERE jmeno='$jmeno' heslo='$hesloh' email='$email' den='$den' mesic='$mesic' rok='$rok' bydliste='$bydliste' pohlavi='$pohl'  skola_druh='$skola' skola='$jmenoskoly' ");
    }
  }
}
?>
<h1 id="cbl">Registrace na ClassBooku.</h1>
<p>
<div class="registrace">
<table>
  <form action="<?php $PHP_SELF; ?>" method="POST" >
    <tr><td>Celé jméno: </td><td><input placeholder="Adam Novák" name="jmeno" type="text" /></td></tr>
    <tr><td>Heslo: </td><td><input type="password" name="heslo" /></td></tr>
    <tr><td>Heslo znovu: </td><td><input type="password" name="heslo_znovu" /></td></tr>
    <tr><td>E-mail: </td><td><input placeholder="tukan@tokarev.epsilon" type="text" name="email"  /></td></tr>
    <tr><td>Věk: </td><td><select aria-label="den" title="den" name="den" >
    <option value="1" selected="selected" required>01</option>
    <option value="2">02</option>
    <option value="3">03</option>
    <option value="4">04</option>
    <option value="5">05</option>
    <option value="6">06</option>
    <option value="7">07</option>
    <option value="8">08</option>
    <option value="9">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    </select><select aria-label="měsíc" title="měsíc" name="mesic" required>
    <option value="1" selected="selected">01</option>
    <option value="2">02</option>
    <option value="3">03</option>
    <option value="4">04</option>
    <option value="5">05</option>
    <option value="6">06</option>
    <option value="7">07</option>
    <option value="8">08</option>
    <option value="9">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    </select><select name="rok" title="rok" aria-label="rok" required>
    <option value="2015" selected="selected">2015</option>
    <option value="2014">2014</option>
    <option value="2013">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    <option value="2009">2009</option>
    <option value="2008">2008</option>
    <option value="2007">2007</option>
    <option value="2006">2006</option>
    <option value="2005">2005</option>
    <option value="2004">2004</option>
    <option value="2003">2003</option>
    <option value="2002">2002</option>
    <option value="2001">2001</option>
    <option value="2000">2000</option>
    <option value="1999">1999</option>
    <option value="1998">1998</option>
    <option value="1997">1997</option>
    <option value="1996">1996</option>
    <option value="1995">1995</option>
    <option value="1994">1994</option>
    <option value="1993">1993</option>
    <option value="1992">1992</option>
    <option value="1991">1991</option>
    <option value="1990">1990</option>
    <option value="1989">1989</option>
    <option value="1988">1988</option>
    <option value="1987">1987</option>
    <option value="1986">1986</option>
    <option value="1985">1985</option>
    <option value="1984">1984</option>
    <option value="1983">1983</option>
    <option value="1982">1982</option>
    <option value="1981">1981</option>
    <option value="1980">1980</option>
    <option value="1979">1979</option>
    <option value="1978">1978</option>
    <option value="1977">1977</option>
    <option value="1976">1976</option>
    <option value="1975">1975</option>
    <option value="1974">1974</option>
    <option value="1973">1973</option>
    <option value="1972">1972</option>
    <option value="1971">1971</option>
    <option value="1970">1970</option>
    <option value="1969">1969</option>
    <option value="1968">1968</option>
    <option value="1967">1967</option>
    <option value="1966">1966</option>
    <option value="1965">1965</option>
    <option value="1964">1964</option>
    <option value="1963">1963</option>
    <option value="1962">1962</option>
    <option value="1961">1961</option>
    <option value="1960">1960</option>
    <option value="1959">1959</option>
    <option value="1958">1958</option>
    <option value="1957">1957</option>
    <option value="1956">1956</option>
    <option value="1955">1955</option>
    <option value="1954">1454</option>
    <option value="1953">1953</option>
    <option value="1952">1952</option>
    <option value="1951">1951</option>
    <option value="1950">1950</option>
    <option value="1949">1949</option>
    <option value="1948">1948</option>
    <option value="1947">1947</option>
    <option value="1946">1946</option>
    <option value="1945">1945</option>
    <option value="1944">1944</option>
    <option value="1943">1943</option>
    <option value="1942">1942</option>
    <option value="1941">1941</option>
    <option value="1940">1940</option>
    <option value="Už nevím">Už nevím</option>
    </select></td></tr>
    <tr><td>Bydliště: </td><td><input name="bydliste" type="text" required /></td></tr>
    <tr><td>Jsem: </td><td><select aria-label="Pohlaví" title="Pohlaví" name="pohl" >
    <option value="Muž" selected="selected">Muž</option>
    <option value="žena">žena</option>
    <option value="Jiné">Jiné</option>
    <option value="Bůh">Bůh</option>
    </select></td></tr>
    <tr><td>Třída: </td><td><select aria-label="Třída" tittle="Třída" name="trida" >
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    </select></td></tr>
    <tr><td>Škola:     </td><td><select aria-label="Škola" label="Škola" name="skola">
    <option value="zaklskol" selected="selected">ZŠ</option>
    <option value="gymnazium">VG</option>
    </select><input type="text" name="jmenskol" /></td></tr>
    <tr><center><td colspan="2"><input  name="registrovat" type="submit" value="Registrovat" /></td></center></tr>
    <tr><td colspan="2">Registrací souhlasíte s <a style="color: 1E90FF; text-decoration:none;" href="poduziv.php">podmínkami používání.</a><input name="podpouziv" type="checkbox" alt="Prosím zaškrtněte toto pole." /></td></tr>
   </form>
</table>
</div>
</p>
</body>
</html>

řádek 247 prej chyba. mělo by to dělat: vložit uživatele do db se všema vyplněnýma polemi (pochopitelně) ;)

Nahoru Odpovědět 29.5.2015 17:27
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

Nemuzes vkladat s podminkou WHERE... Vklada se VALUES(hodnoty k vlozeni)

Nahoru Odpovědět 29.5.2015 17:30
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Ondřej Langr (andysekcze)
IT Man:

Hele, víš, že jsi mohl ty roky a dny si dát do cyklu for a nemusel by jsi toho tolik vypisovat? :D

$rok = 2015;
for($i = 0; $i < 75; $i++)
{
    echo "<select value='" . $rok . "'>" . $rok . "</select>";
    $rok--;
}

Jinak jak píše Michal Vašíček - musíš mít dotaz ve tvaru (při vkládání):

INSERT INTO tabulka(sloupec1, sloupec2, sloupec3) VALUES($promenna1, $promenna2, $promenna)

Btw. není zde ošetřena SQL injection stejně jako u tebe. A mysql_query jsou zastaralé. Koukni na zdejší tutoriály na PDO, kde vyřešíš i tu SQL injection. :)

Nahoru Odpovědět  +2 29.5.2015 18:17
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:

Omlouvám se za doublepost, ale předtím jsem psal z mobilu, takže to teď trochu rozvinu... Správně to má být:

INSERT INTO 'uzivatele' VALUES(jmeno='$jmeno', heslo='$hesloh', email='$email', den='$den', mesic='$mesic', rok='$rok', bydliste='$bydliste', pohlavi='$pohl,' skola_druh='$skola', skola='$jmenoskoly')"

A rada pro tebe - používej PDO. Velmi dobře udělaný wrapper nalezneš zde na síti v tutoriálech MySQL pro začátečníky (teď přesně nevím, jak se to jmenuje, tak se omlouvám za případné chybky). Ovládat se ho naučíš za chvíli (Db::query, Db::querySingle, Db::queryOne, Db::queryAll) - vše najdeš v tutorialu, a určitě to stojí za bezpečnost, kterou tím získáš. Takhle můžu na tvůj web použít SQL injection (upravit dotaz).
//EDIT Kurňa, předběhl mě IT Man

Editováno 29.5.2015 18:19
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 29.5.2015 18:18
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
Martin Konečný (pavelco1998):

Jsem rád, že alespoň použil něco z našich článků a kontroluje formulář tím hezčím způsobem :D

Nicméně bych ještě doporučil přečíst něco o SQL injection.

 
Nahoru Odpovědět 29.5.2015 18:28
Avatar
Ondřej Langr (andysekcze):

všem hrozně moc děkuji za pomoc... Nejradši bych označil všechny odpovědi jako řešení :)

Nahoru Odpovědět 29.5.2015 21:10
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Odpovídá na Ondřej Langr (andysekcze)
Michal Vašíček:

Ještě rada pro tebe - na ty roky si napiš v PHP cyklus. Bude to mnohem méně kódu, ale pro uživatele to samé :-)
//EDIT Aha, IT Man už ti to poradil... Měly by se tu dát mazat příspěvky...

Editováno 29.5.2015 21:18
Nahoru Odpovědět  +1 29.5.2015 21:17
Příspěvek může obsahovat stopy arašídů, sarkasmu a sóji.
Avatar
IT Man
Redaktor
Avatar
Odpovídá na Michal Vašíček
IT Man:

Vždy ti vezmu myšlenku ... :D

I na ty dny. Tam stačí obyčejný $i, které můžeš jen vypsat i s tou hodnotou (stejné jako u roků, akorát u měsíců stačí jedna proměnná).

Nahoru Odpovědět  +1 29.5.2015 21:24
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Odpovídá na IT Man
Martin Konečný (pavelco1998):

Možná by bylo vhodnější nepsat aktuální rok staticky, aby to nemusel každý rok upravovat :D

$rok = (int) date("Y");
$min = $rok - 75;
for (; $rok >= $min; $rok--) {
  echo "<option value='{$rok}'>{$rok}</option>";
}
 
Nahoru Odpovědět  +3 29.5.2015 22:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.