"voeg toe als vriend" script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

R

R

27/01/2006 13:44:00
Quote Anchor link
hey mensen, ik heb voor een profielen website een "voeg toe als vriend" scriptje,, dus wanneer een member de profiel bezoekt van een andere member kan hij die toevoegen als vriend.....

ik heb het volgende script daarvoor inelkaar gezet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?

/*

CREATE TABLE `voegvriendtoe` (
  `vriendid` int(4) NOT NULL auto_increment,
  `username` varchar(30) NOT NULL default '',
  `vriendnaam` varchar(30) NOT NULL default '',
  PRIMARY KEY  (`vriendid`),
  UNIQUE KEY `vriendid` (`vriendid`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

*/



if ($_SESSION['loggedin'] == 'ja'){

// scriptt



if (isset ($_GET['addvriend'])) {
    $addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";

    mysql_query ($addsql) or trigger_error (mysql_error());

echo "$row[username] is toegevoegd aan je vriendenlijst";

  }



echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";


}


elseif ($_SESSION['loggedin'] != 'ja'){

// fout je kan niet toeveogen

}


?>


het werkt wel..... alleen probleem is dat ik 10 keer kan klikken op de link voeg toe als vriend en dat hij hem dan ook 10 keer in de DB zet.... hoe los ik dat op ?
 
PHP hulp

PHP hulp

15/11/2024 12:28:39
 
Leon Kunst

Leon Kunst

27/01/2006 13:46:00
Quote Anchor link
WHERE LIMIT =1 ????

zoiets? toevoegen aan je addsql query
 
R

R

27/01/2006 13:49:00
Quote Anchor link
heb het ff geprobeerd maar nee dat werkt niet........ :(
 
Arjan Kapteijn

Arjan Kapteijn

27/01/2006 13:49:00
Quote Anchor link
Het is natuurlijk niet handig om die link te laten staan als iemand al je vriend is.

Database opzetje:

Userid
UseridVriend

Beide samen zijn dan je PK (samengestelde PK dus)
 
EdwinG

EdwinG

27/01/2006 13:50:00
Quote Anchor link
Voor deze tekst een controle toevoegen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (isset ($_GET['addvriend'])) {
    $addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";

    mysql_query ($addsql) or trigger_error (mysql_error());
?>


Dit is de controle:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (isset($_GET['addvriend'])) {
$sql = "SELECT FROM voegvriendtoe where username = '$username'  AND vriendnaam = ' $row[username]' ;";
if (!mysql_num_rows(mysql_query($sql)))
{
// Jouw code }
?>
 
R

R

27/01/2006 14:36:00
Quote Anchor link
uhmmm nu heb ik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?

if ($_SESSION['loggedin'] == 'ja'){

// scriptt

if (isset($_GET['addvriend'])) {
$wsql = "SELECT FROM voegvriendtoe where username = '".$username."'  AND vriendnaam = '".$row[username]."'";
$wresult = mysql_query($wsql);

if (!mysql_num_rows($wresult)) {
        
$addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row[username]."')";

    mysql_query ($addsql) or trigger_error (mysql_error());

echo "$row[username] is toegevoegd aan je vriendenlijst";
      
}



}


echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";

}


?>


maar hij doet het niet ??? hij voegt wel gewooon die persoon toe,, en ook als ik het 10 keer doe en wanneer je op de link gelikt hebt geeft hij deze melding

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\appserv\www\hs\modules\profielen\voeg_vriend_toe.php on line 24
rZa is toegevoegd aan je vriendenlijst

voeg deze persoon toe als vriend
 
Erik Rijk

Erik Rijk

27/01/2006 14:49:00
Quote Anchor link
je kan toch een stukje code plaatsen die controleerd of de gebruiker al als vriend in de db staat?

dan komt ie ook maar 1x in de db
 
Lissy Pixel

Lissy Pixel

27/01/2006 15:43:00
Quote Anchor link
Als het goed is gedaan door me ziet dit er dan zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
//Dit is de controle:
if (isset($_GET['addvriend']))
{

    $sql = "SELECT FROM voegvriendtoe where username = '$username'  AND vriendnaam = ' $row[username]' ;";
    if (!mysql_num_rows(mysql_query($sql)))
        {

        if ($_SESSION['loggedin'] == 'ja')
            {

            if (isset ($_GET['addvriend']))
            {

            $addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row['username']."')";
            mysql_query ($addsql) or trigger_error (mysql_error());

            echo "$row[username] is toegevoegd aan je vriendenlijst";
            }


            echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
            }

elseif ($_SESSION['loggedin'] != 'ja')
    {

        // fout je kan niet toeveogen
    }
        }    
}

?>
 
R

R

27/01/2006 16:02:00
Quote Anchor link
lissy:
Als het goed is gedaan door me ziet dit er dan zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
//Dit is de controle:
if (isset($_GET['addvriend']))
{

    $sql = "SELECT FROM voegvriendtoe where username = '$username'  AND vriendnaam = ' $row[username]' ;";
    if (!mysql_num_rows(mysql_query($sql)))
        {

        if ($_SESSION['loggedin'] == 'ja')
            {

            if (isset ($_GET['addvriend']))
            {

            $addsql = "INSERT INTO voegvriendtoe(vriendid, username, vriendnaam) VALUES ('','".$username."', '".$row['username']."')";
            mysql_query ($addsql) or trigger_error (mysql_error());

            echo "$row[username] is toegevoegd aan je vriendenlijst";
            }


            echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";
            }

elseif ($_SESSION['loggedin'] != 'ja')
    {

        // fout je kan niet toeveogen
    }
        }    
}

?>



nu laat hij helemaal niks zien geen foutmelding en ook geen voeg toe link........
 
Erik Rijk

Erik Rijk

27/01/2006 16:14:00
Quote Anchor link
staat de persoon die je toe wilt voegen al als vriend?
 
R

R

27/01/2006 16:18:00
Quote Anchor link
Erik:
staat de persoon die je toe wilt voegen al als vriend?


nope heb de tabel geleegd en hij doet niks meer voegt niks toe.....
 
Robert Deiman

Robert Deiman

27/01/2006 16:27:00
Quote Anchor link
Ik heb zelf ook ooit zoiets gemaakt. Het ging er bij mij toen om dat je alleen interne berichtjes naar elkaar kon sturen als je vrienden was. Hij controleerde ook op aanvragen, als je nog geen vrienden was gaf die aan of je vrienden wou worden. Als je had aangevraagd maar de ander had nog niet geaccepteerd, gaf die dat aan en als de ander had geaccepteerd kreeg je een tekstarea voor het zenden van berichten.
De kunst is nu het hieruit halen van delen die je kan gebruiken. En het op de juiste manier aanpassen.

<html>
<head>
<title>Mijn berichten</title>
<h2>Laat een bericht achter</h2></head>
<body>

<table>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
// Verbinden.php wordt geincluded om verbinding te maken met de database.
    include("verbinden.php");

$id = $_GET['id'];
$id_sql = "SELECT * FROM gebruiker WHERE id=" . $id;
$id_result = mysql_query($id_sql);
$id_ontvanger = mysql_fetch_array($id_result);

$my_id_sql = "SELECT * FROM gebruiker WHERE username='" . $username ."'";;
$my_id_result = mysql_query($my_id_sql);
$my_id = mysql_fetch_array($my_id_result);
    $mijnid=$my_id['id'];

if (isset($_GET['aanvraag']) && $_GET['aanvraag'] == "ja"){
    $aanvraag_SQL_insert="INSERT INTO aanvragen (userid,aanvrager) VALUES ('$id','$mijnid')";
            $bool=mysql_query($aanvraag_SQL_insert);
            if($bool==1) echo ("<center>Uw aanvraag wordt verwerkt</center><br>");
            if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het schrijven naar de database. Probeer het later nog eens. <br>Wanneer het probleem zich voor blijft doen, neem dan contact op met de beheerder.</font>");
    }

$vriend_sql = "SELECT * FROM vrienden WHERE userid=" . $id . " AND vriend=" . $mijnid . " OR userid=" . $mijnid . " AND vriend=" . $id;
$vriend_result = mysql_query($vriend_sql);
if (@mysql_num_rows($vriend_result) >0){
    
    if (isset($_POST['bericht']) && strlen($_POST['bericht']) >= 8){
        $bericht=htmlspecialchars($_POST['bericht']);
          $bericht=nl2br($bericht);
        $berichten_SQL_insert="INSERT INTO berichten (userid,bericht,afzender) VALUES ('$id','$bericht','$mijnid')";
            $bool=mysql_query($berichten_SQL_insert);
            if($bool==1) echo ("<center>Het bericht is naar de gebruiker verzonden</center>");
            if($bool<>1) echo ("<center><font color=red>Er is een fout opgetreden bij het schrijven naar de database. Probeer het later nog eens. <br>Wanneer het probleem zich voor blijft doen, neem dan contact op met de beheerder.</font>");
            }

            
    else {    
    ?>

<tr>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo ("<b>$my_id[username]</b>");?>
</td>
</tr>
<tr>
<td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if (isset($_POST['bericht']) && strlen($_POST['bericht']) < 8) echo ("<font color=red>Een bericht moet meer dan 8 tekens bevatten</font><br>") ?>

<form name="bericht" action="index2.php?locatie=profiel&id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $id ?>
" method="post">
<textarea name="bericht" cols="40" rows="5"></textarea>
</td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="Verstuur">
</form>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
</table>
</body>
</html>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
        }
    }

else{
    echo ("<center><font color=gray>U kunt pas een bericht voor deze persoon achterlaten, wanneer hij/ zij u heeft geacepteerd als vriend.<br>");
    }

$aanvraag_sql = "SELECT * FROM aanvragen WHERE userid=" . $id . " AND aanvrager=" . $mijnid . " OR userid=" . $mijnid . " AND aanvrager=" . $id;
$aanvraag_result = mysql_query($aanvraag_sql);
if (@mysql_num_rows($aanvraag_result) <> 0){
    echo "Deze persoon heeft uw aanvraag nog niet geaccepteerd of geweigerd. Als uw aanvraag wordt geweigerd, kan u opnieuw aanvraag doen.";
    }

else if(@mysql_num_rows($vriend_result) == 0){
    ?>

<a href="index2.php?locatie=profiel&id=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $id ?>
&aanvraag=ja"><br>Aanvraag plaatsen</a></font></center>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    
    }
    ?>
 
Willem vp

Willem vp

27/01/2006 17:16:00
Quote Anchor link
Ik ga zelf toch mee met Arjan: gooi het veld vriendid weg en zet een samengestelde primary key op username en vriendnaam. Scheelt je een heleboel PHP-code en maakt de database een flink stuk sneller.
 
R

R

30/01/2006 14:58:00
Quote Anchor link
ik heb arjans wijze raad maar eens opgevolgt... (gedeelde primary key) en nu werkt het wel maar toch is er iets wat weer vervelend is

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?


if ($_SESSION['loggedin'] == 'ja'){

// scriptt


if (isset ($_GET['addvriend'])) {
    $addsql = "INSERT INTO voegvriendtoe(username, vriendnaam) VALUES ('".$userid."', '".$row[username]."')";

    mysql_query ($addsql) or trigger_error (mysql_error());

echo "$row[username] is toegevoegd aan je vriendenlijst";

  }



echo "<a href=?page=profielen&func=overzicht&show=3&addvriend=$row[username]>voeg deze persoon toe als vriend</a>";


}


elseif ($_SESSION['loggedin'] != 'ja'){

// fout je kan niet toeveogen

}


?>


als ik iemand toevoeg die al een vriend is dan geeft hij de volgende error aan

Notice: Duplicate entry '21-heks' for key 1 in c:\appserv\www\hs\modules\profielen\voeg_vriend_toe.php on line 25

dat komt dat hij er al in staat,, hoe kan ik het zo maken dat hij gewoon aangeeft,,, $row[username] is al jou vriend ofzoiets ?
Gewijzigd op 30/01/2006 14:59:00 door R
 
Erik Rijk

Erik Rijk

30/01/2006 15:11:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
$sql
= mysql_query("SELECT * FROM voegvriendtoe WHERE username = '".$_SESSION['username']."' AND vriendnaam = '".$_POST['vriendnaam']."'");
$res = mysql_num_rows($sql);

if($res >= 1){
     echo 'Bestaat al als vriend';
}

if(isset($error)){
     echo $error;
}

?>
 
Willem vp

Willem vp

30/01/2006 15:17:00
Quote Anchor link
Voor je gaat inserten eerst iets als:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
$res
= mysql_query("SELECT username, vriendnaam FROM voegvriendtoe WHERE username=$userid AND vriendnaam=$row[username])";
if (mysql_num_rows($res) > 1)
{

   # vriend is al toegevoegd
}
else
{
   # voeg vriend toe
}
?>
 
Willem vp

Willem vp

30/01/2006 15:29:00
Quote Anchor link
R:
$addsql = "INSERT INTO voegvriendtoe(username, vriendnaam) VALUES ('".$userid."', '".$row[username]."')";
Hier doe je iets was niet netjes is. Je gebruikt namelijk $row[username] buiten een string context, waardoor 'username' niet wordt gezien als een string, maar als een ongedefinieerde constante. Dat kun je op twee manieren oplossen:

1) Haal $row[username] weer binnen de quotes

2) Maak er $row['username'] van
Gewijzigd op 30/01/2006 15:31:00 door Willem vp
 
R

R

30/01/2006 16:19:00
Quote Anchor link
thanks mensen hij werkt!!!!


(oh ja heb er ondertussen ook $row['username'] TY!!)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.