Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: messaggi tra utenti

  1. #1

    messaggi tra utenti

    Ciao a tutti, sto creando uno script dove gli utenti possono mandarsi messaggi tra loro nel sito, tipo quando mandi qui un messaggio privato...
    io non riesco a capire dov'e l'errore, secondo me è una stupidagine ma non riesco a vederlo...
    quando eseguo i file me li legge ma dice che gli utenti non esistono e quindi sul db non salva il messaggio...
    il primo file è html:
    Codice PHP:
    <html>
    <
    head>
    <
    title>Messaggio</title>
    </
    head>
    <
    body>
    <
    center>Scrivi qui sotto il messaggio da inviare:</center>
    <
    form action="messaggio2.php" method="post">
    <
    center>
    Inserisci il nick dell'utente:
    <input type="text" name="nick" size="30">


    Messaggio:
    <input type="text" name ="messaggio" size="30">






    <input type="submit" value="Invia">
    <input type="reset" value="cancella">
    </form>
    </body>
    </html> 
    il secondo è il php:
    Codice PHP:
    <?
    $nick 
    $_POST['nick']; 
    $messaggio $_POST['messaggio']; 
    include(
    'db.php');
    $sql_user_check mysql_query("SELECT username FROM users WHERE username = '$nick'");
    $user_check mysql_num_rows($sql_user_check);
    if(
    $user_check 0)
    {
    echo
    "Il nome utente inserito non esiste in questo server";
    }
    if (
    $nick == $user)
    {
    $update_mex "UPDATE messaggi SET mex = '$messaggio''";
    $query_meessaggio mysql_query ($update_mex) or die ( "Non riesco ad eseguire la richiesta");
    echo
    "messaggio inviato";
    }
    ?>
    ah dimenticavo, vi faccio anche vedere la tabella del db:
    si chiama messaggi

    mex varchar(200) latin1_danish_ci
    user_man varchar(25) latin1_danish_ci
    user_ric int(4) auto_increment
    ora timestamp ON UPDATE CURRENT_TIMESTAMP No 0000-00-00 00:00:00
    poi piu avanti mettero anche le altre cose che sarebbero user_man quello che manda il mess
    user_ric è chi lo riceve
    e poi ora per fare vedere a che ora l'ha mandato...
    non riesco a trovare l'errore aiutooooooooooooooooooooooooooooooooo

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ma scusa un attimo, al di là che non fai nessuno straccio di controllo su niente (quando esegui una query è d'obbligo attaccarci un die mysql_error();...), tu fai una cosa del genere:

    Prima chiedi di selezionare tutti gli user con nick pari a $nick, e poi se ne trovi almeno 1 (spero per te che ne trovi 1 o nessuno, non più di uno con lo stesso nickname) dici che di utenti con quel nickname [n]non[/b] ne esistono!!!

    Mettendo in ordine ste prime cose:
    codice:
    $sql_user_check = mysql_query("SELECT username FROM users WHERE username = '$nick'");
    $user_check = mysql_num_rows($sql_user_check) or die (mysql_error());
    if($user_check == 0) {
      echo"Il nome utente inserito non esiste in questo server";
    }
    Poi che è $nick == $user e l'altra query che dovrebbe fare? L'update di una tabella "messaggi"... ma ha una sola riga? Non manca un where con qualche condizione di dove andare a fare l'update? e poi serve fare l'update? io semplicemente inserirei una nuova riga con il nuovo messaggio, ne prenderei l'id e l'andrei a schiaffare in un'ipotetica tabella user_user con id_sender, id_recipient, id_messaggio
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    ciao grazie per la risposta, l'errore di > al posto di == lo avevo gia trovato ieri sera, ma non ho potuto postare xke non ho avuto tempo, sono appena tornato adesso da ieri sera...
    cmq se hai letto bene il mio messaggio di prima ho parlato della tabella, e ha le stesse cose che dici tu, in piu ha il time stamp...
    ieri ho messo apposto quel > ma non è cambiato nulla, be si, mi trova l'utente ma non fa l'update, io penso che il select sql non ha errori come dici tu è stato fatto + che bene, a me frega l'update...
    non so come fare...
    aiutatemi pls

  4. #4
    scusate ma in questi giorni sono cotto, non dovevo fare update, ma insert into...
    solo che neache cosi va, non s o il xke ma se mette un nick di un utente esistente non manda nietne, ma se scrivo un nick che non esiste mi salva il mes in database...
    ecco il codice:
    Codice PHP:
    <?
    $nick 
    $_POST['nick']; 
    $messaggio $_POST['messaggio']; 
    include(
    'db.php');
    $sql_user_check mysql_query("SELECT username FROM users WHERE username = '$nick'");
    $user_check mysql_num_rows($sql_user_check);
    if(
    $user_check == 0)
    {
    echo
    "Il nome utente inserito non esiste in questo server";
    }
    if (
    $nick ==  $user_check)
    {
    $sql mysql_query("INSERT INTO messaggi (mex) VALUES('$messaggio')") or die (mysql_error());
    echo
    "messaggio inviato";
    }
    ?>
    help
    aitatemi pls

  5. #5
    ora ho cambiato il db cosi:
    id_sender varchar(11) latin1_swedish_ci No
    id_recipient varchar(11) latin1_swedish_ci No
    id_messaggio int(10) No auto_increment
    mex varchar(200) latin1_swedish_ci No
    ora int(10) UNSIGNED No 0
    e il php cosi:
    Codice PHP:
    <?
    include('checkuser.php');
    $nick $_POST['nick']; 
    $messaggio $_POST['messaggio']; 
    $ora time();
    include(
    'db.php');

    $sql_user_check mysql_query("SELECT username FROM users WHERE username = '$nick'");
    $user_check mysql_num_rows($sql_user_check);
    if(
    $user_check == 0)
    {
    echo
    "Il nome utente inserito non esiste in questo server";
    }
    if (
    $nick ==  $user_check)
    {
    //$ username la prendo da checkuser.php che controlla chi sono
    $sql_messaggio mysql_query("insert into messaggi (ora, id_recipient, mex, id_sender) values('$ora', '$nick', '$messaggio', $username");
    echo
    "messaggio inviato";
    }
    ?>
    ma non funziona lo stesso

  6. #6
    Codice PHP:
    if ($nick ==  $user_check) ... 
    $nick è una stringa, $user_check è un numero.

    Codice PHP:
    ...
    $sql_user_check mysql_query("SELECT username FROM users WHERE username = '$nick'");
    $row mysql_fetch_array($sql_user_check); // Ipotizzando che ci sia solo 1 riga
    $user_check mysql_num_rows($sql_user_check);
    if(
    $user_check == 0)
    {
    echo
    "Il nome utente inserito non esiste in questo server";
    }
    if (
    $nick ==  $row["username"]) // anche se è scontato perchè la condizione WHERE della query lo impone
    {
    //$ username la prendo da checkuser.php che controlla chi sono
    $sql_messaggio mysql_query("insert into messaggi (ora, id_recipient, mex, id_sender) values('$ora', '$nick', '$messaggio', '$username'");
    echo
    "messaggio inviato";
    }
    ... 
    Intendo però la variabile $username come il NOME e non l'ID dell'utente.

  7. #7
    ciao, grazie per la risposta, solo che non hai capito bene lo script, allora, $user_check non è un numero, ma il nick del destinatario, quindi e con $user_check che devo confrontare $nick per vedere se esiste, poi $username e il nick di che manda il messaggio, come hai fatto tu non has senso
    forse mi ero spiegato male...
    non riesco proprio a risolvere, mi date una mano?

  8. #8
    Codice PHP:
    $user_check mysql_num_rows($sql_user_check); 
    $user_check è di sicuro un numero perché mysql_num_rows() ritorna un int.

  9. #9
    si vede solo se esiste almeno una variabile...
    ma cmq quella parte dello script va
    ma non friescco a capire xke se metto un nome utente registrato, non fa niente, non fa l'update..
    mi riesci a dare una mano gra zie

  10. #10
    aiutoooooo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.