PHP forma
 
answer 17. avg 2013 09:59:19 Pridružen od:
30. nov 2012
11 objav
3 0 0
#1

Pozdravljeni.



Sem začetnik v PHP-ju in želim narediti en večji obrazec za prijavo. Zanima me kako bi najlažje naredil, da se že izpolnjena polja ohranijo ob kliku na "Submit" gumb? Če npr uporabnik nekatera obvezna polja pozabi izpolniti, se mu že izpolnjena vseeno ohranijo...



Zaenkrat sem probal to narediti takole:

<input type="text" name="full_name" value="<?php echo $_POST['full_name']; ?>">



Ta rešitev mi je ok, problem je le na začetku, ker se mi v polju za vnos izpiše:



<b>Notice</b>: Undefined index: full_name .../b>



Rad pa bi, da je polje na začetku prazno....


všeč(1) ni všeč(0) spam(0)
 
atlet 17. avg 2013 10:17:57 Pridružen od:
13. avg 2008
113 objav
82 2 2
#2

$full_name = "";



if (isset($POST['fullname'])) {

$fullname = $POST['full_name'];

}



<input type="text" name="full_name" value="<?php echo $full_name; ?>">



Nekaj v tem stilu. :)


všeč(0) ni všeč(0) spam(0)
 
answer 17. avg 2013 10:41:33 Pridružen od:
30. nov 2012
11 objav
3 0 0
#3

Ampak mi ne rata na ta način :S

Evo moja koda je takšna (to funkcijo kličem potem na drugi strani), pa delam še validacijo zraven:


<?php
function prijavaSMS() {

$msg_name ="";
$msg2_name ="";


if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
if(!preg_match($name_pattern, $name_subject, $name_matches))
$msg2_name = "Only alphabets and white space allowed";
}
?>

<form id="registration_form" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<label>Full name<span class="note">*</span>:</label>
<input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">
<?php echo "<p class='note'>".$msg_name."</p>";?> <?php echo "<p class='note'>".$msg2_name."</p>";?> <br/>
<br/>
<button type="submit" class="" name="submit">Oddaj prijavo</button>
</form>
<?php
}
?>

Prikaže pa se takole (namesto da bi se že na začetku prikazal "placeholder"):


všeč(1) ni všeč(0) spam(0)
 
answer 17. avg 2013 10:54:56 Pridružen od:
30. nov 2012
11 objav
3 0 0
#4

Hm, sem zdaj probal na "pravem" strežniku (prej sem delal lokalno) in dela vse ok :). Je možno, da je to razlog (oz. zakaj, če kdo ve)?



Hvala!


všeč(0) ni všeč(0) spam(0)
 
atlet 17. avg 2013 10:58:59 Pridružen od:
13. avg 2008
113 objav
82 2 2
#5

Namesto empty, uporabi isset, kot sem jaz. Na strežniku ti pa ne pokaže obvestila zato, ker imaš izklopljen prikaz napak...


všeč(1) ni všeč(0) spam(0)
 
Jacky 20. avg 2013 16:30:27 Pridružen od:
22. apr 2012
73 objav
53 15 0
#6

Jaz pri vsakem projektu uporabljam nasledno kodo da se znebim napak in pa obvestil:


error_reporting(E_ALL ^ E_NOTICE);
ini_set("display_errors", "off");

Večina gostovanj ti bo te dve kodi dovolila. Priporočam da na spletni strani ki jo imaš vidno pred celim svetom izklopiš kakeršna koli sporočila o napakah, opozorilih ipd. in si nastaviš da ti piše v neko datoteko recimo:


ini_set("display_errors", "off");
ini_set("error_log", getcwd()."/logs/php_errors.log");

Takole rešiš problem z prikazovanjem "Notice, Warning, Error, Fatal error" ipd. in imaš vse skupaj v eni datoteki.


všeč(1) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se