eude Posted February 8, 2010 Report Share Posted February 8, 2010 Kamēr visu taisīju un testēju uz sava datora tikmēr viss bija kārtībā. Taču uzliekot uz hosta (hostplex.eu) sākās problēmas, bet nevaru izdomāt, kas tieši ir pie vainas. Tātad, man ir index fails, kurā ir galvenais switch ($f), ar kuru es rādu visu ko vēlos, šajā switchā ietilpst arī admina panelis, kurš, savukārt, pats satur citu switchu sevī. Skelets izskatās šāds: $f = $_GET['f']; switch($f){ [...] case 'acp': $o = $_GET['o']; switch($o){ [šeit ir visas admina funkcijas] } break; [...] } Tālākam piemēram ņemšu rakstu sekciju. Manis rakstīto rakstu var apskatīt jebkurš, tāpēc tas ir ārpus otrā switcha, visi id un citi zvēri ir kārtībā, visu rāda. Bet kad es cenšos labot vai dzēst kādu rakstu, tad man rāda, ka nepieciešams raksta id, lai gan id ir norādīts adresē. Adrešu piemēri: Vienkārši skatoties rakstu http://[domēns]/raksts/7/ Un cenšoties labot šo rakstu http://[domēns]/raksts/labot/7/ Es lietoju mod_rewrite. (gabals no htaccess faila zemāk). RewriteRule ^raksts/([0-9]+)/$ ./?f=raksts&rid=$1 [QSA] RewriteRule ^raksts/labot/([0-9]+)/$ ./?f=acp&o=editnews&rid=$1 [QSA] Tā notiek ar visu, ko cenšos izmainīt caur admina paneli jeb visu, kas ir iekš otrā switcha. Kamēr skatās rakstus, darbus galerijā tikmēr viss strādā, kā vajag. Kas varētu būt par problēmu? Otrs switch? Hosts? Quote Link to comment Share on other sites More sharing options...
2easy Posted February 8, 2010 Report Share Posted February 8, 2010 (edited) [QSA,L] turklāt samaini vietām abas rules, lai specifiskākā ir pirmā Edited February 8, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
eude Posted February 8, 2010 Author Report Share Posted February 8, 2010 Pieliku L tagu un samainīju vietām, nekaas nemainās. Rīt pamēģināšu uztaisīt atsevišķu failu admina panelim ar atsevišķu switchu, varbūt sanāks. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 8, 2010 Report Share Posted February 8, 2010 varbūt adrese ir /raksts/labot/7 bez "/" beigās? ;) vēl debugojot var izslēgt mod rewrite. varbūt gļuks ir kkur citur Quote Link to comment Share on other sites More sharing options...
briedis Posted February 8, 2010 Report Share Posted February 8, 2010 Pieliku L tagu un samainīju vietām, nekaas nemainās. Rīt pamēģināšu uztaisīt atsevišķu failu admina panelim ar atsevišķu switchu, varbūt sanāks. print_r($_GET); Quote Link to comment Share on other sites More sharing options...
eude Posted February 9, 2010 Author Report Share Posted February 9, 2010 (edited) par to, lai beigās vienmēr būtu / esmu parūpējies iekš mod rewrite. esmu uzlicis, ka, ja nav beigās /, tad viņš redirecto uz adresi, pieliekot beigās / :) nu man jau rāda, ka ir id :/ Array ( [f] => acp [o] => editnews [rid] => 7 ) bet lapas vidū rāda manis veidoto kļūdas paziņojumu, ka vajag id, lai labotu rakstu. :/ dzēšana tomēr darbojas, nedarbojas tikai labošana. Edited February 9, 2010 by eude Quote Link to comment Share on other sites More sharing options...
2easy Posted February 9, 2010 Report Share Posted February 9, 2010 (edited) par to, lai beigās vienmēr būtu / esmu parūpējies iekš mod rewrite. esmu uzlicis, ka, ja nav beigās /, tad viņš redirecto uz adresi, pieliekot beigās / :) lol, es parasti daru tieši otrādi. ja beigās ir /, tad ņemu to nost vienīgi ja ir arī parastie parametri (dažreiz tos vajag), tad gan ja beigās nav /, tad pielieku to klāt (lai starp path un "?" būtu /). bet tas tā, gaumes jautājums ^^ kr4 man ir viens standarta/universālais mod rewrite jebkurai web applikācijai (pārējā loģika/processings iekš php) RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] RewriteCond %{QUERY_STRING} ^$ RewriteRule (.+)/$ $1 [R,L] RewriteCond %{QUERY_STRING} .+ RewriteRule (.*[^/])$ $1/ [R,NE,L] RewriteRule ^([a-z0-9-/]+?)/?$ ?nice=$1 [QSA] nu man jau rāda, ka ir id :/ Array ( [f] => acp [o] => editnews [rid] => 7 ) bet lapas vidū rāda manis veidoto kļūdas paziņojumu, ka vajag id, lai labotu rakstu. :/ zna4it ar skeletu būs par maz, lai varētu tev palīdzēt ;) kodu (kas pieņem lēmumu rādīt tevis veidoto kļūdas paziņojumu) studijā! :)) Edited February 9, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
eude Posted February 9, 2010 Author Report Share Posted February 9, 2010 (edited) labot rakstu case 'editnews': $rid = $_GET['rid']; if($id==''){echo '<h3>Kļūda</h3><div class="left-c">Vajag raksta id, lai to labotu!</div>';} else{ $result = mysql_query("SELECT * FROM news WHERE id=$rid") or die(mysql_error()); $row = mysql_fetch_array( $result ); $post = $row['post']; $post = str_replace("<","<","".$post.""); $post = str_replace(">",">","".$post.""); echo '<h3>Labot rakstu</h3><div class="left-c"> <form action="/raksts/labots/'.$rid.'/" method="post"> Virsraksts<br /><input name="title" type="text" style="width:250px;" value="'.$row['title'].'"/><br /> Raksts<br /> <script>edToolbar("post"); </script> <textarea name="post" id="post" class="ed">'.$post.'</textarea><br /> <input name="Submit" type="submit" value="Labot"/> </form></div>'; } break; un dzēst case 'deletenews': $rid = $_GET['rid']; if($rid==''){echo '<h3>Kļūda</h3><div class="left-c">Vajag raksta id, lai to dzēstu!</div>';} else{ mysql_query("DELETE FROM news WHERE id='".$rid."'") or die(mysql_error()); echo '<h3>Raksti</h3><div class="left-c">Raksts dzēsts!</div>'; } break; edit: tikko pamanīju, ka man pie labošanas ir $id, nevis $rid. :D tagad viss strādā. pat nezinu kāpēc man tur pazuda r burts, jo failos, kas man stāv uz PC ir tur rid. var slēgt ciet, paldies tik un tā ;) Edited February 9, 2010 by eude Quote Link to comment Share on other sites More sharing options...
2easy Posted February 9, 2010 Report Share Posted February 9, 2010 lol, kā parasti... Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.