aiuto php

  • Creatore Discussione Creatore Discussione ciberp
  • Data di inizio Data di inizio

ciberp

Nuovo Utente
3 Lug 2013
22
0
0
Salve a tutti spero che qualcuno mi aiuti, ho creato delle pagine dove una persona si registra fa il login cliccando sul pulsante member mi da gli utenti registrati e cliccando su uno di loro compare il profilo con il pulsante di invio richiesta di amicizia, il problema è questo se invio la richiesta di amicizia l'id dell'utente che ha inviato la richiesta nella tabella non compare ma quello della persona a cui è stata inviata la richiesta si, questo è il codice della pagina:
PHP:
<?php
if(isset($_GET['user']) && !empty($_GET['user'])){
$user=$_GET['user'];
} else {
$user=$_SESSION['user_id'];
}
$my_id=$_SESSION['user_id'];
$username=getuser($user, 'username');

?>
<h3><?php echo $username; ?></h3>
<?php
if($user != $my_id){
$check_frmd_query=mysql_query("SELECT id FROM frnds WHERE (user_one='$my_id' AND user_two='$user' OR (user_one='$user' AND user_two='$my_id'))");
if(mysql_num_rows($check_frmd_query) == 1){
echo "<a href='#' class='box'>Already Freand</a> | <a href='#' class='box'>Onfriend $username</a>";
} else {
$from_query=mysql_query("SELECT id FROM frnd_req WHERE from='$my_id' AND to='$user'");
$to_query=mysql_query("SELECT id FROM frnd_req WHERE from='$user' AND to='$my_id'");
if(mysql_num_rows($from_query) == 1){
echo "<a href='#' class='box'>Ignore</a> | <a href='#' class='box'>Accett</a>";
} else if (mysql_num_rows($to_query) == 1){
echo "<a href='#' class='box'>Cancel Request</a>";
} else {
echo "<a href='actions.php?action=send&user=$user' class='box'>Send Friend Request</a>";
}
}
}

?>
nella pagina mi da questo errore:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\profile.php on line 36

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\profile.php on line 38

ovvero a queste righe:
PHP:
$from_query=mysql_query("SELECT id FROM frnd_req WHERE from='$my_id' AND to='$user'");
$to_query=mysql_query("SELECT id FROM frnd_req WHERE from='$user' AND to='$my_id'");
if(mysql_num_rows($from_query) == 1){
echo "<a href='#' class='box'>Ignore</a> | <a href='#' class='box'>Accett</a>";
} else if (mysql_num_rows($to_query) == 1){
dove sbaglio?, non riesco proprio a capire, spero di aver scritto tutto giusto e di essermi spiegato bene, vi prego aiutatemi, ciao a tutti
 
Ultima modifica di un moderatore:
Hai provato a controllare se le query sono giuste?
hai controllato che i dati che ti arrivino sono giusto?
di solito fa così quando la ricerca restituisce zero
 
Hai provato a controllare se le query sono giuste?
hai controllato che i dati che ti arrivino sono giusto?
di solito fa così quando la ricerca restituisce zero

ciao grazie per la risposta, si ho controllato tutto la query è giusta i dati sono giusti, il problema è che non passa l'id della persona che invia la richiesta passa solo l'id della persona che riceve la richiesta, non capisco il perchè, puoi aiutarmi? non so piu che pesci prendere, ti ringrazio, ciao
 
if(isset($_GET['user']) && !empty($_GET['user']))
Sicuramente sbaglio ma questo cosa vorrebbe dire? hai messo 2 controlli per vedere se la variabile è vuota?

Poi non vedo nessun session_start in cima alla pagina, quindi a sua volta $_SESSION è nullo (almeno credo).

io preverei cosi
PHP:
if ($_GET['user'] != "") {
$user=$_GET['user'];
} else {
$user=$_SESSION['user_id']; //se non apri la sessione ad inizio pagina questa variabile è nulla 
}

Per le sessioni leggiti qui https://www.mrw.it/php/gestione-sessioni-php_6979_3.html
Inoltre prova a mettere degli echo per vedere dove sbagli.

ed inoltre questa stringa cosa farebbe?

$username=getuser($user, 'username');

Non conosco questo comando
 
Sicuramente sbaglio ma questo cosa vorrebbe dire? hai messo 2 controlli per vedere se la variabile è vuota?

Poi non vedo nessun session_start in cima alla pagina, quindi a sua volta $_SESSION è nullo (almeno credo).

io preverei cosi
PHP:
if ($_GET['user'] != "") {
$user=$_GET['user'];
} else {
$user=$_SESSION['user_id']; //se non apri la sessione ad inizio pagina questa variabile è nulla 
}

Per le sessioni leggiti qui https://www.mrw.it/php/gestione-sessioni-php_6979_3.html
Inoltre prova a mettere degli echo per vedere dove sbagli.

ed inoltre questa stringa cosa farebbe?

$username=getuser($user, 'username');

Non conosco questo comando

ciao il comando con getuser dovrebbe servire per riconoscere quei campi, ho provato a fare come mi hai detto ma nulla e se metto session_start() non succede niente, gli errori me li da sempre a quelle righe:

$from_query=mysql_query("SELECT id FROM frnd_req WHERE from='$my_id' AND to='$user'");
$to_query=mysql_query("SELECT id FROM frnd_req WHERE from='$user' AND to='$my_id'");
if(mysql_num_rows($from_query) == 1){
echo "<a href='#' class='box'>Ignore</a> | <a href='#' class='box'>Accett</a>";
} else if (mysql_num_rows($to_query) == 1){

le query le ho provate e vanno bene non capisco dove è il problema?, poi nella pagina che dovrebbe inserire ho questo:
include 'connett.php';
include 'function.php';


$action=$_GET['action'];

$user=$_GET['user'];

$my_id=$_SESSION['user_id'];

if($action == 'send'){

mysql_query("INSERT INTO frnd_req VALUES('','$my_id','$user')");
}
header('location: profile.php?user='.$user);

non mi sembra che ci siano errori o sbaglio?, ciao grazie
 
ciao
sei sicuro che getuser() sia una funzione nativa di php?
vai su http://www.php.net/manual/en/ e nella casella search scrivi getuser o getuser(), io non l'ho trovata.
se getuser non è una funzione nativa non vedo dove è la sua definizione o qualche inclusione che la richiami
 
ciao
dipende da come hai settato il livello degli errori o non hai postato il codice che la richiama.
ribadisco getuser() NON è una funzione nativa di php
 
ciao
dipende da come hai settato il livello degli errori o non hai postato il codice che la richiama.
ribadisco getuser() NON è una funzione nativa di php

ciao ti spiego,voglio fare una pagina dove una volta collegato avendo fatto il login clicco su una pagina dove mi da le persone registrate seleziono una persona mi compare il profilo e la possibilita di mandargli la richiesta di amicizia, come la faresti? mi puoi aiutare? ciao
 
Ma se ricavi i dati con get tutto funziona correttamente? oppure no?
Io andrei a tentativi inizia adesso solo con get e dopo piano piano metti anche la sessione almeno capisci dove sbagli
 
Ma se ricavi i dati con get tutto funziona correttamente? oppure no?
Io andrei a tentativi inizia adesso solo con get e dopo piano piano metti anche la sessione almeno capisci dove sbagli

ciao, credo di si perchè l'id della persona che si invia la richiesta la salva è di quello che invia la richiesta che non salva, comunque io ho questi file qui:
function.php

PHP:
session_start();

function loggedin(){
if(isset($_SESSION['user_id']) && !empty($_SESSION['user_id'])){
return true;
} else {
return false;
}

}
function getuser($id, $field){
$query=mysql_query("SELECT $field FROM users WHERE id='$id'");
$run = mysql_fetch_array($query);
return $run[$field];
}

profile.php

PHP:
<?php
include 'connett.php';
include 'functions.php';
include 'header.php';

?>
<div class="container">
<?php

if(isset($_GET['user']) && !empty($_GET['user'])){
$user=$_GET['user'];
} else {
$user=$_SESSION['user_id'];
}
$my_id=$_SESSION['user_id'];
$username=getuser($user, 'username');

?>
<h3><?php echo $username; ?></h3>
<?php
if($user != $my_id){
$check_frmd_query=mysql_query("SELECT id FROM frnds WHERE (user_one='$my_id' AND user_two='$user' OR (user_one='$user' AND user_two='$my_id'))");
if(mysql_num_rows($check_frmd_query) == 1){
echo "<a href='#' class='box'>Already Freand</a> | <a href='#' class='box'>Onfriend $username</a>";
} else {
echo $from_query=mysql_query("SELECT id FROM frnd_req WHERE from='$my_id' AND to='$user'");
$to_query=mysql_query("SELECT id FROM frnd_req WHERE from='$user' AND to='$my_id'");
if(mysql_num_rows($from_query) == 1){
echo "<a href='#' class='box'>Ignore</a> | <a href='#' class='box'>Accett</a>";
} else if (mysql_num_rows($to_query) == 1){
echo "<a href='#' class='box'>Cancel Request</a>";
} else {
echo "<a href='actions.php?action=send&user=$user' class='box'>Send Friend Request</a>";
}
}
}

?>
</div>

e actions.php

PHP:
<?php 

include 'connett.php';
include 'function.php';


$action=$_GET['action'];

$user=$_GET['user'];

$my_id=$_SESSION['user_id'];

if($action == 'send'){

mysql_query("INSERT INTO frnd_req VALUES('','$my_id','$user')");
}
header('location: profile.php?user='.$user);
?>

in qualcuno di questi c'è un problema ma non riesco a capire dove, puoi aiutarmi?, ciao
 
Sono sicuro al 90% che il problema è sul uso delle sessioni.
session_start() deve essere la prima riga di codice.
Invece qui
include 'connett.php';
include 'functions.php'; //è la seconda
include 'header.php';
e poi comunque questo casa sarebbe?
$user=$_SESSION['user_id'];
}
$my_id=$_SESSION['user_id'];
cioè imposti sia ad uno che ad l' altro lo stesso tipo di valore?

prova a fare un
PHP:
echo $_SESSION['user_id']
e posizionalo sotto $my_id=$_SESSION['user_id'];
Per vedere cosa restituisce.
 
Sono sicuro al 90% che il problema è sul uso delle sessioni.
session_start() deve essere la prima riga di codice.
Invece qui
e poi comunque questo casa sarebbe?

cioè imposti sia ad uno che ad l' altro lo stesso tipo di valore?

prova a fare un
PHP:
echo $_SESSION['user_id']
e posizionalo sotto $my_id=$_SESSION['user_id'];
Per vedere cosa restituisce.

ciao ho messo quella riga che mi hai detto e mi stampa l'id dell'utente connesso ovvero quello che nel database non mi salva, function l'ho messo per secondo perchè per primo c'è il file di connessione al database, cosa devo fare?, ti prego aiutami, ciao
 
PROVA QUESTO INSERT

PHP:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
 
PROVA QUESTO INSERT

PHP:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

ciao ho provato ma nulla, il problema principale è che non passa l'id della persona che invia la richiesta perchè l'id della persona a cui si manda la richiesta arriva, questa è la riga della pagina profilo.php dove dovrebbe inviare gli id:
PHP:
echo "<a href='actions.php?action=send&user=$user' class='box'>Send Friend Request</a>";

questa invece è la pagina dove arriva tutto e inserisce actions.php
PHP:
include 'connett.php';
include 'function.php';


$action=$_GET['action'];

$user=$_GET['user'];

$my_id=$_SESSION['user_id'];

if($action == 'send'){

mysql_query("INSERT INTO frnd_req VALUES('','$my_id','$user')");
}
header('location: profile.php?user='.$user);

a uno di questi non arriva l'id della persona che invia la richiesta, non riesco a capire qualè, riesci a capire dovè il problema?, ciao
 
Prova cosi
PHP:
echo "<a href='actions.php?action=send&user=".$user."' class='box'>Send Friend Request</a>";
 
Prova cosi
PHP:
echo "<a href='actions.php?action=send&user=".$user."' class='box'>Send Friend Request</a>";

ho provato ma è peggio, tu sai fare una pagina di richieste di amicizia se si puoi dirmi come si fa?, sono disposto a farlo da capo basta che mi riesce di farlo, ciao
 
ho provato ma è peggio, tu sai fare una pagina di richieste di amicizia se si puoi dirmi come si fa?, sono disposto a farlo da capo basta che mi riesce di farlo, ciao

problema risoltooooooooo, nella pagina dove c'èra la query di inserimento mancava session_start(), grazie per l'aiuto a buon rendere ok?, ciao p.s. devo fare qualcosa per chiudere la discussione?
 

Discussioni simili