Jump to content
php.lv forumi

Form refresh!


Odze

Recommended Posts

Tātad problēma ir tā, ka spiežot refresh pogu komentārs atkal pievienojas. Es sprotu, ka lai tas tā nenotiktu padotajiem mainīgajiem ir jābūt tukšiem, bet kā to panākt?

Dažas tēmas iepriekš viens cilvēks jau to vaicāja, bet es nezinu, kas tie hederi tādi ir un ko nozīmē redirekts uz to pašu lapu. Ja kāds var paskaidrot sīkāk par šim lietām lūdzu palīdziet.

 

P.S. Pats biju izdomājis tādu variantu, ka pievienojot jaunu ierakstu datu bāzē tas tiek salīdzināts ar iepriekšējo, ja ieraksti sakrīt, tad nepievieno.

Link to comment
Share on other sites

moš šis te Tev palīdzēs

<?
$comments1 = strip_tags($comments);
$comments1 = nl2br($comments1);
$comments1 = substr($comments1, 0, 2500);
$comments1  = ereg_replace("([^ ]{55})","\\1<br>",$comments1);

$datumsc = date("d.m.Y  H:i:s"); //nodefinejam datumu
MYSQL_CONNECT(localhost,user,pass) OR DIE ("nav servera");
mysql_select_db("sviesc") or DIE ("Nav DB.");

if (sizeof($_POST)>0){
 mysql_query("INSERT INTO coments (id,name, text, raxta_id, date, ip, email, http) VALUES (NULL,'$names','$comments1', '$raxta_id', '$datumsc','$ip','$email','$http')") OR die(mysql_error());
header("Location: read.php?id=$raxta_id");
}
?>

pats lietoju no problem

Link to comment
Share on other sites

šis kods man neko nepalidz, jo te pat forma nav.
Shis kods tikai apstraaadaa no formas padotos datus.

 

Starp citu ko dara šī header("Location: read.php?id=$raxta_id"); rindiņa???

 

Shii rindinja redirektee lietotaaju uz noraadiito lapu :)

Link to comment
Share on other sites

principaa vis pareizaakais buutu

formu apstraadaat citaa php faila un tad ar header location atgriezt komentaaru lapaa

 

savaadaak janemaldos tad ar trefresh lagaa neavr ciiniities...

 

 

tipo:

 

<form action="add_comment.php">
<input type="text" />
<input type="submit">
</form>

un

add_comment.php

daram visu kas jaadara ar ievaddatiem

header(Location: "$_SERVER[HTTP_REFERER]")

 

par kodu neatbildu raxtitis uz atru roku bet galvenasi ir doma...

Link to comment
Share on other sites

principaa vis pareizaakais buutu

formu apstraadaat citaa php faila un tad ar header location atgriezt komentaaru lapaa

 

savaadaak janemaldos tad ar trefresh lagaa neavr ciiniities...

 

Mmm..imho ja to pashu lapu paarlaadee veelreiz tad visi mainiigie buus pazudushi, so, var iztik ari ar vienu lapu.

Link to comment
Share on other sites

funcija redirect("lapa.php","maisigais=7&mainigais2=3")

 

 

Function redirect($strURL, $strQueryString = "") {

$strQueryString = urlSafe($strQueryString);

header ("Location: $strURL?$strQueryString");

header ("QUERY_STRING: $strQueryString");

exit;

}

 

iespējams noderēs ;)

Edited by trinklins
Link to comment
Share on other sites

Ko izdara šī rindiņa - header(Location: "$_SERVER[HTTP_REFERER]")

Iztīra mainīgos?

labrīt tā vienkārši aizsūta datu ievadītāju uz lapu no kuras tas atnāca

par to ka tas mans scripts Tev nepalīdz rodas jautājus ko tad Tu īsti vēlies darīt?

tas ir jau gatavs kometu pievienošanas fails kurš pie tam vel izfiltre tava mīļā apmeklētāja textu...

<?
$comments1 = strip_tags($comments); // izmetam visus html tagus
$comments1 = nl2br($comments1); // n partaisam par <br>
$comments1 = substr($comments1, 0, 2500);// atlaujam postēt tikai 2500 simbolus
$comments1  = ereg_replace("([^ ]{55})","\\1<br>",$comments1); // ik pēc 55 simboliem liekam <br>

$datumsc = date("d.m.Y  H:i:s"); //nodefinejam datumu 
MYSQL_CONNECT(localhost,user,pass) OR DIE ("nav servera");
mysql_select_db("sviesc") or DIE ("Nav DB.");// konektējamies pie servera

if (sizeof($_POST)>0){ //parliecinamies vai posts ir noticis
mysql_query("INSERT INTO coments (id,name, text, raxta_id, date, ip, email, http) VALUES (NULL,'$names','$comments1', '$raxta_id', '$datumsc','$ip','$email','$http')") OR die(mysql_error()); // ievietojam datus iekš db
header("Location: read.php?id=$raxta_id"); // sūtam posteri kur mees to velamies 
}
?>

Link to comment
Share on other sites

funcija redirect("lapa.php","maisigais=7")

 

 

Function redirect($strURL, $strQueryString = "") {

$strQueryString = urlSafe($strQueryString);

header ("Location: $strURL?$strQueryString");

header ("QUERY_STRING: $strQueryString");

exit;

}

 

iespējams noderēs ;)

šaubos vai šo te scriptu viņš sapratīs :)

Link to comment
Share on other sites

header, kā jau tu droši vien manuālī izlasīji ;), nosūta klientam HTTP hederi. Šajā gadījumā Location:. Location hederis liek klientam slēgties klāt tai lapai, kas seko pēc Location.

Šajā gadījumā - tai lapai no kurienes cerams, varbūt klients nokļuva lapā ($_SERVER[HTTP_REFERER]). Kad notiek šāds pasākums, klients atmet visus līdzšinējos $_REQUEST (POST un GET) mainīgos un slēdzas klāt norādītajai lapai (iespējams ar jauniem GET mainīgajiem, ja tos norāda iekš Location hedera).

Edited by Aleksejs
Link to comment
Share on other sites

Tieši tādēļ, ka PHP to nevar zināt - tiek taisītas šādas viltības. Visi tev piedāvātie skripti - vienkārši neļauj Nx aizsūtīt vienu un to pašu POST/GET, jo uzreiz pie saņemšanas aizmet uz citu lapu (un šī procesa rezultātā, kā jau teicu, klients zaudē iepriekšējāš POST/GET vērtības).

Link to comment
Share on other sites

×
×
  • Create New...