Jump to content
php.lv forumi

Recommended Posts

Posted

Kaa pievienot komentaarus ieksh php? varbuut kaads skripts ir?

Un tik luudzu nefilozofeejiet ;) , bet gan taa labi apskaidrojiet vai arii iedodiet skriptu... :huh:

Posted

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:

Posted (edited)

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
Posted

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ā }

Posted
Hehe, es jau par to ar nosmējos :) Bet cilvēks to laikam nebija domājis.

Nu, jā, es jau arī tā domāju, kad liku... (-; Bet nu uz sākotnējo jautājumu šī bija vienīgā iespējamā konkrētā atbilde. :D

Posted

Tak neviens nezin kā tev visu tur vajag. Kas mēs gaišreģi kautkādi? Tu labāk pasaki kādu kļūdu rāda un kodu ieliec paste.php.lv

Posted

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

Posted

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?

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

×
×
  • Create New...