Autor Zpráva
technik
Profil
Tento kód by měl zkontrolovat data z formu, vygenerovat heslo, a to pak poslat. Chyba nastane na řádku 27.

<?php
include "data/db_connect.php";
if (isset($_POST['submit'])){
	if (empty($_POST['username'])){
		echo "Nevyplnil jste jméno!";
		exit();
	}
	else{
		$jmeno=$_POST['username'];
	}
	if (empty($_POST['email'])){
		echo "Nevyplnil jste email!";
		exit();
	}
	else{
		$heslo=$_POST['email'];
	}
	$cestina= mysql_query("SET CHARACTER SET utf8");
	$query = mysql_query("SELECT username,email FROM `auth` WHERE username = `$jmeno`, email = `$email`" , $db_spoj);
	while ($polozka = mysql_fetch_array($query)){
		if ($jmeno == $polozka['username']&&$email == $polozka['email']){
			$moznosti= array("1","2","3","4","5","6","7","8","9","0","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
			$mista="15";
			$heslo="";
			for ($i=0 ;$i<=$mista-1 ;$i++){
				$nahoda=rand(0, count($moznosti)-1);
				global $heslo.="$moznosti[$nahoda]";
			}
		}
		else{
			echo "Zadaná data se neschodují s ničím v databázi!";
	}
	$zmena = mysql_query("UPDATE `auth` SET `password` = '$heslo' WHERE `username` = '$jmeno' AND `email` = '$email'", $db_spoj);
	$mrs="no-reply@mrs.xf.cz";
	$predmet="MRS - Zapomenute heslo";
	$zprava="Nekdo, patrne vy, pozadal o zaslani hesla k administracnimu uctu mrs. Bylo Vam vygenerovano nove heslo $heslo. To si muzete zmenit v nastaveni MRS.";
	echo "Na e-mail: $email byly odeslány přihlašovací údaje.";
	mail("$email", $predmet, $zprava, "From: " .$mrs);
}
?>


Chyba je :
Parse error: parse error, expecting `','' or `';'' in /3w/xf.cz/m/m-rs/admin/lost_pass.php on line 27
AM_
Profil
Stačí si přeložit chybovou hlášku, na řádku 27 chybí středník. Je to strašný syntaktický paskvil, jednak nechápu, proč tam heslo deklaruješ jako global (což zřejmě působí ten problém, "global" tam nemá co dělat), druhak mi není jasné, proč tam tu proměnnou dáváš do uvozovek.
Vidím tam hned další chybu, tomu else pod tím chybí ukončovací závorka, asi toho tam budeš mít víc.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0