Autor Zpráva
Martin011
Profil
Dobrý den, dá se nějak zamezit tomu, že se mi např. E-mail byl úspěšně odeslán zobrazí na samostatné stránce bez obsahu. Chtěl bych, aby se ta hláška zobrazila pod formulářem. Totéž mám problém s registraci-třeba Špatně zadaný e-mail-ale hláška se neotevře v novém okně, v tom samém, akorát bez obsahu a bez všeho, totéž anketa, když chci hlasovat se mi otevře sama bez veškerých jiných věcí. Po té můžu hlasovat. Dá se to nějak vyřešit.
Děkuji předem.
Radek9
Profil
A tvůj kód si mám vyčarovat?
Martin011
Profil
tak formulář vypadá takhle:

<html>
    <head>
        <title>Napište mi</title>
        <meta HTTP-AQUIV="Content-Type" CONTENT="text/html; charset=windows-1250">
    </head>
<body>


<?
function vypisForm($jmeno,$predmet,$text) {
    echo "
    <form method=post action=\"mail.php\">
       <strong> Jméno:</strong><br>
        <input name=jmeno value=\"".$jmeno."\"><br>
        <strong> Předmět:</strong><br>
        <input name=predmet value=\"".$predmet."\"><br>
         <strong>Text zprávy</strong><br>
        <textarea style=\"width:200px; height:150px;\" name=text>".$text."</textarea><br><br>
        <input type=submit value=Odeslat>
    


</form>
    <br><br>
";
}
                        
if (empty($_POST)) 
    vypisForm("","","");
/*
    V tuto chvíli je uživatel na stránce poprvé. Vypíšeme formulář.
    Protože uživatel ještě nic nenapsal, bude formulář prázdný.
*/
else {
    //uživatel odeslal data, zde následují kontroly
    if ($_POST["jmeno"]=="" || ereg("^ +$",$_POST["jmeno"])) {
        echo "Zadejte prosím své jméno.";
        vypisForm($_POST["jmeno"],$_POST["predmet"],$_POST["text"]);
    }
    /*
        První podmínka na kontrolu jména. Jsou zde použity regulární výrazy, které jsme
        zatím v našem seriálu neměli. Znamená to: pokud je jméno uplně prázdné nebo pokud
        obsauje POUZE libovolný počet mezer, vypiš varovnou hlášku. Zároveň se zpátky
        zobrazí formulář, který bude obsahovat veškerá data, která už uživatel napsal.
    */
    elseif ($_POST["predmet"]=="" || ereg("^ +$",$_POST["predmet"]))  {
        echo "Zadejte prosím předmět.";
        vypisForm($_POST["jmeno"],$_POST["predmet"],$_POST["text"]);
    }
    /*
        Druhá podmínka na kontrolu předmětu. Funguje uplně stejně, jako ta předchozí.
    */
    elseif ($_POST["text"]=="" || ereg("^ +$",$_POST["text"]) || strlen($_POST["text"]) > 500) {
        echo "Text e-mailu by měl být v rozmezí 1-500 znaků.";
        vypisForm($_POST["jmeno"],$_POST["predmet"],$_POST["text"]);
    }
    /*
        Třetí podmínka na kontrolu textu. Funguje uplně stejně, jako ty předchozí, akorát
        navíc také kontroluje délku vzkazu.
    */
    else { //nyní následuje samotné odesílání mailu  
        if ($_SERVER["SERVER_ADDR"]!="127.0.0.1") 
            Mail ("vaseadresa@server.cz",$_POST["predmet"],$_POST["text"],"From:".$_POST["jmeno"]);
        /*
            Tato podmínka je tu kvůli localhostu. Pokud tento script budete testovat doma, PHP samotnou funkci
            pro odesílání mailů přeskočí, jinak by vám to vyhodilo error a vy by jste neviděli krásnou větu...
        */
        echo "E-mail byl úspěšně odeslán.";
        /*
            Na internetu to samozřejmě bude fungovat správně.
        */
        }
    }


?>

</body>
</html> 


Důležitý je ten příkaz echo
Martin011
Profil
anketa takhle:

<HTML>
<HEAD>
<META CONTENT="text/html; charset=windows-1250" HTTP-EQUIV="Content-Type" content="text/html; charset=WINDOWS-1250">
<TITLE>Ankteta</TITLE>

</HEAD>
<style>
.text {
	background-color:white;
	font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
	font-size : 11px;
	text-align : left;
	color : black;
}
.nadpis{
	background-color : Black;
	color : White;
	font-size : 12px;
	font-family : Verdana, Geneva, Arial, Helvetica, sans-serif;
	padding-bottom : 2px;
	padding-top : 2px;
	padding-left : 2px;
	padding-right : 2px;
	text-align : center;
}
a:hover{
	color : Red;}

a:link    {color: black}
a:visited    {color: black}
a:active    {color: black}

</style>
<BODY>






<?php
$souborip="anketa-ip.txt";                      //soubor s ip adresami hlasujících
$soubor="hlasuj.txt";                           //soubor s hlasy
$aktualni = $REMOTE_ADDR;                       //aktuální ip adresa


$otazka = "Jak se vám líbí <br> tyto stránky?";                      //Otázka
$odp = array("Super","Dobré.","Ujdou.","Hrozné");                 //Odpovědi


//Kontrola existence souborů
if (!file_exists($souborip))
 {
  err ($souborip);
  exit;
 }
if (!file_exists($soubor))
 {
  err ($soubor);
  exit;
 }
//Konec kontroly

//Otevření a načtení hlasů
$data = fopen($soubor, "r");
$cti = fread($data, filesize($soubor)+10);
fclose($data);
list($a, $b, $c, $d) = explode( "Đ", $cti);

//Hlasování
if (isset($odpoved))
 {
  if (zjistiip($souborip, $aktualni))
   {
    if ($odpoved == "a") {$a++;}
    elseif ($odpoved == "b") {$b++;}
    elseif ($odpoved == "c") {$c++;}
    elseif ($odpoved == "d") {$d++;}

   $zapsat = "$a" . "Đ" . "$b" . "Đ" . "$c" . "Đ" . "$d" . "Đ";
   $kam = fopen($soubor, "w");
   fwrite($kam, $zapsat);        //zapsání nového hlasu do souboru
   fclose($kam);

   $ipsoubor = fopen($souborip, "r");            //zapsání ip adresy odesílatele hlasu
   $data = fread($ipsoubor, filesize($souborip)+10);
   fclose($ipsoubor);

   $write = $data.$aktualni."Đ";

   $kam = fopen($souborip, "r+");
   fwrite($kam,$write);
   fclose($kam);

  }
 }


//Zobrazení výsledků
$celkem = $a+$b+$c+$d;
$lidi = $celkem;

 if ($celkem == 0)
  {
   $celkem = "1";
   $lidi="0";
  }

$pr = $celkem/100;
$a = number_format($a/$pr,1);
$b = number_format($b/$pr,1);
$c = number_format($c/$pr,1);
$d = number_format($d/$pr,1);


$pismeno = array ("a","b","c","d");
$procenta = array ("$a","$b","$c","$d");
$kolik = "4";

echo "<table border='0' cellpadding='0' cellspacing='0'>\n";
echo "<tr><td colspan='2' class='nadpis'>$otazka</td></tr>\n";

 for ($i=0; $i<$kolik ;$i++ )
  {

   if (zjistiip($souborip, $aktualni))
    {
     echo "<tr><td colspan='2' class='text'><a href=anketa.php?odpoved=$pismeno[$i]>$odp[$i]</a></td></tr>\n";
    }
     else
    {
     echo "<tr><td colspan='2' class='text' >$odp[$i]</td></tr>\n";
    }

   echo "<tr><td bgcolor='#ffffff' width='85px'><img src='prouzek.png' height='5px' width='".(($procenta[$i])/1.2)."px'></td><td class='text' width='10px'> $procenta[$i]%</td></tr>\n";
  }
echo "<tr><td colspan='2' class='nadpis'>Celkem hlasovalo: $lidi</td></tr></table>\n";



   //Funkce pro vypsání chyby
function err ($soubor)
 {
  echo "<font color=red><b>Chyba!</b></font><br>Nelze nalézt soubor <b>$soubor</b>!\n";
 }

//funkce pro zjištění ip adresy
function zjistiip($souborip, $ip)
 {

  $ipsoubor = fopen($souborip, "r");
  $data = fread($ipsoubor, filesize($souborip)+10);
  fclose($ipsoubor);
  $ipadresy = explode("Đ",$data);

   if (in_array($ip, $ipadresy))
    {
     return false;     //Pokud již bylo z dané ip adresy hlasováno
    }
   else
    {
     return true;     // pokud nebylo z dané ip hlasováno
    }
 } //konec funkce




?>
</BODY>
</HTML>

Ta se mi načte celá do toho nového okna
Martin011
Profil
a ještě registrace:

<?php
ob_start();              
  if(isset($_POST['sent']))
    $jmeno=trim($_POST['jmeno']);
    $heslo1=$_POST['heslo'];
    $heslo2=$_POST['heslo_znovu'];
    $mail=trim($_POST['mail']);
    $web=trim($_POST['web']);
    

                        
if($jmeno=="" or $heslo1=="" or $mail=="")
      echo "Nebyly vyplněny všechny povinné údaje!";
    }else
      require "db.php";     i
      $PocetStejnych=mysql_result(mysql_query("SELECT COUNT(*) FROM `uzivatele` WHERE `jmeno`='$jmeno' OR `mail`='$mail'"),0);
       if($PocetStejnych!=0)
        echo "Zadané jméno nebo email je již používán někým jiným!!!";
      }elseif($heslo1 != $heslo2)
        echo "Zadané hesla se neshodují!!!";
      }else{           
        $heslo=md5($heslo1);  
        if($web=="http://" or $web=="")
          $web="";
        }
        $VlozData=mysql_query(" INSERT INTO uzivatele (`jmeno`,`heslo`,`mail`,`web`,`prava`)
                      VALUES
                    ('$jmeno', '$heslo', '$mail', '$web', '0')  ") or die (mysql_error());
        
        if($VlozData){
          echo "Data byla uložena";
        }
      }

    }
  }else{
    echo "Nebyl odeslán formulář";
  }

echo "<a href='index.php'>index</a>";

// header ("Location: index.php");
ob_end_flush();
?>


Jde mi o ty hlášky, co tam mám.
fuckin
Profil
jaks to zkousel? Jake mas napady?
Jestli jen potrebujes upravit kod bez tve snahy tak je tu sekce prace a zakazky.

"dulezity je ten prikaz echo"
Aha, no tak to je hned jasny...odbornik se pozna.

Moderátor Str4wberry: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
Lexter
Profil
Bohužel neporadím (za což se omlouvám, že se ti vtírám do vlákna), ale:

fuckin
Nechtěl by ses trochu krotit? Ať se podívám do jakéhokoli vlákna, je velká šance, že musím přeskokovat ty tvoje výkřiky. Ještě jsem nezažil, že bys někomu pomohl, jen prudíš. Budu moc rád, když se trochu zklidníš, rád bych si ve vláknech početl ty odborníku.
grimword
Profil
Lexter
jenomže on má pravdu, nikdy jsem nepochopil co vás vede k tomu, aby jste řešili člověka co skopíruje dvěstě řádkový kód s komentářem "mně to nejede, udělejte s tím něco"
Cargas
Profil
dela se to takhle :
nejdriv ulozis do promenne napr. $email = "E-mail byl úspěšně odeslán";


a potom pomoci echo $email vypises kam je potreba

pokud si nepochopil ptej se dal
Martin011
Profil
jj, díky, nějak jsem to už udělal. Mohl bys mi ale ještě v něčem poradit?
Martin011
Profil
Když mám třeba nástěnku o více souborech a chci ji vložit do aktivní položky v php (třeba do index.php?str=nastenka), vložím akorát jenom ten hlavní soubor i tabulkou a tak, ale potom mi to píše, že ostatní soubory nenalezeno. Když chci třeba přidat příspěvek. Nevíš, jak by se to dalo udělat, aby to normálně fungovalo?
Cargas
Profil
tak pouzij include

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: