#1 2013-07-30 16:55:08

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

[Vyřešeno] mam problem z registraci na mem webu

právě si vytvářím svůj web a chci tam mít registraci
používám tenhle skript
<?php
  $kontrola_odeslání = $_POST["tlacitko"];
  if($kontrola_odeslání){
    $nick = $_POST["nick"];
    $heslo = $_POST["heslo"];
    $potvrd_heslo = $_POST["Potvrd_heslo"];
    $email = $_POST["email"];
    if($heslo == $potvrd_heslo){
       if($nick AND $email){
          $heslo = md5(md5 ($heslo));
          mysql_connect("https://sql9.endora.cz", "nick", "heslo");
          mysql_select_db("registrace");
          $ip = $_server["remote"];
          $zapis = mysql_qwery("INSERT INTRO uzivatele SET nick='$nick', heslo='$heslo', email='$email', ip='$ip', opravneni='1',");
          echo "úspěšně zaregistrováno.";
       }
    }
  }
?>
v skriptu doufam že nemám chybu , chyba je spíš ve spojením z mysql protože se mi jméno nechce uložit do databáze
potřebuju poradit jak udělat aby se to aji zapsalo do databáze smile za každou radu předem dík smile

Upravil vydra (2013-07-30 16:55:52)

Offline

#2 2013-07-30 16:57:17

Trade
Endora rádce
Místo: Česká republika
Registrován: 2013-01-22
Příspěvky: 3,596
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Máte vytvořené tabulky, do kterých se údaje zapisují? Změňte si https://sql9.endora.cz na "localhost".


Kontaktujte nás | FAQ
Email: fk@endora.cz

Offline

#3 2013-07-30 17:12:56

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

easyPHP použivam a zkusil jsem to předělat na local host ale dostanu se max do registrace kliknu na odeslat a nic hmm
a tabulky jsem si už vytvořil smile
ale nevím jestli mam napsane dobře tohle: mysql_connect("https://sql9.endora.cz", "nick", "heslo");
tady pikladam i z tabulkama :
<?php
  $kontrola_odeslání = $_POST["tlacitko"];
  if($kontrola_odeslání){
    $nick = $_POST["nick"];
    $heslo = $_POST["heslo"];
    $potvrd_heslo = $_POST["Potvrd_heslo"];
    $email = $_POST["email"];
    if($heslo == $potvrd_heslo){
       if($nick AND $email){
          $heslo = md5(md5 ($heslo));
          mysql_connect("http://localhost/", "nick", "");
          mysql_select_db("registrace");
          $ip = $_server["remote"];
          $zapis = mysql_qwery("INSERT INTRO uzivatele SET nick='$nick', heslo='$heslo', email='$email', ip='$ip', opravneni='1',");
          echo "úspěšně zaregistrováno.";
       }
    }
  }
?>

  <p> Registrace </p>
  <form action="<?php $PHP_SELF; ?>"mothode="POST">
    <table>
      <tr><td>Nick na serveru:</td><td><input type="text" name="nick" /></td></tr>
      <tr><td>Heslo:</td><td><input type="heslo" name="heslo" /></td></tr>
      <tr><td>Potvrď heslo:</td><td><input type="heslo" name="potvrď heslo" /></td></tr>
      <tr><td>Email:</td><td><input type="Text" name="email" /></td></tr>
      <tr><td></td><td><Input type="submit" name="tlacítko" valve="Registrovat se" /></td></tr>
    </table>
  </form>
</body>
</html>

Upravil vydra (2013-07-30 17:21:01)

Offline

#4 2013-07-30 18:00:44

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

zkoušel jsem local host jak přes easyphp tak i už na webu ale nikdy se mi to neuložilo do databáze a heslo a jméno mám správně hmm

Offline

#5 2013-07-30 18:46:41

Trade
Endora rádce
Místo: Česká republika
Registrován: 2013-01-22
Příspěvky: 3,596
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Nezadávejte jako server "http://localhost/", ale jen localhost.


Kontaktujte nás | FAQ
Email: fk@endora.cz

Offline

#6 2013-07-30 20:19:30

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

zkoušel jsem ale pořád nic hmm

Offline

#7 2013-07-30 22:20:11

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Máte tam tolik chyb, že se formulář nemůže odeslat.
Pročtěte si něco o formulářích - http://www.w3schools.com/html/html_forms.asp
a také jakých hodnot může nabývat TYPE v input - http://www.w3schools.com/tags/tag_input.asp

Trochu se pokusím vypsat pár chyb:
INSERT INTRO - neexitující SQL příkaz => INSERT INTO
FORM ... mothode - tato metoda neexistuje => FORM ... method
INPUT TYPE="heslo" - tento neexistuje => INPUT TYPE="PASSWORD"
....

Pomalu co řádek to chyba... Nepoužívejte zbytečně složité názvy proměnných a už vůbec ne s diakritikou (viz. "potvrď heslo", "tlacítko", ...)


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#8 2013-07-30 23:23:18

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

za ta chyby se omlouvám ...teprve se to učím smile
myslím že teď jsem je už opravil (použivám tohle protože tohle jedine sem na internetu našel smile)
ale pořád se mi to nechce zapsat do databaze hmm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  <title>Registrace</title>
</head>
<body>
<?php
  $kontrola_odeslani =  $_POST["tlacitko"];
  if($kontrola_odeslani){
    $nick = $_POST["nick"];
    $heslo = $_POST["heslo"];
    $potvrd_heslo = $_POST["potvrd_heslo"];
    $email = $_POST["email"];
    if($heslo == $potvrd_heslo){
      if($nick AND $email){
        $heslo = md5(md5($heslo));
        mysql_connect("localhost ", "nick", "heslo");
        mysql_select_db("databaze");
        $ip = $_SERVER["REMOTE_ADDR"];
        $zapis = mysql_query("INSERT INTO uzivatele SET nick='$nick', heslo='$heslo', email='$email', ip='$ip', opravneni='1' ;");
        echo "Registrace proběhla v pořádku."; 
      } else {
        echo "Nezadal jsi nick nebo email.";
      }
    } else {
      echo "Hesla nejsou shodná!";
    }
  }
?>

  <p>
  <form action="<?php $PHP_SELF; ?>" method="POST">
    <table>
      <tr><td>Nick: </td><td><input type="text" name="nick" /></td></tr>
      <tr><td>Heslo: </td><td><input type="password" name="heslo" /></td></tr>
      <tr><td>Potvrď Heslo: </td><td><input type="password" name="potvrd_heslo" /></td></tr>
      <tr><td>E-mail: </td><td><input type="text" name="email" /></td></tr>
      <tr><td><input type="submit" name="tlacitko" value="Registrovat" /></td></tr>
      </table>
  </form> 
  </p>
</body>
</html>

Offline

#9 2013-07-30 23:41:02

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Vynechte středník v řádku zápisu do databáze

$zapis = mysql_query("INSERT INTO uzivatele SET nick='$nick', heslo='$heslo', email='$email', ip='$ip', opravneni='1'");

Doporučuji i nastavit kódovou stránku pro připojení k databázi:

mysql_query("SET CHARACTER SET utf8");

Připojení nemáte ošetřeno na chybu - die();
Vstupní proměnné nejsou ošetřeny proti SQL injection - lze tak snadno získat Vaše data hackerem. Najděte si informace o SQL injection.

Upravil kksmirice (2013-07-30 23:43:57)


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#10 2013-07-30 23:52:00

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

Moc dík za radu smile
fakt díky smile
už se to do databáze zapsalo smile
opravdu moc díky smile

Offline

#11 2013-07-31 09:45:27

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Ošetřený kód na vstupu např.:

<?php

echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs" lang="cs">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
		<title>Registrace</title>
	</head> 
	<body>';

$kontrola_odeslani = $_POST["tlacitko"];
if($kontrola_odeslani) {
	$link = PripojDB();
	$nick = mysql_real_escape_string($_POST["nick"]);
	$heslo = mysql_real_escape_string($_POST["heslo"]);
	$potvrd_heslo = mysql_real_escape_string($_POST["potvrd_heslo"]);
	$email = mysql_real_escape_string($_POST["email"]);

	if($heslo == $potvrd_heslo) {
		if($nick AND $email) {
			$heslo = md5($heslo);
			$ip = $_SERVER["REMOTE_ADDR"];
			$dotaz = "INSERT INTO uzivatele SET nick='". $nick ."', heslo='". $heslo ."', email='". $email ."', ip='". $ip ."', opravneni='1'";
			@$vysledek = mysql_query($dotaz, $link);
			if (!$vysledek) {
				echo "Záznam se nepodařilo uložit";
			} else {
				echo "Registrace proběhla v pořádku.";
			}
		} else {
			echo "Nezadal jsi nick nebo email.";
		}
	} else {
		echo "Hesla nejsou shodná!";
	}
}
echo '
		<p>
			<form method="POST">
				<table>
					<tr><td>Nick: </td><td><input type="text" name="nick" /></td></tr>
					<tr><td>Heslo: </td><td><input type="password" name="heslo" /></td></tr>
					<tr><td>Potvrď Heslo: </td><td><input type="password" name="potvrd_heslo" /></td></tr>
					<tr><td>E-mail: </td><td><input type="text" name="email" /></td></tr>
					<tr><td><input type="submit" name="tlacitko" value="Registrovat" /></td></tr>
				</table>
			</form> 
		</p>
	</body>
</html>';

Function PripojDB()
{
	$db_host = "localhost";
	$db_user = "user";
	$db_pass = "heslo";
	$db_name = "databaze";

	$link = mysql_connect($db_host, $db_user, $db_pass);
	if (!$link)
		die ("Nelze se pripojit k MySQL serveru: ".mysql_error());

	mysql_select_db($db_name, $link);
	mysql_query("SET CHARACTER SET utf8");

	return $link;
}

Snad jsem v rychlosti neudělal chybu...


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#12 2013-08-05 11:20:08

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

píše mi to : Nelze se pripojit k MySQL serveru: Access denied for user 'nick'@'8*.8*.1**.2**' (using password: YES)

Offline

#13 2013-08-05 11:22:14

Trade
Endora rádce
Místo: Česká republika
Registrován: 2013-01-22
Příspěvky: 3,596
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Jak máte zapsané údaje? Host atp.? Chyba bude ve špatném přihlašovacím heslu k databázi, případně v jiném údaji. Zkontrolujte si je, zda máte vše správně.


Kontaktujte nás | FAQ
Email: fk@endora.cz

Offline

#14 2013-08-05 14:53:33

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

dík zatím to funguje smile  ... tak doufam že tam ja zas neco nezdrbu big_smile

Offline

#15 2013-08-05 18:07:14

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

ještě bych měl 1 otázku smile registrace funguje ale ted mam zase problém z přihlášením hmm hledal jsem na netu spoustu navodu ale nikde jsem žadnej dobrej nenašel krom tohodle ..

<body>
  <?php
    $tlacitko = $_POST["tlacitko"];
    if($tlacitko){
      $nick = $_POST["nick"];
      $heslo = $_POST["heslo"];
      $heslo = md5(md5($heslo));
      mysql_connect("localhost", "nick", "heslo");
      mysql_select_db("registrace");
      mysql_query("SET CHARACTER SET utf8");
      $zapis = mysql_query("INSERT INTO uzivatele SET nick='$nick', heslo='$heslo', email='$email', ip='$ip', opravneni='1'");
                        while($vystup = mysql_fetch_object($dotaz))
                        {
                          $id = $vystup->id;
                          $nickDB = $vystup->nick;
                          $hesloDB = $vystup->heslo;
                          $email = $vystup->email;
                          $opravneni = $vystup->opravneni;
                        }
      if($nick == $nickDB AND $heslo == $hesloDB){
        $_SESSION["id"] = $id;
        $_SESSION["nick"] = $nick;
        $_SESSION["email"] = $email;
        $_SESSION["opravneni"] = $opravneni;
        echo "Byl jsi přihlášen jako $nick";       
      }
    }
  ?>
  <p>
    <form action="<?php $PHP_SELF; ?>" method="POST"> 
      <table>
        <tr><td>Nick:</td><td><input type="text" name="nick" /></td></tr>
        <tr><td>Heslo:</td><td><input type="password" name="heslo" /></td></tr>
        <tr><td></td><td><input type="submit" name="tlacitko" value="Přihlásit se" /></td></tr>
      </table>
    </form>
  </p>
</body>
</html>


když dám přihlásit se tak se vlastně nic nestane hmm

Offline

#16 2013-08-05 20:05:00

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Jediné co se stane je zápis nového uživatele do databáze

    $zapis = mysql_query("INSERT INTO uzivatele SET nick='$nick', heslo='$heslo', email='$email', ip='$ip', opravneni='1'");

Bohužel mi to celé připadá vytržené z kontextu a mohu se jen domnívat, co by volané funkce měly dělat... Pravděpodobně SELECT * FROM uzivatele ...

                        while($vystup = mysql_fetch_object($dotaz))
                        {
                          $id = $vystup->id;
                          $nickDB = $vystup->nick;
                          $hesloDB = $vystup->heslo;
                          $email = $vystup->email;
                          $opravneni = $vystup->opravneni;
                        }

Není nikde definováno co má $dotaz provést...
Můžete se inspirovat podobným způsobem na těchto stránkách. Některé funkce a nastavení je nutno upravit, ale podstata zůstává.


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#17 2013-08-06 00:36:01

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

trochu sem to z tím zápisem zpletl big_smile mělo to bejt takhle smile $select = mysql_query("INSERT INTO uzivatele SET nick='$nick', heslo='$heslo', email='$email', ip='$ip', opravneni='1'"); ted myslim ze je to dobře ale pořad my to nejede a nechce se nic ukazat hmm

Offline

#18 2013-08-06 08:52:17

kksmirice
Endora rádce
Místo: Vrchovnice
Registrován: 2011-11-20
Příspěvky: 6,023
Web

Re: [Vyřešeno] mam problem z registraci na mem webu

Podstatou celého je uvědomit si co má script dělat a popsat si to na papír.
1. Zadej údaje do formuláře (nick a heslo);
2. Zjisti, zda je přihlašovaný registrován;
3. Pokud je registrován, pak jej přihlaš => vytvoř platnou session.

Na odkazovaných stránkách si můžete stáhnout všechny soubory v ukázce již hotové.

K Vašemu souboru:
ADD 1) Tato část vykreslí přihlašovací formulář.

  <p>
    <form method="POST">  
      <table>
        <tr><td>Nick:</td><td><input type="text" name="nick" /></td></tr>
        <tr><td>Heslo:</td><td><input type="password" name="heslo" /></td></tr>
        <tr><td></td><td><input type="submit" name="tlacitko" value="Přihlásit se" /></td></tr>
      </table>
    </form>
  </p>

ADD 2) Zde se testuje, zda je uživatel registrovaný:

    $tlacitko = $_POST["tlacitko"];
    if($tlacitko) {
      $nick = $_POST["nick"];
      $heslo = $_POST["heslo"];
      $heslo = md5(md5($heslo));                    // pozor na 2x md5 (pro bezne pouziti postacuje pouze md5 a je podstatne jak je ulozeno heslo v databazi 1x nebo 2x md5)
      mysql_connect("$db_host", "$db_user", "$db_pass");  // prihlasovaci udaje pro pripojeni k databazi
      mysql_select_db("registrace");   // nazev databaze
      mysql_query("SET CHARACTER SET utf8");
      $dotaz = mysql_query("SELECT * FROM uzivatele WHERE nick='$nick', heslo='$heslo'");
      if ($pocet = mysql_num_rows($dotaz) != 0) {

ADD 3) Toto zabezpečí vytvoření dané session pro uživatele:

        $_SESSION["id"] = $id;
        $_SESSION["nick"] = $nick;
        $_SESSION["email"] = $email;
        $_SESSION["opravneni"] = $opravneni;
        echo "Byl jsi přihlášen jako $nick";        
      }
    }

Je nutné ošetřit vstupní proměnné na možný hack, alespoň locin (nick) např.: addslashes(), nebo mysql_real_esccape_string().
Pokud se objeví hláška Byl jsi přihlášen jako ... , pak lze uživatele přesměrovat na požadovanou stránku, např.: Header("Location: index.php");

Osobně mám použit obdobný přihlašovací postup na svých stránkách, kde plně funguje.


1. Murphyho zákon:
Na počátku nebylo nic. I to se pokazilo!

stránky: CMS test
kontakt - instalace systémů, MySQL, FTP přístup, ...
Instalační balíky vybraných CSM

Problémy spojené s provozem služeb Endora, řešte na tomto fóru.

Offline

#19 2013-08-06 10:52:50

vydra
Endora uživatel
Registrován: 2013-07-30
Příspěvky: 11

Re: [Vyřešeno] mam problem z registraci na mem webu

ok dík smile

Offline

Zápatí

Založeno na FluxBB | CZ a SK