Файл изтрии

redsystem

Registered
Някой може ли да ми направи файл , с който да може да се трие личното съобщение и да има защита да може само неговото съобщение да се изтрие , а не чужди... :)

Става на въпрос за тази система http://web-tourist.net/login/login/view.php?st=2387
 
Ами системата съм я преглеждал, но не и наскоро. Та значи предполагам имаш линк към всяко съобщение, т.е. <a href='read.php?id=7'>Нещо</a> примерно. Та отстрани добавяш едно <a href='delete.php?id=7'>Нещо</a> и в самия файл за изтриване взимаш id с $_GET и правиш една проверка, дали to (т.е. до(получателя)) е потребителя, дето се опитва да го изтрие. Ако е той му даваш да изтрие DELETE .... виж в гугъл как става (mysql delete). Ако това to не е до потребителя, дето се опитва - да не му дава. Ако не успееш да се справиш утре ще ти помогна (сутринта), щото сега почва снукъра и нямам време.
 
Примерно аз зная как да си направя файл да изтривам дадено нещо, но самата проверка на username които е пратено.. как ще стане :?
WHERE users ли как :S
 
ем да речем правиш си нов файл с име delete.php и правиш така

<?
$id = $_GET['id'];
$ot = $_GET['ot'];
$zaqvka = mysql_query ("SELECT * from `mesage` WHERE `id` = '$id' OR `ot` = '$ot' ) or die (mysql_error());
if ($log['username'] == '$ot') {
mysql_query("DELETE FROM mesage WHERE id = '$id'");
}
?>

в главната част

$id=$_GET['id];
<a href = "delete.php?id=$id" />Изтрий </a>

Така би трябвало да работи !
 
justspy каза:
ем да речем правиш си нов файл с име delete.php и правиш така

<?
$id = $_GET['id']; // Тука ще взимаме ид на съобщението
$ot = $_GET['ot'];
$zaqvka = mysql_query ("SELECT * from `mesage` WHERE `id` = '$id' OR `ot` = '$ot' ) or die (mysql_error()); //mesage ти е таблицата .. промени си я ако не е така ..
if ($log['username'] = '$ot') {
mysql_query("DELETE FROM mesage WHERE id = '$id'");
}
?>
Несам сигорен дали бачка .. но пробвай .. това да ти е за основа :D
Само да поясня, че този вид коментари в PHP код //коментар се ползва ако коментара ще е 1 ред.. Другото - за знак равно все едно ($a==$b) се използва два знака равно иначе с един ще го присвои... Накрадко това няма да работи ич :)
 
Едит:
Основата на кода ще е така...
В страницата на личното съобщение сложи това
<?
$id=$_GET['id'];
echo"<a href='delete.php?id=$id'>Изтрий</a> ";
?>
После в delete.php
<?
$id = $_GET['id'];
if(isset($id)){
$sql ="DELETE FROM table where id='$id' LIMIT 1";
mysql_query($sql) or die(mysql_error());
}
?>
 
DeathGuard_ каза:
Едит:
Основата на кода ще е така...
В страницата на личното съобщение сложи това
<?
$id=$_GET['id'];
echo"<a href='delete.php?id=$id'>Изтрий</a> ";
?>
После в delete.php
<?
$id = $_GET['id'];
if(isset($id)){
$sql ="DELETE FROM table where id='$id' LIMIT 1";
mysql_query($sql) or die(mysql_error());
}
?>
Ами проверката да ли е негово съобщението?
То така потребителя ще може да изтрие на всеки съобщението само като смени id номера.. :roll:
 
@DeathGuard_ имаш малка грешка. Не прави проверка дали съобщението е на потребителя, дето се опитва да го изтрие.
<?php
//Проверка дали потребителя е логнат, като в примера ще използвам променливата $username
$id = $_GET['id'];
$mysql = mysql_query("SELECT * FROM messages WHERE id='$id'");
$mysql1 = mysql_fetch_array($mysql);
$to = $mysql1['to'];
if(isset($id) && $to=='$username'){
$sql ="DELETE FROM messages where id='$id' LIMIT 1";
mysql_query($sql) or die(mysql_error());
} else {
echo "<meta http-equiv='refresh' content='0;index.php'>";}
?>
 
crazy_pi4 каза:
@DeathGuard_ имаш малка грешка. Не прави проверка дали съобщението е на потребителя, дето се опитва да го изтрие.
<?php
//Проверка дали потребителя е логнат, като в примера ще използвам променливата $username
$id = $_GET['id'];
$mysql = mysql_query("SELECT * FROM messages WHERE id='$id'");
$mysql1 = mysql_fetch_array($mysql);
$to = $mysql1['to'];
if(isset($id) && $to=='$username'){
$sql ="DELETE FROM messages where id='$id' LIMIT 1";
mysql_query($sql) or die(mysql_error());
} else {
echo "<meta http-equiv='refresh' content='0;index.php'>";}
?>
Да, съжалявам хем се сетих, че нещо забравям...
 
crazy_pi4 каза:
@DeathGuard_ имаш малка грешка. Не прави проверка дали съобщението е на потребителя, дето се опитва да го изтрие.
<?php
//Проверка дали потребителя е логнат, като в примера ще използвам променливата $username
$id = $_GET['id'];
$mysql = mysql_query("SELECT * FROM messages WHERE id='$id'");
$mysql1 = mysql_fetch_array($mysql);
$to = $mysql1['to'];
if(isset($id) && $to=='$username'){
$sql ="DELETE FROM messages where id='$id' LIMIT 1";
mysql_query($sql) or die(mysql_error());
} else {
echo "<meta http-equiv='refresh' content='0;index.php'>";}
?>

Не трие от базата :S таблицата ми е message , а потребителя с който взимам ника е: $userche :idea:
 
какво точно ти изписва .. това там как извеждаш потребителя е без значение .. :)
 
Щом имаш готова променлива $userche, така?
<?
$id = $_GET['id'];
$usern=$log['username'];
$sql=mysql_query("SELECT * FROM mesage where id='$id'") or die(mysql_error());
$row=mysql_fetch_array($sql);
$do=$row['do'];
if(isset($id)){
$sql ="DELETE FROM mesage where id='$id' and do='$usern' LIMIT 1";
mysql_query($sql) or die(mysql_error());
} else {
echo "<meta http-equiv='refresh' content='0;index.php'>";}
?>
Едит:
Оф съвсем се оплетох я виж така..
 
DeathGuard_ каза:
Щом имаш готова променлива $userche, така?
<?
$id = $_GET['id'];
$usern=$log['username'];
$sql=mysql_query("SELECT * FROM mesage where id='$id'") or die(mysql_error());
$row=mysql_fetch_array($sql);
$do=$row['do'];
if(isset($id)){
$sql ="DELETE FROM mesage where id='$id' and do='$usern' LIMIT 1";
mysql_query($sql) or die(mysql_error());
} else {
echo "<meta http-equiv='refresh' content='0;index.php'>";}
?>
Едит:
Оф съвсем се оплетох я виж така..


И този код не ръботи , ох :(
 
Добре, на тоя код дето ти дадох, аз не виждам какво му е. Променил ли си си базата данни от кода и променливата за потребителя.
 
Оправих се...
Благодаря на всички все пак за помоща. Ако има начин да дам на всички по 1+ щях да го направя.
 

Горе