Jump to content
php.lv forumi

Komentaari


sofTKiller

Recommended Posts

Un ko tas man dod? :unsure:

Man probleema taada, ka skripts, ko uzraxtiiju nestraadaa, raadaa kljuudu uz liinijas, uz kuras nav nekas raxtiits.

Nu pats skripts:

<?

$comfile = "komentaari.txt";

if($name != "") {

setcookie("name", "$name", mktime(0,0,0,1,1,2006));

}

if($email != "") {

setcookie("email", "$email", mktime(0,0,0,1,1,2006));

}

if($web != "") {

setcookie("web", "$web", mktime(0,0,0,1,1,2006));

}

 

if(id != "") {

if($submit == 'Pievienot!'){

if($name == ""){

$error1 = "Luudzu ievadiet savu vaardu!<hr>";

}

if($comments == ""){

$error2 = "Luudzu ievadiet komentaaru!<hr>";

}

}

 

if ($name != "" and $comments !="" and $id != ""){

 

$search=array("\t","\n");

$replace=array(" ","");

$web=preg_replace($search,$replace,$web);

$id=preg_replace($search,$replace,$id);

$email=preg_replace($search,$replace,$email);

$name=preg_replace($search,$replace,$name);

 

if(file_exists($comfile)) {

$read_old = fopen($comfile, "r");

$old = fread($read_old, filesize($comfile));

fclose($read_old);

} else {

$read_old = fopen($comfile, "w");

$old = "";

fclose($read_old);

}

 

$date = date("j.m.Y");

 

if($HTTP_X_FORWARDED_FOR=="") {

$ip = $REMOTE_ADDR;

} else {

$ip = $HTTP_X_FORWARDED_FOR;

}

 

$text = "$id $name $date $email $web $ip $comments ";

$text .= "$old";

 

$no_of_words = 1000;

$words_array = split(" ", $comments, $no_of_words++);

if(count($words_array) <= $no_of_words) {

$fp = fopen($comfile, "w");

fputs($fp, $text);

fclose($fp);

} else {

$error3 = "<b>>> Luudzu uzrakstiet nedaudz mazaak mazaak vaardus, paaraak daudz uzrakstiijaat! :P</b><hr>";

}

 

}

} else {

 

 

?>

<table border='0' cellspacing='4' cellpadding='0' width='100%'>

<tr><form method='post' action='komentaari-skripts.php?id='<' echo $id; '><td>

Vaards : <input type='text' name='name' value='<' echo $HTTP_COOKIE_VARS["name"]; '>' style="width=70">

: Mails : <input type='text' name='email' value='<' echo $HTTP_COOKIE_VARS["email"]; '>' style="width=100">

: Saits : <input type='text' name='web' value='<' echo $HTTP_COOKIE_VARS["web"]; '>' style="width=169"><br>

<textarea name="comments" style="height=60; width=480"></textarea><br>

<input style="cursor:hand" type="submit" name="submit" value="Pievienot!">

<hr size=1 color=#1d2f49>

<?

 

echo "$error1$error2$error3$error4</td></tr>";

 

$file = @file($comfile);

 

for ($i=0; $i<count($file); $i++) {

 

$row = explode(" ",$file[$i]);

list($ida, $namea, $datea, $emaila, $weba, $ipa, $commentsa) = $row;

if($ida == $id) {

 

if(eregi(";@", $emaila)) {

$emaila = "<a href=?mailto:$emaila?>$namea</a>";

} else {

$emaila = $namea;

}

 

 

?>

Kur tad taa kljuda ir? :unsure:

Link to comment
Share on other sites

apskatījos tikai pašu primo rindkopu, filosofisks komentārs:

$comfile = "komentaari.txt";

labāk 'komentaari.txt', bet tas nu tā

 

if($name != "") {

setcookie("name", "$name", mktime(0,0,0,1,1,2006));

}

 

var pierakstīt labāk:

if ($name)

setcookie('name',$name,mktime...)

 

tālāk - if(id != "") - id ir constante vai mainīgais? [if ($id) ...]

 

un no kurienes tev tie mainīgie vispār rodas? šis fails tiek inklūdots citā?

vai arī būtu jāraksta att. metode (<form method=?> apakšmainīgais, e.g.

if (!empty($_GET['id'])) ...

------

ak jā - un kad raksta kļūdu paziņojumu, parāda aptuvenu vietu. Ja uz līnijas kļūdas nav, tad skaties dažas rindas augstāk (parasti neaiziet tālāk par +- 5 rindām, unless kaut kur nepareizi nolocits {,})

Edited by Venom
Link to comment
Share on other sites

Vēl:

\t un \n aizvietošanai ar "" labāk tak lietot str_repalce nevis preg_replace. Būs ātrāk

Kas tas par dīvainu CSS: style="width=100"?? CSSā tak sintakse ir: atribūts: vērtība; atribūts2: vērtība2; ... Tev nav jābīt: style="width: 100px" ??

Emm, kas tā vispār par dīvainību: <input type='text' name='name' value='<' echo $HTTP_COOKIE_VARS["name"]; '>' style="width=70"> Tur tak tas echo netiks apstrādāts ar php parseri! nevjag <?php echo ... ?> ??

 

Nu ja, un Venom'am bija taisnība. Tev { skaits nesakrīt ar } skaitu. { ir par divi vairāk nekā }

Link to comment
Share on other sites

Nu skaties 95 rindiņu:

$commentsa = eregi_replace('(http://[^ )', '?>]+)', '<a href='1' target='_blank'>1</a>', $commentsa);

Īpaši šo vietu: ... , '<a href='1' target='_blank'>1</a>', ...

Tas tev neliekas dīvains strings?

Link to comment
Share on other sites

Nu un ko tas deva, ka ieliku to kodu tajaa http://paste.php.lv/1342/ :huh: ? nu kljuuda ir sekojosha: Parse error: parse error, unexpected T_LNUMBER in C:\blabla\blabla\blabla.php on line 95 !

Nu man vajag parastu skriptu, ka pievieno komentaarus, bet protams uz php...

Sintakses kļūdas novērsu:

http://paste.php.lv/1344

 

P.S. reizēm ir vērts arī kaut ko minimāli saprast par to, ko nozīmē PHP un programmēšana ;)

Link to comment
Share on other sites

×
×
  • Create New...