Autor Zpráva
Balin.Tomas
Profil *
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
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 *
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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0