Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    90

    registrazione che funziona ma switch che non va

    Codice PHP:
    <?php
    require_once ("class_connect_db.php");

    class 
    Register {
        
        
        public function 
    personaggi($creatore$login$ETAPG$sesso$apppol$classe$forza$destrezza$vigore$intelligenza$spirito$presenza) {
            
            
    //
            
            
    $sql =  "SELECT creatore, apppol FROM personaggi where creatore ='".$creatore."' AND apppol ='".$apppol."'";
            
    $result mysql_query($sql);
            
            if(
    mysql_num_rows($result) > 0) { 
                
                echo (
    "Utente già esistente");
                
                }  
        
                else {
        

            
            
            
    $sql "INSERT INTO personaggi (creatore, login, ETAPG, sesso, apppol, classe, forza, destrezza, vigore, intelligenza, spirito, presenza) VALUES
            ('"
    .$creatore."', '".$login."', '".$ETAPG."','".$sesso."', '".$apppol."', '".$classe."','".$forza."','".$destrezza."','".$vigore."',
            '"
    .$intelligenza."','".$spirito."','".$presenza."')";
            
            
    $a mysql_query($sql);
            
            


            
    $row mysql_fetch_array($a);
            if(
    mysql_num_rows($a)>0) {
                switch(
    $row['classe'])
                {
            case 
    combattente:
             
    header("Location: sito/registrazione/Combattente.php");
            break;
             case 
    pilota:
            
    header("Location: sito/registrazione/Pilota.php");
              break;
               case 
    ricercatore:
             
    header("Location: sito/registrazione/Ricercatore.php");
            break;
              case 
    tecnico:
              
    header("Location: sito/registrazione/Tecnico.php");
              break;
              case 
    agente:
              
    header("Location: sito/registrazione/Agente.php");
              break;
              case 
    outlander:
              
    header("Location: sito/registrazione/Outlander.php");
              break;
              case 
    diplomatico:
              
    header("Location: sito/registrazione/Intrattenitore.php"); 
              break;
              case 
    manager:
              
    header("Location: sito/registrazione/Manager.php");
              default: 
              
    header("Location: sito/registrazione/Combattente.php");
        }
      }
        else {
            echo 
    "ciao";
        }

      
            
            
                }
        }

    }

    ?>
    Ciao a tutti, la prima parte registra tutto quanto è quindi viene creato tutto quello che deve essere creato all'interno della tabella, dopo di che bisognerebbe analizzare la classe e in base a quello mandarmi da una parte piuttosto che da un'altra, però non funziona come mai?
    In più ho visto che inserendo la sessione e quindi portandomi dietro anche questo parametro, proprio non funziona nulla compresa la registrazione, quindi inserendo all'inizio della pagina questo controllo

    Codice PHP:
    session_start();
    regenerate_session_id(FALSE);
    // Controllo accesso
    if (!isset($_SESSION['nick'] ) and ($_SESSION['password'] ) )
    {
    header('location: sito/index2.php');
    exit;
    }
    else
    {
    echo 
    "Benvenuto" .$_SESSION['nick'];

    Ora, mi sembra un po' strano perché io ho bisogno di portarmi la sessione un po' dappertutto essendo una chat e quindi devo capire che l'utente è sempre collegato per poter far qualcosa qualcuno ha qualche idea?

    Ringrazio fin d'ora tutti quelli che vorranno darmi una mano
    Seo Master alle prime keywords!

  2. #2
    Non so se ci sono altri errori, ma come minimo devi mettere virgolette o apici intorno ai valori con cui testi lo switch:
    codice:
    case combattente: // SBAGLIATO
    case 'combattente': // corretto

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    90
    Anche ammettendo l'apice o la semplice doppia virgoletta purtroppo dà lo stesso errore, quindi mi rimanda direttamente all'else, tutto ciò se tolgo il controllo della sessione, altrimenti non funziona proprio
    Seo Master alle prime keywords!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    90
    se inserissi il controllo di sessione dopo la registrazione non potrebbe andare bene lo stesso così riesco a fare anche una Select?
    Seo Master alle prime keywords!

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    90
    Bene, inserendo il controllo della sessione in un foglio esterno e poi includendolo la registrazione funziona, ma dopo si trasforma e cioè, invece di mantenermi l'account mi dice buongiorno è il nome del personaggio che è stato registrato, secondo voi come mai?
    Seo Master alle prime keywords!

  6. #6
    com'era all'inizio funzionava anche senza apici, l'unico difetto è che era un metodo di scrittura del codice deprecato.

    Mi pare di aver capito che il controllo che fai va a vedere semplicemente se il record è stato inserito quindi mysql_num_rows non va bene come puoi vedere qui

    http://php.net/manual/en/function.mysql-num-rows.php

    Retrieves the number of rows from a result set. This command is only valid for statements like SELECT or SHOW that return an actual result set. To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or DELETE query, use mysql_affected_rows().

    quindi intanto cambia la funzione con mysql_affected_rows
    Ubuntu rulez!! :P

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    90
    Ora ho sistemato in questo modo, ma ancora non mi fa quello che deve fare nonostante la sessione per mia fortuna adesso ci sia e quindi riesce a vederla

    Codice PHP:
    <?php
    include("ctrlog.php");
    $query="SELECT classe FROM personaggi WHERE creatore=".$_SESSION['nick']." AND pws=".$_SESSION['pws']."";
    $result mysql_query($query$connect);
    $row mysql_fetch_array($result);

            if (
    $row['classe']>0) {
    /*A QUESTO PUNTO L'UTENTE è LOGGATO E VALIDO NE ANALIZZO LA CLASSE*/
        
    switch($row['classe'])
        {
            case 
    'combattente':
             
    header("Location: [url]http://frozen-world.org/registrazione/Combattente.php[/url]");
            break;
             case 
    'pilota':
            
    header("Location: [url]http://frozen-world.org/registrazione/Pilota.php[/url]");
              break;
               case 
    'ricercatore':
             
    header("Location: [url]http://frozen-world.org/registrazione/Ricercatore.php[/url]");
            break;
              case 
    'tecnico':
              
    header("Location: [url]http://frozen-world.org/registrazione/Tecnico.php[/url]");
              break;
              case 
    'agente':
              
    header("Location: [url]http://frozen-world.org/registrazione/Agente.php[/url]");
              break;
              case 
    'outlander':
              
    header("Location: [url]http://frozen-world.org/registrazione/Outlander.php[/url]");
              break;
              case 
    'diplomatico':
              
    header("Location: [url]http://frozen-world.org/registrazione/Intrattenitore.php[/url]"); 
              break;
              case 
    'manager':
              
    header("Location: [url]http://frozen-world.org/registrazione/Manager.php[/url]");
              default: 
              
    header("Location: [url]http://frozen-world.org/registrazione/Combattente.php[/url]");
        }
      }
        else {
            echo 
    "ciao";
        }
    ?>
    Seo Master alle prime keywords!

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.