Autor Zpráva
matesek
Profil *
existuje něco jako Minlength ? potřeboval bych nějak poradit , jak se dá formulář dát na minlength např :

<P> Heslo :
<BR>
<INPUT type="password" name="heslo" size="40" minlength="6">
</P>

ale nevím jak to udělat .
tiso
Profil
matesek: kontroluj dĺžku hesla pri odoslaní formulára pomocou Javascriptu.
Philber
Profil
no v html to není, ale dá se to řešit asi javascriptem a pak určitě a tak bych to udělal já pomocí php kontrolovat délku nakonec odeslaného prvku ve formuláři
Trejpa
Profil
matesek
Předpokládám, že chceš zajistit, aby nešlo zadat heslo kratší než 6 znaků.
Nic takového v HTML neexistuje. Můžeš použít Javascript, ale stejně to budeš muset ošetřit na serverové straně, aby to někdo s vypnutými skripty neobešel.
<script>
function a()
{
if(document.formular.heslo.value.length<6)
  {
  window.alert('Vaše heslo je příliš krátké.\nMusí mít délku aspoň 6 znaků.');
  return false;
  }
else
  {
  return true;
  }
}
</script>
<form action="#" name=formular onsubmit="return a();">
<input type=password name=heslo>
</form>
matesek
Profil *
Trejpa
Takže to tvoje mám dát místo toho mojeho ?
Trejpa
Profil
matesek
Takže to tvoje mám dát místo toho mojeho ?
Jistě. Douprav si to. Předpokládám, že tvůj formulář má více než jedno políčko na heslo.
Nepodceňuj ten serverový skript, který ti to zpracovává.
matesek
Profil *
takže toto tam budu mít několikrát zopakované :(
Trejpa
Profil
matesek
takže toto tam budu mít několikrát zopakované :(
Tak si to pouprav, aby's to tam měl jen jednou. (Nebo to neumíš?)
matesek
Profil *
Já umím jen základy HTML , jinak nic . Ikdyž jsem si to rozkopíroval a mám to tam vícekrát , tak mi nefunguje tlačítko odeslat , které předtím šlo . jinak mám to na http://sweet-stars.unas.cz/fanklub%20registrace.html
Trejpa
Profil
matesek
Ikdyž jsem si to rozkopíroval a mám to tam vícekrát
Takhle to nejde, globální funkce s názvem a() může být v dokumentu jen jednou. Dala by se přejmenovat [hlidejjmeno(), hlidejprijmeni()], ale pro více políček bude lepší trochu složitější skript, který vyplivne jen jednu chybovou hlášku.

Stejně tak jsi použil více formulářů (nelze je vnořovat), takže stisk tlačítka nemohl jiné formuláře odeslat. Vše totiž musí být v jednom.

// enctype="multipart/form-data // Toto tam nemusi byt"
Chyba, tohle není komentář a prohlížeč to nějak zpracovává, což by neměl. Odmaž to, mohlo by to ovlivnit odesílání v méně tolerantních prohlížečích.

<script>
function a()
{
var polickaid	=	new Array("jmeno", "prijmeni", "adresa", "mesto", "psc");
var nazvy	=	new Array("jméno", "příjmení", "adresa", "město", "PSČ");
var obsahpoli	=	new Array("", "", "", "", "");
var mindelka	=	new Array(1, 1, 1, 1, 1);
var chybovahlaska = "";
for (i=0;i<polickaid.length;i++)
{
obsahpoli[i]	=	document.getElementById(polickaid[i]).value;
if (obsahpoli[i]<mindelka[i])
  {
  chybovahlaska += "Vyplňte pole " + nazvy[i] + ".";
  //	chybovahlaska += " Je třeba aspoň " + mindelka[i] + " znaků.";	//	lze vymazat
  if (i!=polickaid.length) chybovahlaska += "\n";
  }
}
if(chybovahlaska.length>0)
  {
  window.alert(chybovahlaska);
  return false;
  }
else
  {
  return true;
  }
}
</script>
<form method=post action="zapis.php" name=formular onsubmit="return a();">
<label>Jméno<br><input name=jmeno id=jmeno></label><br>
<label>Příjmení<br><input name=prijmeni id=prijmeni></label><br>
<label>Adresa<br><input name=adresa id=adresa></label><br>
<label>Město<br><input name=mesto id=mesto></label><br>
<label>PSČ<br><input name=psc id=psc></label><br>
<input type=submit>
</form>
Chamurappi
Profil
Reaguji na mateska:
Zkusil jsem to napsat ještě trochu obecněji:
<script>
function kontrola(form)
{
  var chyby = [];
  for(var i = 0, e; e = form.elements[i]; i++)  // cyklem projdeme všechny formulářové prvky
  {
    var minlength = e.getAttribute("minlength");  // podíváme se na atribut minlength…
    if(!minlength) continue;  // … neexistuje-li, jdeme na další prvek, zbytek cyklu nás nezajímá
    if(e.value.length < parseInt(minlength, 10))  // porovnáme délku value s minlength
    {
      var rodic = e.parentNode;
      var nazev = (rodic.tagName == "LABEL") ? rodic.innerText || rodic.textContent : rodic.title || rodic.name;  // zjistíme jméno z textu v <label>u nebo z titlu nebo z name
      nazev = nazev.replace(/[\r\n]/g, "")  // nechceme v názvu odřádkování
      var minimum = minlength + " znak" + (minlength && minlength < 5 ? minlength < 2 ? "" : "y" : "ů");  // vyskloňujeme znaky
      chyby.push("Položka „" + nazev + "“ musí mít minimálně " + minimum + ".");  // zapíšeme chybovou hlášku do pole
    }
  }
  if(chyby.length)  // pokud je počet chyb nenulový …
  {
    alert("Dopustili jste se osudové chyby:\n• " + chyby.join("\n• "));  // … vypíšeme je …
    return false;  // … a stornujeme odeslání
  }
}
</script>
<form method=post action="zapis.php" name=formular onsubmit="return kontrola(this);">
  <!-- formulář teď může normálně používat atribut minlength -->
  <label>Jméno<br><input minlength=1 name=jmeno></label><br>
  <label>Příjmení<br><input minlength=2 name=prijmeni></label><br>
  <label>Adresa<br><input minlength=10 name=adresa></label><br>
  <label>Město<br><input minlength=2 name=mesto></label><br>
  <label>PSČ<br><input minlength=5 name=psc></label><br>
  <input type=submit>
</form>
matesek
Profil *
Teď je menší problém , že ten soubor Zapis.php mi to nepošle do txt souboru :(

Zapis.txt :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//cs" "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=windows-1250">	                                                                                                                
    <LINK rel="stylesheet" href="style.css" type="text/css" media="all"/>                                                                                                                        
    <TITLE>Dívčí skupina Sweet Stars                                                                              
    </TITLE>                                                         
  </HEAD>                                                    
  </HEAD>                                                      
  <BODY>                                                                                                 
    <DIV style="float: left; width: 1430" height="81">             
      <DIV id="leve-menu" float=center>                 
        <IFRAME src="sloupecek.html" width="1430"  height="81">                 
        </IFRAME>             
      </DIV>         
    </DIV>          
    <BR>    
    <DIV align="center"><H2>                                                                                             
        <FONT color="#4A79FF">                                                                                                                 
          <P> <U> Fanklub </U>                                                                                                                 
          </P>                                                                                             
        </FONT>                                                         
    </DIV></H2>      
    <BR>         
<B>Tvé informace byly odeslány , brzy ti manažer pošle informační E-Mail .</B>

<?php
if(!empty($_POST['odeslat'])){
$fp = fopen('formular.txt', 'a+');
fwrite($fp, "n n Jméno: ".$_POST['jmeno']."n Přijmení: ".$_POST['prijmeni']."n Adresa: ".$_POST['adresa']."n Mesto: ".$_POST['mesto']."n PSC: ".$_POST['psc']."n Telefon: ".$_POST['telefon']."n E-Mail: ".$_POST['email']);
fclose($fp);
}
?>

  </BODY>
</HTML>


A ikdyž jsem chtěl , tak ono mi to samo udělá z \n , n . Nevím proč .
matesek
Profil *
Otestoval jsem zatím jen od Trejpy .
matesek
Profil *
odskoušel jsem i ten druhý , ale i ten mi nezapisuje do txt souboru .
Chamurappi
Profil
Reaguji na mateska:
if(!empty($_POST['odeslat'])){
V mém ani v Trejpově kódu není políčko s názvem „odeslat“, takže tato podmínka samozřejmě neuspěje.
Kdybys použil obvykle postupy ladění, přišel bys na to sám.
matesek
Profil *
takže tu podmínku smazat , jinak by to mělo fungovat ?
matesek
Profil *
a nyní po odsloušení bez podmínky to posílá , ale ikdyž tam jsou všechny pole prázná , tak to pošle .
matesek
Profil *
Už mi to funguje , pár věcí jsem si tam přepsal , něco vymazal a funguje . Vážně na to stačila jen logická úvaha ( ale sám bych to nevytvořil ) .
matesek
Profil *
Takže jsem tu znovu , mám další problém . Přidal jsem si pár dalších částí a teď mi to háže chybu a nevím proč viz Odkaz . Taky nevím jak ten formulář napozicovat na střed . Skoušel jsem <div aligh=center> , ale nefungovalo to .
Chamurappi
Profil
Reaguji na mateska:
Tady není chat, další jednořádkové příspěvky poslané v krátkém sledu budu nemilosrdně mazat.

teď mi to háže chybu a nevím proč
Chybu v PHP. Jsme v kategorii HTML.
Jestli neumíš PHP, buď se ho nauč, nebo si na něj sežeň nějakého člověka.

nevím jak ten formulář napozicovat na střed
Hledej, řešilo se to tu minimálně dvousetkrát.
rexi
Profil *
<div aligh=center>
To ti asi moc fungovat nebude. To nemas nejaky syntax checker?

Vaše odpověď

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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