Jump to content
php.lv forumi

Recommended Posts

Posted

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.

Posted

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

Posted

šis kods man neko nepalidz, jo te pat forma nav. Starp citu ko dara šī header("Location: read.php?id=$raxta_id"); rindiņa???

Posted
š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 :)

Posted

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...

Posted
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.

Posted (edited)

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
Posted
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 
}
?>

Posted
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 :)

Posted (edited)

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
Posted (edited)

<INPUT TYPE="submit" NAME="btnSubmit" VALUE="ok">

<?
if ($btnSubmit)  // nokontrolē submit pogu
{...}
?>

vēl viens variants

 

<?
If ($HTTP_POST_VARS["btnSubmit"] != "") 
{...}

?>

Edited by trinklins
Posted

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).

×
×
  • Create New...