Chyba v PHP kódu. – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Chyba v PHP kódu. – PHP – Fórum – Programujte.comChyba v PHP kódu. – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
pari
~ Anonymní uživatel
4 příspěvky
18. 9. 2015   #1
-
0
-

Dobrý den programuju si webové stránky v php a furt mi to vyhazuje chybu typu:

Parse error: syntax error, unexpected '"')"' (T_CONSTANT_ENCAPSED_STRING)

Byl bych moc rád za pomoc :)

Kód:

<?php
if(!isset($_POST['createAcc'])){
	$user = htmlentities($_POST['username']);
	$email = htmlentities($_POST['email']);
	$conEmail = htmlentities($_POST['conEmail']);
	$pass = htmlentities($_POST['password']);
	$conPass = htmlentities($_POST['conPassword']);
	if($email == $conEmail){
		if($pass == $conPass){
			$con = mysqli_connect("localhost","root","","cmefuture");
			$results = mysqli_fetch_assoc(mysqli_query($con,"SELECT email FROM logins WHERE username = '".$user."'"));
			if($results == NULL){
				$q = mysqli_fecth_assoc(mysqli_query($con,"SELECT id FROM logins WHERE '".$email."'"));
				if($emaiCheck == NULL){
					//Vytvoření účtu
				$q = mysqli_query($con,"INSERT INTO logins (username,password,email) VALUES ('".$user."','".sha1($pass)."','".$email"')");
				echo "Uživatel byl vytvořen!";
		} else {
			echo "Email už je použit.";
		} else {
			echo "Přezdívka již existuje.";
			} else {
			echo "Prosím ověřte zda se heslo shoduje s potvrzením.";
		}
	} else {
		echo "Prosím ověřte zda se email shoduje s potvrzením.";
	}
}
?>
Nahlásit jako SPAM
IP: 62.168.2.–
Reklama
Reklama
lukas.balaz0
Super člen
18. 9. 2015   #2
-
+1
-
Zajímavé
Kit +

   

$q = mysqli_query($con,"INSERT INTO logins (username,password,email) VALUES ('".$user."','".sha1($pass)."','".$email"')");

Za $email ti chýba bodka.

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+11
Guru
18. 9. 2015   #3
-
0
-

#1 pari
Za $email ti chybí tečka před uvozovkami.

Takový insert je poněkud nepřehledný. Máš snad něco proti tomuto? 

$insert = $db->prepare("INSERT INTO logins (username, password, email) VALUES (?, ?, ?)";
$insert->execute([$user, sha1($pass), $email]);

Je to přehlednější, uděláš v tom méně chyb a hlavně jsem ti odstranil tu bezpečnostní díru jako vrata, kterou ti tam vleze kdejaký jouda a zlikviduje ti databázi.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
pari
~ Anonymní uživatel
4 příspěvky
18. 9. 2015   #4
-
0
-

Už to funguje díky lukas.balaz :)

Kit : Díky za dobrý nápad určitě to využiju :)

Jinak momentálně mi to píše jinou chybu a to : Parse error: syntax error, unexpected 'else' (T_ELSE)

Předem díky za opravu rád se naučím jelikož jsem v PHP,MySQL nováček :)

Nahlásit jako SPAM
IP: 62.168.2.–
Kit+11
Guru
18. 9. 2015   #5
-
0
-

#4 pari
Pokud jsi nováčkem, zkus tohle: 

<?php
$dbHost = "localhost";
$dbUser = "root";
$dbPass = "cmefuture";
$dbName = "cmefuture";
$dsn = "mysql:host=$dbHost;dbname=$dbName";
$dbAttributes = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
if (isset($_POST['createAcc'])) {
    try {
        $user = $_POST['username'];
        $email = $_POST['email'];
        $conEmail = $_POST['conEmail'];
        $pass = $_POST['password'];
        $conPass = $_POST['conPassword'];
        if ($email != $conEmail) {
            throw new Exception("Prosím ověřte zda se email shoduje s potvrzením.");
        }
        if ($pass != $conPass) {
            throw new Exception("Prosím ověřte zda se heslo shoduje s potvrzením.");
        }
        $db = new PDO($dsn, $dbUser, $dbPass, $dbAttributes);
        $insert = $db->prepare("INSERT INTO logins (username,password,email) VALUES (?, ?, ?)");
        $insert->execute(array($user, sha1($pass), $email));
    } catch (Exception $e) {
        echo $e->getMessage(), "\n";
    }
}

a v databázi si sloupečky username a email označ UNIQUE.

Jak vidíš, dohledávání "else" mě už netrápí, protože jsem je přestal používat.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
pari
~ Anonymní uživatel
4 příspěvky
18. 9. 2015   #6
-
0
-

#5 Kit
Super vše funguje děkuju vám moc za radu :) Jinak díky Kit vážím si toho že si mi pomohl :)

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

 

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