Autor Zpráva
Sifik
Profil *
Dobrý den, prosím o pomoc.....

Dělám registraci podle návodu na http://www.linuxsoft.cz/article.php?id_article=538 ale nějak mi to nejde.

Problémy dělá řádek 19: je tam
$link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
  mysql_select_db(SQL_DBNAME);

ale když to vyplním tak se to nepřipojí k databázi
tak jsem tam dal:
$db_server = "mysql.ic.cz";       
        $db_login = "login";             
        $db_heslo = "heslo";           
        $db_jmeno = "jmeno";  

sice se se to připojí k databázi ale nejde se zaregistrovat.............. poraďte
Sifik
Profil *
článek na http://www.linuxsoft.cz/article.php?id_article=538
Měsíček
Profil
Hodně zmatený příspěvek :) zkus si u každé funkce vypisovat chyby tak se dozvíme více ..

mysql_select_db(SQL_DBNAME) or die(mysql_error()); atd..
Sifik
Profil *
znovu:

zkouším urobit registraci podle návodu (ve výše uvedeném článku) v návodě je tento řádek k připojení k databázi
$link=mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD);
  mysql_select_db(SQL_DBNAME);

když to vyplním tak se k databázi nepřipojím, tak jsem tam zkusil dát

$db_server = "mysql.ic.cz";       
        $db_login = "login";             
        $db_heslo = "heslo";           
        $db_jmeno = "jmeno"; 

sice se k databázi připojím ale nezaregistruji se, čím to je?

jinak to zkouším na http://akvaportal.ic.cz/
Měsíček
Profil
Nedávej to do zvláštních proměnných, dej to rovnou do funkce ..

<?php

$link = mysql_connect("mysql.ic.cz","jmeno","heslo") or Die (mysql_error());
        mysql_select_db("databaze") or Die (mysql_error());
        
?>
to je vše co můžeme k tomu říct, jestliže chceš víc musíš také napsat více informací.
Sifik
Profil *
tak tím to není ale dík

rád bych dal více informací ale co?
Měsíček
Profil
Třeba více kódu :)
Sifik
Profil *
to to je celý kod registrace.php
<?
  function JeEmail ($cislo)
  {
    return ereg("^.+@.+\..+$",$cislo);
  }

  function emailvdb ($email, $link)
  {
    $vysledek=mysql_query("select * from uzivatele where email='".$email."'", $link);
    return (boolean) mysql_num_rows($vysledek);
  }  

  function prezdivkavdb ($prezdivka, $link)
  {
    $vysledek=mysql_query("select * from uzivatele where prezdivka='".$prezdivka."'", $link);
    return (boolean) mysql_num_rows($vysledek);
  }  
  // tělo skriptu - nejprve si vytvoříme odkaz na databázi
 $link = mysql_connect("mysql.ic.cz","uzivatel","heslo") or Die (mysql_error());
        mysql_select_db("databaze") or Die (mysql_error());       

  
  $BudemeZobrazovat=true;
  if (!empty($_POST)) // už se odeslalo
  {
    /*
    budeme kontrolovat následující věci:
    1) e-mailovou adresu
    2) zda tam již e-mail není
    3) zda tam již přezdívka není
    4) zda je přezdívka mezi 3 a 50 znaky délky
    5) zda je heslo 3 až 50 znaků dlouhé
    */
    if (!JeEmail($_POST["email"])) echo "Není zadán platný e-mail";
    elseif (emailvdb($_POST["email"], $link)) echo "Uvedený e-mail je již registrován";
    elseif (prezdivkavdb ($_POST["prezdivka"], $link)) echo "Uvedená přezdívka je již registrována";
    elseif ((strlen ($_POST["prezdivka"])>50) | strlen ($_POST["prezdivka"])<3)echo "Přezdívka musí mít 3-50 znaků";
    elseif ((strlen ($_POST["heslo"])>50) | strlen ($_POST["heslo"])<3) echo "Heslo musí mít 3-50 znaků";
    else
    {
      // kontolou jsme prošli
      $BudemeZobrazovat=false;
      // poděkujeme uživateli
      echo "Děkujeme za registraci. Na vaši adresu ".$_POST["email"]." byly zaslány informace pro její dokončení.";
      // uložíme to do databáze
      mysql_query ("insert into uzivatele (email, prezdivka, heslo) values ('".$_POST["email"]."', '".$_POST["prezdivka"]."', '".$_POST["heslo"]."');", $link);
      $lastid=mysql_insert_id();
      // a sestavíme e-mail s instrukcemi, jak registraci dokončí
      $path="http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_ SERVER["SCRIPT_NAME"]."?clanek=registracedokoncena&amp;id=".$lastid."& amp;email=".$_POST["email"];
      $telo = "Dekujeme Vam za registraci na nasem portale [nazev hudebniho portalu]. Pro dokonceni ".
      "registrace klepnete na nasledujici odkaz\n".
      "<a href=\"$path\">$path</a>\n".
      "Pokud jste se na nasem portale nechteli zaregistrovat, povazujte tento e-mail za bezpredmetny.\n".
      "Vas [nazev hudebniho portalu] team.";
      @mail ($_POST["email"], "Registrace na portalu", $telo);
    }
  }
if ($BudemeZobrazovat):?>
  <form method="post" action="index.php?clanek=registrace">
  <table>
    <tr>
      <td>Přezdívka:</td>
      <td><input name="prezdivka" value="<?echo $_POST["prezdivka"]?>"></td>
    </tr>
    <tr>
      <td>E-mail:</td>
      <td><input name="email" value="<?echo $_POST["email"]?>"></td>
    </tr>
    <tr>
      <td>Heslo:</td>
      <td><input name="heslo" type = "password" value="<?echo $_POST["heslo"]?>"></td>
    </tr>
    <tr>
      <td colspan="2"><input type="Submit" name="odesli" value="Zaregistrovat"></td>
    </tr>
  </table>
  </form>
<?endif;?>
matthew
Profil
Sifik
Zkus změnit řádek s vkládáním do DB na tento:
mysql_query ("insert into uzivatele (email, prezdivka, heslo) values ('".$_POST["email"]."', '".$_POST["prezdivka"]."', '".$_POST["heslo"]."');", $link) or die(mysql_error());

Dozvíš se tím, zda se vložilo, a pokud se nevložilo, vypíše to chybu...
Sifik
Profil *
ne to taky nejde achjo
Nox
Profil
A kolik toho nejede? Neprovede se jen zápis do db nebo to končí už někde dřív? Můžeš otestovat třeba echem na různých místech
Sifik
Profil *
jenom to se tam nenapíše registrace dokončena a skočí to na hlavní stránku

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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