Autor | Zpráva | ||
---|---|---|---|
Balin.Tomas Profil * |
#1 · Zasláno: 23. 5. 2009, 20:16:01
Prosím o pomoc s tímto problémem.1: Mám soubor na odesílání formulaře do databáze a na email "odeslani_formulare.php"
<?php $where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/")); include("config.inc.php"); @$link = mysql_connect($db_host,$db_user,$db_pass); if(!$link) die ('Could not connect to database: '.mysql_error()); mysql_select_db($db_name,$link); 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["uzivatel"], $link)) echo "Uvedená přezdívka je již registrována"; elseif ($_POST['heslo']!=$_POST['heslo_2']) echo "Zadaná hesla si neodpovídají!"; else { $query = "INSERT into `".$db_table."` (predmet,zakaznik,jmeno,prijmeni,datum_narozeni,ulice,mesto,psc,email,telefon,uzivatel,heslo) VALUES ('" . $_POST['predmet'] . "','" . $_POST['zakaznik'] . "','" . $_POST['jmeno'] . "','" . $_POST['prijmeni'] . "','" . $_POST['datum_narozeni'] . "','" . $_POST['ulice'] . "','" . $_POST['mesto'] . "','" . $_POST['psc'] . "','" . $_POST['email'] . "','" . $_POST['telefon'] . "','" . $_POST['uzivatel'] . "','" .md5($_POST['heslo']). "')"; mysql_query($query); mysql_close($link); $predmet = $_POST['predmet']; $zakaznik = $_POST['zakaznik']; $jmeno = $_POST['jmeno']; $prijmeni = $_POST['prijmeni']; $datum_narozeni = $_POST['datum_narozeni']; $ulice = $_POST['ulice']; $mesto = $_POST['mesto']; $psc = $_POST['psc']; $email = $_POST['email']; $telefon = $_POST['telefon']; $tarif=$predmet; if($tarif=="Servertom email 5"){ include "email_5.php"; } elseif($tarif=="Servertom email 10"){ include "email_10.php"; } elseif($tarif=="Servertom email 15"){ include "email_15.php"; } elseif($tarif=="Servertom email 25"){ include "email_25.php"; } # -=-=-=- SEND MAIL if ($jmeno!="" and $prijmeni!="" and $datum_narozeni!="" and $ulice!="" and $mesto!="" and $psc!="" and $email!="") { $mail_sent = @mail( $to, $subject, $message, $headers ); $mail_sent = @mail( $email, $subject, $message, $headers2 ); header('Location:/?sekce=form-odeslano'); } else { header('Location:/?sekce=form-neodeslano'); } } ?> A problém je že při vyplnění formuláře a následné kontrole v databázi narazí třeba na stejného uživatele ukáže hlášku, že uživatel již existuje ale i přesto se to zapíše do databáze a při následné změně uživatele již znova neprojde protože email již v databázi je.Určitě mám někde chybu.Ještě přikládám soubor kde mám funkce <?php $db_host = "host";$db_user = "user";$db_pass = "pass";$db_name = "name";$db_table = "table"; function JeEmail ($cislo) { return ereg("^.+@.+\..+$",$cislo); } function emailvdb ($email, $link) { @$vysledek=mysql_query("select * from objednavka where email='".$email."'", $link); return (boolean) mysql_num_rows($vysledek); } function prezdivkavdb ($uzivatel, $link) { @$vysledek=mysql_query("select * from objednavka where uzivatel='".$uzivatel."'", $link); return (boolean) mysql_num_rows($vysledek); } ?> 2: Jak docílit toho že chybové hlášky u funkcí, myslím ty echo se zobrazovali na stejné stránce, třeba u toho políčka kam příslušná hláška patří, nebo aspoň na stejné stránce.Teď mi to skočí vždy do nový stránky bez mého stylu. Doufám že mě někdo chápe(problém s vyjadřováním) Děkuji moc za pomoc a za každou radu. |
||
koroman Profil |
#2 · Zasláno: 23. 5. 2009, 22:40:11 · Upravil/a: koroman
skus to robit pomocou:
if(mysql_num_rows($vysledek) == 1) return true; else return false; popr. vstupy preved na strlower() a aj trim() tam daj aj pri zapise aj pri kontrole toto ti musi zafungovat GL |
||
Balin.Tomas Profil * |
#3 · Zasláno: 23. 5. 2009, 23:57:06
Děkuji pomohlo,doufám tedy že jsem to pochopil správně, dal jsem to do definování těch funkcí:
function emailvdb ($email, $link) { @$vysledek=mysql_query("select * from objednavka where email='".$email."'", $link); if(mysql_num_rows($vysledek) == 1) return true; else return false; } Prosím nevěděl by jsi i radu na tu druhou otázku,nebo i ta je zodpovězená v tvé odpovědi. Díky moc |
||
Časová prodleva: 15 let
|
0