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

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
Odpovídá na Ondřej Langr (andysekcze)
Ondřej Štorc:29.5.2015 17:16

Mohl bys tu otázku napsat znova?

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):29.5.2015 17:19

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:29.5.2015 17:22

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):29.5.2015 17:27
<!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="[email protected]" 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:29.5.2015 17:30

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:29.5.2015 18:17

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
Usmívej se, zítra už tvůj kód nemusí fungovat!
Avatar
Michal Vašíček
Tým ITnetwork
Avatar
Michal Vašíček:29.5.2015 18:18

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):29.5.2015 18:28

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
Go hard or go home!
Avatar
Ondřej Langr (andysekcze):29.5.2015 21:10

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:29.5.2015 21:17

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:29.5.2015 21:24

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
Usmívej se, zítra už tvůj kód nemusí fungovat!
Avatar
Odpovídá na IT Man
Martin Konečný (pavelco1998):29.5.2015 22:00

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
Go hard or go home!
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.