Odeslaní dat z PHP formuláře do SQL databáze – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Odeslaní dat z PHP formuláře do SQL databáze – PHP – Fórum – Programujte.comOdeslaní dat z PHP formuláře do SQL databáze – PHP – Fórum – Programujte.com

 

Hanis Novák
~ Anonymní uživatel
3 příspěvky
13. 1. 2015   #1
-
0
-

Zdravím,

Pracuji na jednom webu kde potřebuji, aby lidi co přijdou na web zadali do formuláře (na stránce přihláška) věci jako jméno, příjmění .... atd a po stisknutí tlačítka odeslat, aby se všechny data odeslali a zapsali do mé vytvořené SQL databáze do vytvořené tabulky (skolnisoutez). Bohužel to vůbec nefunguje a po stisknuti tlačítka odeslat se nic nestane.

Zde je odkaz: http://skolnisoutez.4fan.cz/informace.php?…;

Zde je zdrojový kod:  

<?php
	if($_POST['formOdeslat'] == "Submit") 
    {
		$errorMessage = "";
		
	if(empty($_POST['Jmeno'])) 
        {
			$errorMessage .= "<li>Please enter some text.</li>";
		}
    
    		if(empty($_POST['Prijmeni'])) 
        {
			$errorMessage .= "<li>Please enter some text.</li>";
		}
    
    		if(empty($_POST['Nazev_Skoly'])) 
        {
			$errorMessage .= "<li>Please enter some text.</li>";
		}
    
    		if(empty($_POST['Mesto'])) 
        {
			$errorMessage .= "<li>Please enter some text.</li>";
		}
    
    		if(empty($_POST['Trackmania'])) 
        {
			$errorMessage .= "<li>Please enter some text.</li>";
		}
		
    		if(empty($_POST['Prezentace'])) 
        {
			$errorMessage .= "<li>Please enter some text.</li>";
		}
    
    		if(empty($_POST['Word'])) 
        {
			$errorMessage .= "<li>Please enter some text.</li>";
		}
    $varText = $_POST['Jmeno'];
        
              $varText2 = $_POST['Prijmeni'];
              
                    $varText3 = $_POST['Nazev_Skoly'];
                    
                          $varText4 = $_POST['Mesto'];
                          
                                $varText5 = $_POST['Trackmania'];
                                
                                      $varText6 = $_POST['Prezentace'];
                                      
                                            $varText7 = $_POST['Word'];

		if(empty($errorMessage)) 
        {
			$db = mysql_connect("tajne","tajne","tajne");
			if(!$db) die("Error connecting to MySQL database.");
			mysql_select_db("tajne" ,$db);

			$sql = "INSERT INTO skolnisoutez (Jmeno, Prijmeni, Nazev_Skoly, Mesto, Trackmania, Prezentace, Word) VALUES (".
												PrepSQL($varText) . ", " .

              		PrepSQL($varText2) . ", " .
                  
                  		PrepSQL($varText3) . ", " .
                      
                      		PrepSQL($varText4) . ", " .
                          
                          		PrepSQL($varText5) . ", " .
                              
                              		PrepSQL($varText6) . ", " .
				

							PrepSQL($varText7) . ")";
			mysql_query($sql);
			
			header("Location: thankyou.html");
			exit();
		}
	}

    function PrepSQL($value)
    {

        if(get_magic_quotes_gpc()) 
        {
            $value = stripslashes($value);
        }

 
        $value = "'" . mysql_real_escape_string($value) . "'";

        return($value);
    }
?>


       <?php
		    if(!empty($errorMessage)) 
		    {
			    echo("<p>There was an error with your form:</p>\n");
			    echo("<ul>" . $errorMessage . "</ul>\n");
            }
        ?>

		 <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">

<p>

	<label for='Jmeno'>Zadejte vaše jméno: </label>
				<br />

	<input type="text" name="Jmeno" maxlength="30" value="<?=$varText;?>" />

		  </p>
      
      <p>

	<label for='Prijmeni'>Zadejte vaše příjmení: </label>
				<br />

	<input type="text" name="Prijmeni" maxlength="40" value="<?=$varText2;?>" />

		  </p>
      
      <p>

	<label for='Nazev_Skoly'>Zadejte název vaší školy: </label>
				<br />

	<input type="text" name="Nazev_Skoly" maxlength="50" value="<?=$varText3;?>" />

		  </p>
       <p>
      	<label for='Mesto'>Zadejte vaše rodné město: </label>
				<br />

	<input type="text" name="Mesto" maxlength="25" value="<?=$varText4;?>" />

		  </p>
      
         <p>

      	<label for='Trackmania'>Vaše účast v disciplíně trackmania: </label>
				<br />

	<input type="text" name="Trackmania" maxlength="20" value="<?=$varText5;?>" />

		  </p>
      
           <p>

      	<label for='Prezentace'>Vaše účast v disciplíně prezentace: </label>
				<br />

	<input type="text" name="Prezentace" maxlength="20" value="<?=$varText6;?>" />

		  </p>
      
         <p>

      	<label for='Word'>Vaše účast v disciplíně word: </label>
				<br />

	<input type="text" name="Word" maxlength="20" value="<?=$varText7;?>" />

		  </p>
	
	

          <p>

         <input type="submit" name="formOdeslat" value="Submit" />

          </p>

</form>
Nahlásit jako SPAM
IP: 46.47.152.–
lukas.balaz0
Super člen
13. 1. 2015   #2
-
0
-

#1 Hanis Novák

Nečítal som tu, máš to strašne odsadené .... ale poradím ti: DEBUGUJ. V časti, kde posielaš query, si daj výpis, či sa tam vôbec dostaneš. Ak áno, skús si vypísať query a mysql_error. Ak si toto už robil, tak si to mal napísať, lebo teraz to vyzerá, akokeby len čo niečo nefungovalo a nebolo zjavné riešenie, tak si to dal na forúm, nech to za teba vyriešia ostatní. A daj sem ten kód ešte raz a poriadne odsadený a bez prázdnych riadkov, nebudem si to robiť sám ak si to ty, kto chce pomôcť. (a inak teraz som si všimol, že si ani presne nenapísal, čo sa vlastne stane, keď stlačíš odoslať ... dostaneš sa vôbec do toho PHP kódu ? .. proste daj si výpisy do každého if-u, aby si vedel, kde sa dostaneš)

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+15
Guru
13. 1. 2015   #3
-
0
-

#1 Hanis Novák
Verše od Majakovského nečtu a špagety mám raději na talíři. Nauč se odsazovat. Při horizontálním rolování ztrácím kontext a nemohu poradit.

Nemá být místo proměnné $varText náhodou $jmeno?

To escapování se také dá udělat chytřeji, i když se už nepoužívá.

Nahlásit jako SPAM
IP: 37.48.42.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Hanis Novák
~ Anonymní uživatel
3 příspěvky
13. 1. 2015   #4
-
0
-

   

<?php
if($_POST['formOdeslat'] == "Submit") 
{                                       
$errorMessage = "";
		
if(empty($_POST['Jmeno'])) 
{
$errorMessage .= "<li>Please enter some text.</li>";
}
    
if(empty($_POST['Prijmeni'])) 
{
$errorMessage .= "<li>Please enter some text.</li>";
}
    
if(empty($_POST['Nazev_Skoly'])) 
{
$errorMessage .= "<li>Please enter some text.</li>";
}
    
if(empty($_POST['Mesto'])) 
{
$errorMessage .= "<li>Please enter some text.</li>";
}
    
if(empty($_POST['Trackmania'])) 
{
$errorMessage .= "<li>Please enter some text.</li>";
}
		
if(empty($_POST['Prezentace'])) 
{
$errorMessage .= "<li>Please enter some text.</li>";
}
   
if(empty($_POST['Word'])) 
{
$errorMessage .= "<li>Please enter some text.</li>";
}
$varText = $_POST['Jmeno'];
        
$varText2 = $_POST['Prijmeni'];
              
$varText3 = $_POST['Nazev_Skoly'];
                    
$varText4 = $_POST['Mesto'];
                          
$varText5 = $_POST['Trackmania'];
                                
$varText6 = $_POST['Prezentace'];
                                      
$varText7 = $_POST['Word'];

if(empty($errorMessage)) 
{      
$db = mysql_connect("xxxxx","xxxxx","xxxxxx");
if(!$db) die("Error connecting to MySQL database.");
mysql_select_db("xxxxxxxx" ,$db);

$sql = "INSERT INTO skolnisoutez (Jmeno, Prijmeni, Nazev_Skoly, Mesto, Trackmania, Prezentace, Word) VALUES (".
PrepSQL($varText) . ", " .
PrepSQL($varText2) . ", " .                 
PrepSQL($varText3) . ", " .                  
PrepSQL($varText4) . ", " .                          
PrepSQL($varText5) . ", " .                              
PrepSQL($varText6) . ", " .                                  
PrepSQL($varText7) . ")";
mysql_query($sql);
			
header("Location: thankyou.html");
exit();
}
}

function PrepSQL($value)
{

if(get_magic_quotes_gpc()) 
{
$value = stripslashes($value);
}

$value = "'" . mysql_real_escape_string($value) . "'";

return($value);
}
?>
<?php
if(!empty($errorMessage)) 
{
echo("<p>There was an error with your form:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
?>

<form action="<?php echo ($_SERVER['PHP_SELF']); ?>" method="post">
<p>
<label for='Jmeno'>Zadejte vaše jméno: </label>
<br />
<input type="text" name="Jmeno" maxlength="30" value="<?=$varText;?>" />
</p>     
<p>
<label for='Prijmeni'>Zadejte vaše příjmení: </label>
<br />
<input type="text" name="Prijmeni" maxlength="40" value="<?=$varText2;?>" />
</p>      
<p>
<label for='Nazev_Skoly'>Zadejte název vaší školy: </label>
<br />
<input type="text" name="Nazev_Skoly" maxlength="50" value="<?=$varText3;?>" />
</p>
<p>
<label for='Mesto'>Zadejte vaše rodné město: </label>
<br />
<input type="text" name="Mesto" maxlength="25" value="<?=$varText4;?>" />
</p>
<p>
<label for='Trackmania'>Vaše účast v disciplíně trackmania: </label>
<br />
<input type="text" name="Trackmania" maxlength="20" value="<?=$varText5;?>" />
</p>
<p>
<label for='Prezentace'>Vaše účast v disciplíně prezentace: </label>
<br />
<input type="text" name="Prezentace" maxlength="20" value="<?=$varText6;?>" />
</p>
<p>
<label for='Word'>Vaše účast v disciplíně word: </label>
<br />
<input type="text" name="Word" maxlength="20" value="<?=$varText7;?>" />
</p>
<p>
<input type="submit" name="formOdeslat" value="Submit" />
</p>
</form>

Zde máte teda ten kod bez mezer a odsazeni. Podařilo se mi tedy zjistit kde je problém, ale nevím jak ho vyřešit. Celý kod je perfektní bez chyb. Problém je v tom, že můj web je dynamicky (mám prostě jednu stránku, a pouze měním na webu dynamicky obsah v tom dynamickém bloku).  

Když to dám normálně na statickou stránku: http://skolnisoutez.4fan.cz/pages/prihlaska.php Tak to funguje..... Doufám, že mě pochopíte co mám na mysli. Děkuji předem za rady. 

Nahlásit jako SPAM
IP: 46.47.152.–
Hanis Novák
~ Anonymní uživatel
3 příspěvky
13. 1. 2015   #5
-
0
-

Prosím o LOCKNUTÍ :-)  podařilo se mi to vyřešit.

Opravil jsem tenhle řádek: 

<form action="<?php echo ($_SERVER["soubor"]=="prihlaska"); ?>" method="post">

a už to jede jak má, děkuji všem za feedback

Nahlásit jako SPAM
IP: 46.47.152.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý