POST neberie údaje z formulára – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

POST neberie údaje z formulára – PHP – Fórum – Programujte.comPOST neberie údaje z formulára – PHP – Fórum – Programujte.com

 

Jozef
~ Anonymní uživatel
61 příspěvků
5. 9. 2016   #1
-
0
-

Čauko, mám problém v PHP mám viacero súborov --> index.php cookies.php contact.php a v pravej strane sa zobrazí formulár, ak session ID nie je a ak je, tak sa zobrazí text: si príhlasený. Problém je, že formulár je includovaný cez php súbor, teda -----------       if session id then si prihláseny else include form.php form php obsahuje formulár + php funkciu no neviem správne asi nastaviť action a taktiež mi neberie žiadne údaje, ak to skúšam cez var_dump, tak string 0 .. Prosím o pomoc.. neviem si pomôcť  

FORM.php


<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" name="login" id="form-login">

<br />
<input  type="text" name="username"  alt="username" placeholder=Meno style="width:100%" />

<input type="password" name="password"  size="18" alt="password" placeholder=Heslo style="width:100%" />

<button type="submit" name="odoslat" class="xmiddle blue button round">Prihlásiť!</button>
<ul>
<li>
<a href="register.php">Vytvoriť účet</a>
</li>
</ul>
</form> 
<?php  
include("functions.php");
var_dump($_POST['odoslat']);
if(isset($_POST['odoslat'])){

    $username = ($_POST['username']);
    $password = ($_POST['password']);
    $login_check = mysqli_query($con,"SELECT `id` FROM `user` WHERE `username`='$username' AND `password`='".sha1($password)."'") or die (mysqli_error($con));
    if(mysqli_num_rows($login_check) == 0){
      $echo = "Nesprávna kombinácia mena/hesla!";
    }else{
      $activated_check = mysqli_query($con,"SELECT `activated` FROM `user` WHERE `username`='$username' AND `password`='".sha1($password)."'") or die (mysqli_error($con));
      $activated = mysqli_fetch_assoc($activated_check);
      if($activated['activated'] == 0){
        $echo = "Tento účet ešte nebol aktivovaný!";
      }else{
        $get_id = mysqli_fetch_assoc($login_check);
        $_SESSION['uid'] = $get_id['id'];
       header("Location: main.php");
      }       
    }
  }

  ?>

Functions.php  



 <?php
$con = mysqli_connect("localhost","root","","nationwars");


// Check connection
if (mysqli_connect_errno())
  {
  echo "Problém s napojením na MySQL: " . mysqli_connect_error();
  }
?>

index.php  

 <?php 
  include ('header.php');
 ?>
<style>.art-content .art-postcontent-0 .layout-item-0{border-top-width:1px;border-top-style:dotted;border-top-color:#707070;margin-top:10px;margin-bottom:10px}.art-content .art-postcontent-0 .layout-item-1{padding-right:10px;padding-left:10px}.art-content .art-postcontent-0 .layout-item-2{border-right-style:dotted;border-right-width:1px;border-right-color:#707070;padding-right:10px;padding-left:10px}.ie7 .art-post .art-layout-cell{border:none!important;padding:0!important}.ie6 .art-post .art-layout-cell{border:none!important;padding:0!important}</style></head>
<body>
<div id="art-main">
<header class="art-header">
<div class="art-shapes">
</div>
<h1 class="art-headline" data-left="66.04%">
<a href="#">Nation Wars</a>
</h1>
<h2 class="art-slogan" data-left="39.8%">Dobi svet a užívaj si slávu</h2>
</header>
<nav class="art-nav">
<ul class="art-hmenu"><li><a href="index.php" class="active">Novinky</a></li><li><a href="screenshoty.php">Screenshoty</a></li><li><a href="cookies.php">Cookies</a></li><li><a href="kontakt.php">Kontakt</a></li></ul>
</nav>
<div class="art-sheet clearfix">
<div class="art-layout-wrapper">
<div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell art-sidebar1"><div class="art-vmenublock clearfix">
<div class="art-vmenublockcontent">
<ul class="art-vmenu"><li><a href="index.php" class="active">Novinky</a></li><li><a href="screenshoty.php">Screenshoty</a></li><li><a href="cookies.php">Cookies</a></li><li><a href="kontakt.php">Kontakt</a></li></ul>
</div>
</div></div>
<div class="art-layout-cell art-content"><article class="art-post art-article">
<div class="art-postmetadataheader">
<h2 class="art-postheader"><span class="art-postheadericon">New Page</span></h2>
</div>
<div class="art-postcontent art-postcontent-0 clearfix"><div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell layout-item-1" style="width:100%">
<h3>Novinky stránka</h3><p>4.8.2016 sme vydali novú aktualizáciu vzhľadu hry, je vytvorený nami, teda už nevyužívame templaty tretích strán, ako tomu bolo doteraz.&nbsp;</p><p><br></p>
</div>
</div>
</div>
<div class="art-content-layout-br layout-item-0">
</div><div class="art-content-layout">
<div class="art-content-layout-row">
<div class="art-layout-cell layout-item-2" style="width:50%">
<h3>Začnite</h3><p>Vyberte si jednu zo šiestich vojenských frakcií a dobývajte svet! Hra ponúka identické misie, ktorým museli čeliť spojenci, i mocnosti Osi počas druhej svetovej vojny. Každá frakcia ponúkne svoje najlepšie vybavenie jednotiek, či zbraní i vozidiel, ktoré boli reálne nasadené v bojoch!</p><p><br></p>
</div><div class="art-layout-cell layout-item-1" style="width:50%">
<h3>Analýza hráčov</h3><p><span style="font-weight:bold">Na serveri je registrovaných XX hráčov</span></p>
</div>
</div>
</div>
</div>
</article></div> <div class="art-layout-cell art-sidebar2"><div class="art-block clearfix">
<div class="art-blockheader">
<h3 class="t">Prihlásienie</h3>
</div>
<div class="art-blockcontent">
 <?php 
 include ('functions.php');
 session_start();
 
 if(isset($_SESSION['uid'])){  ?>
   <center> <h2> Ste už prihlásený! </h2> <br>
   <a href='main.php'><button type="button"  class="xmiddle green button round">Späť do hry!</button></a>
   <a href='logout.php'><button type="button"  class="xmiddle red button round">Odhlásiť!</button></a></center>                          
<?php  } else {

include ('form.php');  }
?>

</div>
</div></div>
</div>
</div>
</div><footer class="art-footer">
<p><a href="register.php">Registrácia</a>&nbsp;| <a href="blog%20posts/podmienky.php">Podmienky</a>&nbsp;| <a href="blog%20posts/prehlasenie.php">Prehlásenie o ochrane osobných údajov</a></p>
<p>Copyright © 2016 Nation Wars, Všetky práva vyhradené</p>
</footer>
</div>

</div>
</body></html>
Nahlásit jako SPAM
IP: 84.16.53.–
Kit+15
Guru
5. 9. 2016   #2
-
0
-

#1 Jozef
Zpracování dat z formuláře musí být na začátku skriptu - ještě před vypsáním formuláře.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jozef
~ Anonymní uživatel
61 příspěvků
5. 9. 2016   #3
-
0
-

#2 Kit
Áno, dal som to nad, no problém pretrváva, po kliknutí na prihlásiť mi var_dump vráti toto: string(0) ""

Nahlásit jako SPAM
IP: 84.16.53.–
Kit+15
Guru
5. 9. 2016   #4
-
0
-

#3 Jozef
Ten var_dump() patří až dovnitř následující podmínky. Nesmíš nic vypisovat před zpracováním formuláře (ani ten formulář), protože pak přestane fungovat funkce header().

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jozef
~ Anonymní uživatel
61 příspěvků
5. 9. 2016   #5
-
0
-

#4 Kit
Chápem, no skusil som to dať preč a s formulárom sa nič nestane, stále sa iba refreshne.. v čom by mohol byť ešte problém? Lebo už fakt netuším

Nahlásit jako SPAM
IP: 84.16.53.–
Jozef
~ Anonymní uživatel
61 příspěvků
5. 9. 2016   #6
-
0
-

Už to ide.. mal som podmienku if activated = 0 tak napíše že účet nie je aktivovaný.. i keď mi to nevypísalo.. :) už to ide dik za ochotu

Nahlásit jako SPAM
IP: 84.16.53.–
Kit+15
Guru
5. 9. 2016   #7
-
0
-

#6 Jozef
Máš tam ještě pár nelogických věcí a máš tam také díru SQL Injection.

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jozef
~ Anonymní uživatel
61 příspěvků
5. 9. 2016   #8
-
0
-

Vedel by si mi ju poradiť opraviť prosím?

Nahlásit jako SPAM
IP: 84.16.53.–
Kit+15
Guru
5. 9. 2016   #9
-
0
-

#8 Jozef
Nauč se používat Prepared statements - ty to vyřeší a zároveň zjednoduší SQL dotazy.

S ovladačem MySQLi už nepracuji, používám jen PDO. Budeš si to muset dohledat na php.net

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

Podobná vlákna

Z formulára premenná — založil Black.Shadow

Iny tvar formulara — založil jáchim

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý