 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
bld
Data înscrierii: 01/Sep/2004
Mesaje: 284
Locație: Alaska
|
| Trimis: Dum Ian 23, 2005 4:29 pm Titlul subiectului: Remove post? |
|
|
Bine...deci...
Se acceseaza pagina mesaje.php (pagina unde se gasesc toate mesajele postate de useri preluate din baza de date)...la accesarea paginii scriptul php verifica nivelul utilizatorului din sesiune...daca este 0 include un fisier php cu un anumit design si scripturi daca este 1 include altul.
Eu vreau ca utilizatorii obisnuiti sa nu ai acc la butonul de stergere a unui post...nici sa nu-l vada...de aceea folosesc 2 fisiere separate prentru includere...problema este urmatoarea...sa ziceam ca utilizatorii obisnuiti vad doar mesajele postate iar moderatorii vad si botunul de remove post...cum fac ca acel post in dreptul caruia se afla butonul remove post sa fie sters...cum fac afisarea din baza de date pentru a reusi acest lucru?
Voi avea cate un buton/link remove post la fiecare post nu? cum trebuie facut? nu cunosc solutia buna...
Exista si o solutie mai buna decat cu include? daca da, care este daca nu...cum se poate rezolva restul problemei...multumesc! |
|
| Sus |
|
carco
Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti
|
| Trimis: Dum Ian 23, 2005 5:17 pm Titlul subiectului: |
|
|
Pai sa vedem. In primul rand in tabela mesaje ar trebui sa ai un id (un autoincrement).
Sa zicem ca ai tabela mesaje cu campurile id,data,nume,mesaj
Algoritmul ar fi urmatorul:
an style="color: #000000"><?php ......verificare drepturi user....
require("conectareDB.php");
....
$query="SELECT * FROM mesaje;";
$result=mysql_query($query) or die("Eroarea select <br />".mysql_error());
echo "<table>\n";
while ($row=mysql_fetch_array($result)) {
echo "<tr><td>$row['nume'] in $row['data'] a scris:</td></tr>\n";
echo "<tr><td>$row['mesaj']";
if ([conditie moderator])
echo "<hr /><a href='delete.php?id=$row['id']' title='Stergere'>Sterge</a> | <a href='edit.php?id=$row['id']' title='Editare'>Edit</a>";
echo "</td></tr>";
}
echo "</table>";
}
Acum in delete.php ai $_GET['id'] ca fiind id-ul mesajului ce doresti sa-l stergi.
an style="color: #000000"><?php .....autentificare....
if (isset($_GET['id']) && is_numeric($_GET['id']) {
$query="DELETE FROM mesaje WHERE id=$_GET['id'];"
....
}
else echo "Nice try!";
P.S. nu am testat codul, posibil sa fie erori |
|
| Sus |
|
bld
Data înscrierii: 01/Sep/2004
Mesaje: 284
Locație: Alaska
|
| Trimis: Dum Ian 23, 2005 7:56 pm Titlul subiectului: |
|
|
<?php
include ('objects/conectaredb.php');
$query = ("SELECT id,nume,mail,mesaj,data,ip FROM questbook order by data desc");
$result = mysql_query($query) or die ('Eroare la vizionarea posturilor:'.mysql_error());
while ($row = mysql_fetch_array ($result)) {
$id = $row["id"];
$nume=$row["nume"];
$mail=$row["mail"];
$mesaj=$row["mesaj"];
$data=$row["data"];
$ip=$row["ip"];
if ($_SESSION['logat'] != 'DA') {
$id = $id++;
echo '<div style="position:relative; top:10px; left:10px; width:700px; height:auto;" id="sus">'.$nume.'in data de:'.$data.' a scris:</div>';
echo '<div style="position:relative; top:10px; left:10px; width:700px; height:auto;" id="mesaj">'.stripslashes(nl2br($mesaj)).'</div>';
}
else
{
$id = $id++;
echo '<div style="position:relative; top:10px; left:10px; width:700px; height:auto;" id="sus">'.' '.$nume.' '.'in data de: '.$data.' a scris:<div style="float:right"><a href="php/delete.php?id='.$id.'">Sterge</a> | <a href="php/edit.php?id='.$id.'">Edit</a></div></div>';
echo '<div style="position:relative; top:10px; left:10px; width:700px; height:auto;" id="mesaj">'.stripslashes(nl2br($mesaj)).'</div>';
}}
?>
Multumesc pentru sfaturi...de mers merge...dar...funtia(date) de fiecare daca imi afiseaza 000-00-00...de ce? am gresit formatul sau care e problema? cum trebuie sa fac...in scriptul php am folosit $data = date('jS F Y'); |
|
| Sus |
|
carco
Data înscrierii: 27/Mai/2004
Mesaje: 2796
Locație: Bucuresti
|
| Trimis: Dum Ian 23, 2005 9:29 pm Titlul subiectului: |
|
|
pai daca in baza de date ai pus data de tip DATE nu merge sa bagi valoare furnizata de date in acea forma. Cand faci INSERT-ul poti folosi functia mysql now():
INSERT INTO numetabela (data,mesaj) VALUES (now(),"sdfsdds");
Daca vrei sa formezi manual data date('YmdHis') ar trebui sa genereze formatul asteptat de MySQL, adica: AAAALLZZHHMMSS |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|