Autor | Zpráva | ||
---|---|---|---|
Tomashekk Profil |
#1 · Zasláno: 1. 5. 2009, 18:52:43
Věřím že to tu bylo už Xkrát, ale nemohu to tu nikde najít.
Potřebuju ošetřit email aby byl zadán jen ve správném tvaru a nebo to hodilo hlášku, že byl zadán ve špatném tvaru. Ovšem tak jak to mám, tak mi do DB uloží pouze číslo 1 :( <?php $email=$_POST['email']; if($email!="") {$mail=ereg("^[a-zA-Z0-9]{1,25}@[a-zA-Z0-9]{1,20}\.[a-zA-Z]{2,4}$", $email);} if ($text != "") { $jmeno=strip_tags($_POST['jmeno']); $datum = date("Y-m-d"); //načte datum $predmet=strip_tags($_POST['predmet']); $ipadresa = $_SERVER["REMOTE_ADDR"]; $text=strip_tags($_POST['text']); require_once 'pripoj.php'; mysql_query ("INSERT INTO `gbook` ( `ID` , `jmeno` , `predmet` , `text` , `datum` , `IP`, `email`) VALUES (NULL , '$jmeno', '$predmet', '$text', '$datum', '$ipadresa', '$mail');", $link); mysql_close($link); Header("Location: index.php"); exit; } else { ?> |
||
Philber Profil |
#2 · Zasláno: 1. 5. 2009, 19:13:09 · Upravil/a: Philber
<?php // funkce pro kontrolu emailu function kontrola_emailu ($kontrola) { return ereg("^.+@.+\..+$",$kontrola); } ?> .. ... . if ($text!="" and kontrola_emailu($email) and ....) {... |
||
Tomashekk Profil |
#3 · Zasláno: 1. 5. 2009, 19:33:01 · Upravil/a: Tomashekk
Philber
super, faká to, ovšem, já potřebuju ten email jako nepovinný, zapomněl jsem to uvést |
||
Alastor_Kopal Profil * |
#4 · Zasláno: 1. 5. 2009, 19:56:03
A co třeba kdybys odchytil co se ti nezdá if a elseif a poté to zapsal v else
elseif(!(ereg("^.+@.+\\..+$",$email) or ($email !== ""))){echo "<font color=\"#ff0000\">E-mailová adresa není platná :-)</font>";} |
||
Tomashekk Profil |
#5 · Zasláno: 1. 5. 2009, 19:59:51
„A co třeba kdybys odchytil co se ti nezdá if a elseif a poté to zapsal v else“
„1 elseif(!(ereg("^.+@.+\\..+$",$email) or ($email !== ""))){echo "<font color=\"#ff0000\">E-mailová adresa není platná :-)</font>";}“ Nic ve zlém, ale tohle se mi zdá docela zmatený.. Nechtěl by jsi mi to trochu vysvětlit? Pro info. Učím se to ve škole a profesor nám toho moc neřekne. |
||
Philber Profil |
#6 · Zasláno: 1. 5. 2009, 20:04:36
Tomashekk čemu jako nerozumíš?
|
||
Alastor_Kopal Profil * |
#7 · Zasláno: 1. 5. 2009, 20:07:12
podmínkám else ?
http://pecan.cz/index.php?id=41&rss=true |
||
Tomashekk Profil |
#8 · Zasláno: 1. 5. 2009, 20:08:10
Philber
„1234567 <?php“ „// funkce pro kontrolu emailu“ „function kontrola_emailu ($kontrola)“ „{“ „return ereg("^.+@.+\..+$",$kontrola);“ „}“ „?>“ „..“ „...“ „.“ „1 if ($text!="" and kontrola_emailu($email) and ....) {...“ Tady podle toho jsem to udělal, ovšem v tento moment je mail povinný (nenapsal jsem že ho chci nepovinnej) Alastor_Kopal „A co třeba kdybys odchytil co se ti nezdá if a elseif a poté to zapsal v else“ „1 elseif(!(ereg("^.+@.+\\..+$",$email) or ($email !== ""))){echo "<font color=\"#ff0000\">E-mailová adresa není platná :-)</font>";}“ Chápu tu myšlenku, ovšem jsem mimo z toho elseif. Slyším to poprvý Kluci, teprve se to učím :( |
||
Tomashekk Profil |
#9 · Zasláno: 1. 5. 2009, 20:08:45
„podmínkám else ?“
„http://pecan.cz/index.php?id=41&rss=true“ už to chápu, ale jde o to, že nevím co má být v if, jako to, že to prostě přiřadí? |
||
Jan Tvrdík Profil |
#10 · Zasláno: 1. 5. 2009, 20:10:28
Tomashekk:
<?php if ($_POST['email'] !== '' && !preg_match('#^[a-z0-9]+@[a-z0-9]+\.[a-z]{2,6}$#i', $_POST['email']) { echo 'Neplatný email'; } elseif ($_POST['text'] == '') { echo 'Prázdný text'; } else { $email = $_POST['email']; $jmeno = strip_tags($_POST['jmeno']); $datum = date("Y-m-d"); //načte datum $predmet = strip_tags($_POST['predmet']); $ipadresa = $_SERVER["REMOTE_ADDR"]; $text = strip_tags($_POST['text']); require_once 'pripoj.php'; mysql_query(" INSERT INTO `gbook` ( `ID` , `jmeno` , `predmet` , `text` , `datum` , `IP`, `email`) VALUES (NULL , '$jmeno', '$predmet', '$text', '$datum', '$ipadresa', '$email')", $link); mysql_close($link); Header("Location: index.php"); exit; } ?> |
||
Alastor_Kopal Profil * |
#11 · Zasláno: 1. 5. 2009, 20:15:54
Jan Tvrdík - No jo chtěl jsem aby si to vyzkoušel ale nevadí
|
||
Tomashekk Profil |
#12 · Zasláno: 1. 5. 2009, 20:18:21
Alastor_Kopal
„Jan Tvrdík - No jo chtěl jsem aby si to vyzkoušel ale nevadí“ Mezi tím jsem si to zkusil, ale nedocílil jsem toho,ale neva. Jak mi Jan Tvrdík poradil, tak jsem to tam nacpal, ovšem zase chyba na řádku 10 if ($_POST['email'] !== '' && !preg_match('#^[a-z0-9]+@[a-z0-9]+\.[a-z]{2,6}$#i', $_POST['email']) { |
||
Alastor_Kopal Profil * |
A co to co jsem napsal já ?
<?php if(!(ereg("^.+@.+\\..+$",$email) or ($email !== ""))){echo "<font color=\"#ff0000\">E-mailová adresa není platná :-)</font>";} } elseif ($_POST['text'] == '') { echo 'Prázdný text'; } else { $email = $_POST['email']; $jmeno = strip_tags($_POST['jmeno']); $datum = date("Y-m-d"); //načte datum $predmet = strip_tags($_POST['predmet']); $ipadresa = $_SERVER["REMOTE_ADDR"]; $text = strip_tags($_POST['text']); require_once 'pripoj.php'; mysql_query(" INSERT INTO `gbook` ( `ID` , `jmeno` , `predmet` , `text` , `datum` , `IP`, `email`) VALUES (NULL , '$jmeno', '$predmet', '$text', '$datum', '$ipadresa', '$email')", $link); mysql_close($link); Header("Location: index.php"); exit; } ?> |
||
Tomashekk Profil |
„A co to co jsem napsal já ?“
„<?php“ „(...) zkráceno moderátorem, snad není nutné citovat 20 řádků nečitelného kódu (kurzíva), který je hned v předchozím příspěvku“ „?>“ chyba na řádku s tím elseif.... |
||
Tomashekk Profil |
#15 · Zasláno: 1. 5. 2009, 20:35:28
Alastor_Kopal
supr.. měl jsi tam jednu závorku navíc a já jsem tam měl taky chybu.. jde mi to tvoje, al jak jsem výše psal, zapomněl jsem uvést, že email potřebuju jako nepovinný :( |
||
Philber Profil |
#16 · Zasláno: 1. 5. 2009, 20:37:08 · Upravil/a: Philber
Tomashekk otázka je co chceš dělat když email je nepovinný a uživatel ho napíše špatně?
edit: jak na to chceš reagovat? |
||
Tomashekk Profil |
#17 · Zasláno: 1. 5. 2009, 20:38:23
Philber
Ok.. máme za úkol udělat gbook a má tam bejt form pro email. Ovšem ten má bejt nepovinný. Ale když ho ten dotyčnej zadá, tak aby byl ve správném tvaru |
||
Philber Profil |
#18 · Zasláno: 1. 5. 2009, 20:45:46 · Upravil/a: Philber
if ($_POST['text'] == "") { echo 'Prázdný text'; } else { if (kontrola_emailu($_POST['email'])) {$email = $_POST['email'];} else {$email="";} $jmeno = strip_tags($_POST['jmeno']); $datum = date("Y-m-d"); //načte datum $predmet = strip_tags($_POST['predmet']); $ipadresa = $_SERVER["REMOTE_ADDR"]; $text = strip_tags($_POST['text']); require_once 'pripoj.php'; mysql_query(" INSERT INTO `gbook` ( `ID` , `jmeno` , `predmet` , `text` , `datum` , `IP`, `email`) VALUES (NULL , '$jmeno', '$predmet', '$text', '$datum', '$ipadresa', '$email')", $link); mysql_close($link); Header("Location: index.php"); exit; } umazal sem prvních pár řádku a místo přiřazení do $email sem napsal if (kontrola_emailu($_POST['email'])) {$email = $_POST['email'];} else {$email="";} |
||
Tomashekk Profil |
#19 · Zasláno: 1. 5. 2009, 20:48:12
Philber
Díky moc, už to jede. Alastor_Kopal Tobě díky moc za ty stránky, hodně je budu asi využívat, než se to vše pořádně naučím. |
||
Philber Profil |
#20 · Zasláno: 1. 5. 2009, 20:50:14
Tomashekk linuxsoft.cz/php tu máš taky nějakej ten tutorial
|
||
Tomashekk Profil |
#21 · Zasláno: 1. 5. 2009, 20:51:23
Philber
Já jsem dřív dělal s United Nuke a PHP RS, ovšem to je jako když ovládáš Windows.. a teď chci dělat i ty webovky jako taký (neříkám na úrovni redakčních sys.), ale to je pro mne jako přechod z Win na linuxi ;) |
||
Tomashekk Profil |
#22 · Zasláno: 1. 5. 2009, 21:15:40
Tak jsem tu zpět. U sebe na localu to funguje, ale když to nacpu na školní server, tak si to tam ani neprdne.. prostě po vyplnění všeho, to stejně hlásí že jsem něco nevyplnil :D
|
||
Philber Profil |
#23 · Zasláno: 1. 5. 2009, 21:29:23 · Upravil/a: Philber
Tomashekk nemůžeš svoje dotazy víc specifikovat z tohodle nikdo není chytrej, ak chceš pomoct tak napiš s čím,.. napiš o jakou jde chybu chybu jestli to není jasný, prostě něco víc než prostě po vyplnění všeho, to stejně hlásí že jsem něco nevyplnil...
edit: můžeš mít špatně napsanej formulář... |
||
Tomashekk Profil |
#24 · Zasláno: 1. 5. 2009, 21:33:20
Philber
hele, mam to na pripoj.php, index.php a zapis.php... zapis.php jsme tu ted mel napsanej, takze ten ti posilat nebudu. pak je pripoj, tam mam: <?php //připojení na databázi $link = @mysql_connect('localhost','kulhanekto','1111') or die('Nelze se připojit k databázi.'); @mysql_select_db('kulhanekto', $link) or die('database does not exist'); ?> a pak je tedy index.php <form method="post" action="zapis.php" name="navstevni_kniha">Jméno: <input name="jmeno"><br> Předmět: <input name="predmet"><br> Email: <input name="email" value="@"> <br> Text*: <textarea cols="50" rows="6" name="text"></textarea><br> <input name="odesli" value="Odešli" type="submit"><input type="Reset" class=bluebutton value="Vymazat"> </form> <p> <?php include_once 'pripoj.php'; $tabulka = mysql_query("SELECT `ID`, `jmeno`, `predmet`, `text`, `datum`, `IP`, `email` FROM `gbook` ORDER BY `ID` DESC"); mysql_close(); while ($radek = mysql_fetch_assoc($tabulka)) { extract($radek); // rozlozi radek=pole na promenne podle toho jak se echo "<hr>"; Kdyžtak to je na: http://lab.uzlabina.cz/~kulhanekto/gbook2 |
||
Philber Profil |
#25 · Zasláno: 1. 5. 2009, 21:39:59
ale v zapiš tady v diskusi není žádné Nevyplnil jste formulář! Prosím vyplňte jej. to se vzalo kde??? to nemáš stejný vlož sem i ten zbylej kód
|
||
Tomashekk Profil |
#26 · Zasláno: 1. 5. 2009, 21:44:52
Philber
To je v tom zapis.php <?php // funkce pro kontrolu emailu function kontrola_emailu ($kontrola) { return ereg("^.+@.+\..+$",$kontrola); } ?> <?php if ($text != "" AND $jmeno != "" ) //podmínka, která jestli proměnná text něco obsahuje provede první větev a když ne, tak provede else větev { if (kontrola_emailu($_POST['email'])) {$email = $_POST['email'];} else {$email="";} //Zda-li $_POST['email'] projde kontrolou, tak to uloží do proměnné email, ale zda-li neprojde, tak form email zůstane prázdný $jmeno=strip_tags($_POST['jmeno']); //načte jméno a ošetří ji proti HTML tagům $datum = date("Y-m-d"); //načte datum $predmet=strip_tags($_POST['predmet']); //načte předmět a ošetří ho proti HTML tagům $ipadresa = $_SERVER["REMOTE_ADDR"]; //načte IP adresu $text=strip_tags($_POST['text']); //načte text a ošetří ho proti HTML tagům require_once 'pripoj.php'; //vloží daný soubor a provede ho jako část scriptu mysql_query ("INSERT INTO `gbook` ( `ID` , `jmeno` , `predmet` , `text` , `datum` , `IP`, `email`) VALUES (NULL , '$jmeno', '$predmet', '$text', '$datum', '$ipadresa', '$email');", $link); //Provede dotaz na aktuálním spojení v aktivní databázi na serveru a vrátí identifikátor výsledku. mysql_close($link); //uzavře mysql spojení Header("Location: index.php"); exit; //ukončí větev podmínky if } else { ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; utf-8" http-equiv="content-type"> <title></title> </head> <body> <script> alert('Nevyplnil jste formulář! Prosím vyplňte jej.');javascript:self.history.back();</script> </body> </html> <?php } ?> |
||
Philber Profil |
#27 · Zasláno: 1. 5. 2009, 21:48:27 · Upravil/a: Philber
chyba je na rádku 9.
if ($text != "" AND $jmeno != "" ) tedy nahrad tento rádek tímto if ($_POST['text'] != "" AND $_POST['jmeno'] != "" ) a bude ti to fungovat |
||
Tomashekk Profil |
#28 · Zasláno: 1. 5. 2009, 21:49:10
„chyba je na rádku 9.“
„1 if ($text != "" AND $jmeno != "" )tyto dvě proměnné nemáš ešte definované“ „tedy nahrad tento rádek tímto if ($_POST['text'] != "" AND $_POST['jmeno'] != "" )“ „a bude ti to fungovat“ no a nebo mohu nadefinovat dříve |
||
Tomashekk Profil |
#29 · Zasláno: 1. 5. 2009, 21:51:03
Philber
Díky, jdu si lámat hlavu jak udělat ochranu proti botům :) |
||
Philber Profil |
#30 · Zasláno: 1. 5. 2009, 21:51:14 · Upravil/a: Philber
tak to pak je to osetreni pomoci
strip_tags() edit: a nebo na to pamatuj! |
||
Téma pokračuje na další straně.
|
0