Registrace uživatelů unexpected T_variable – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Registrace uživatelů unexpected T_variable – PHP – Fórum – Programujte.comRegistrace uživatelů unexpected T_variable – PHP – Fórum – Programujte.com

 

Zwei
~ Anonymní uživatel
10 příspěvků
30. 3. 2014   #1
-
0
-

   

  <form id="frm" name="frm" method="POST" action="register.php">
      <span>Login</span><input type="text" name="nick" value="nick">
      <span>Heslo</span><input type="password" name="heslo">
      <button type="submit" value="odeslat" name="odeslat">
  </form>
<?php 
include "config.php";
session_start();
$sql=mysql_query ("SELECT ID_USER FROM tbluser WHERE nick = "$_POST['nick']"");
$num_rows = mysql_num_rows($sql);
if (isset($_POST['nick']) && isset($_POST['heslo']))
{
	if($num_rows == 1)
	echo "Uživatel existuje";  
else 
  {
    mysql_query("INSERT INTO tbluser(`nick`, `heslo`) VALUES
      ('$_POST['nick']', '".md5($_POST['heslo'])."')");
    echo "Registrace Dokončena.";  
  }
}
?>
 

Zdravim, hlásí mi to chybu na devátém a desátém řádku, může někdo poradit? děkuji :)

Nahlásit jako SPAM
IP: 109.80.180.–
KIIV
~ Moderátor
+43
God of flame
30. 3. 2014   #2
-
0
-


"SELECT ID_USER FROM tbluser WHERE nick = "$_POST['nick']""
 

takhle se retezce v php nespojuji

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zwei
~ Anonymní uživatel
10 příspěvků
30. 3. 2014   #3
-
0
-

Díky, zkusil jsem to opravit na  

$sql=mysql_query ("SELECT ID_USER FROM tbluser WHERE nick = ".'$_POST['nick']'."");

a furt mi to nefunguje, prosím kde dělám chybu? teď mi to hází unexpected T_STRING 

Nahlásit jako SPAM
IP: 109.80.180.–
Kit+15
Guru
30. 3. 2014   #4
-
0
-

#3 Zwei
Výsledek není SQL, proto by se proměnná neměla jmenovat $sql. Nauč se prepared statements, ať tam nemáš SQL injekce.

<?php
$select = $db->prepare("SELECT ID_USER FROM tbluser WHERE nick = ?";
$select->execute(array($_POST['nick']));
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zwei
~ Anonymní uživatel
10 příspěvků
30. 3. 2014   #5
-
0
-

Kit, děkuji, dělám to do školy, profesor má nesmyslný nároky a vlastní pravidla, zakázal nám používání prepare a execute, takže to moc neumim použít. nešlo by to prosím ještě nějak ? :X  

</style>
  <form id="frm" name="frm" method="POST" action="register.php">
      <span>Login</span><input type="text" name="nick" value="nick">
      <span>Heslo</span><input type="password" name="heslo">
      <button type="submit" value="odeslat" name="odeslat">
  </form>
<?php 
include "config.php";
session_start();
if (isset($_POST['nick']) && isset($_POST['heslo']))
{
	$select = $db->prepare("SELECT ID_USER FROM tbluser WHERE nick = ?"
	$select->execute(array('$_POST['nick']'));
	if(mysql_num_rows($select) == 0) 
	{
		echo "Uživatel existuje"; 
	}
else 
  {
    mysql_query("INSERT INTO tbluser(`nick`, `heslo`) VALUES ('$_POST['nick']', '".md5($_POST['heslo'])."')");
    echo "Registrace Dokončena.";  
  }
}
?>
Nahlásit jako SPAM
IP: 109.80.180.–
Kit+15
Guru
30. 3. 2014   #6
-
0
-

#5 Zwei
Šlo. V PDO je ještě metoda quote().

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kit+15
Guru
30. 3. 2014   #7
-
0
-

#5 Zwei
 Tohle máte také zakázáno?

<?php
session_start();
$pdoptions = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
);
$db = new PDO("mysql:host=localhost;dbname=test", null, null, $pdoptions);
$db->query(<<<EOT
CREATE TABLE tbluser(
    id integer primary key auto_increment,
    nick varchar(30) UNIQUE,
    heslo char(32)
)
EOT
);
if (isset($_POST['nick']) && isset($_POST['heslo'])) {
    try {
        $nick = $db->quote($_POST['nick']);
        $heslo = md5($_POST['heslo']);
        $db->query("INSERT INTO tbluser(`nick`, `heslo`) VALUES ($nick, '$heslo')");
        echo "Registrace dokončena.";
    } catch (Exception $e) {
        echo "Uživatel existuje";
    }
}
?>
<form id="frm" name="frm" method="POST" action="register.php">
    <span>Login</span><input type="text" name="nick" value="nick">
    <span>Heslo</span><input type="password" name="heslo">
    <button type="submit" value="odeslat" name="odeslat">
</form>
Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zwei
~ Anonymní uživatel
10 příspěvků
30. 3. 2014   #8
-
0
-

EOT jsme ani nebrali, ale funguje to děkuji mockrát:) můžu se jen zeptat jak nahradit drop table aniž bych dostal chybu? údaje by tam měli zůstat a při každém spuštění skriptu se smaže tabulka s údaji:)

Nahlásit jako SPAM
IP: 109.80.180.–
Kit+15
Guru
30. 3. 2014   #9
-
0
-

#8 Zwei 

<?php
$db->query("DROP TABLE IF EXISTS tbluser");

EOT je jen obyčejné slovo, které se v tom textu nevyskytuje. Můžeš místo něho použít třeba KONEC.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zwei
~ Anonymní uživatel
10 příspěvků
30. 3. 2014   #10
-
0
-

Aha:) jak řikám, nebrali jsme to. když smažu to query tak mi to hází chybu ale to už je maličkost kterou kterou předělám, děkuju moc za všechno :)

Nahlásit jako SPAM
IP: 109.80.180.–
Kit+15
Guru
30. 3. 2014   #11
-
0
-

#10 Zwei
Tohle je jeden příkaz: 

<?php
$db->query(<<<EOT
CREATE TABLE tbluser(
    id integer primary key auto_increment,
    nick varchar(30) UNIQUE,
    heslo char(32)
)
EOT
);

Když z něho odstraníš první řádek, tak to přestane fungovat. Jmenuje se to Heredoc a používá se to k zápisu víceřádkových řetězců. Umí expandovat $proměnné a $objekty, ale uvozovky a apostrofy jsou brány jako normální znaky. Proto se hodí ke generování výstupu.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zwei
~ Anonymní uživatel
10 příspěvků
30. 3. 2014   #12
-
0
-

To vypadá užitečně, zase jsem se něco přiučil, děkuji:) jen doufám že mě za to profesor neseřve nemá rád když umíme něco co nás neučil   

Nahlásit jako SPAM
IP: 109.80.180.–
Kit+15
Guru
30. 3. 2014   #13
-
0
-

#12 Zwei 

Tohle v daném případě funguje úplně stejně. Jen je to jinak napsáno.

<?php
$db->query("CREATE TABLE tbluser(
    id integer primary key auto_increment,
    nick varchar(30) UNIQUE,
    heslo char(32)
)");

BTW: To není zrovna moc povedený profesor. Kolik je mu let? Pokud je starý, tak se to ještě dá tolerovat, ale vím, že i mnozí mladí učí děsně staré věci. V dějepisu to tolik nevadí, ale v programování je 10 let hrozně dlouhá doba a pokud to chce někdo učit, musí aktivně programovat se současnými jazyky.

Nahlásit jako SPAM
IP: 46.174.34.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zwei
~ Anonymní uživatel
10 příspěvků
30. 3. 2014   #14
-
0
-

Netušim kolik mu je, ale neni starý, bohužel kvůli němu odchází ze školy každý rok třetina žáků a třídy IT se, jak je u nás ´zvykem´ spojej už v prváku :)

Nahlásit jako SPAM
IP: 109.80.180.–
Kit+15
Guru
30. 3. 2014   #15
-
0
-

#14 Zwei
Často mám pocit, že výuka programování ve třídě je méně efektivní, než výuka na Internetu.  Pro obě strany.

Nahlásit jako SPAM
IP: 46.174.34.–
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, 13 hostů

Podobná vlákna

Unexpected end of file — založil Martin

Přihlašování uživatelů — založil schimpanze

Přihlašování uživatelů — založil Alex Candle

Přihlašování uživatelů — založil Pavelv

 

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