Visualizzazione risultati 1 fino 2 di 2

Discussione: Echo "Username non inserito"

  1. #1
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Question Echo "Username non inserito"

    Ciao a tutti.
    Ho inserito questa chat nel mio sito, ma se uno non inserisce il nickname va lo stesso.
    Ci sono 3 pag:
    index.php
    Codice PHP:
    <?php
    session_start
    ();

    function
    createForm(){
    ?>
    <form action="<?php echo $_SERVER['../../chat/PHP_SELF']; ?>" method="post">
    <table align="center">
    <tr><td>Per chattare inserisci un nickname:</td>
    <td><input class="text" type="text" name="name" /></td></tr>
    <tr><td colspan="2" align="center">
    <input class="text" type="submit" name="submitBtn" value="Login" />
    </td></tr>
    </table>
    </form>
    <?php
    }

    if (isset(
    $_GET['u'])){
    unset(
    $_SESSION['nickname']);
    }

    // Process login info
    if (isset($_POST['submitBtn'])){
    $name = isset($_POST['name']) ? $_POST['name'] : "Anonimo";
    $_SESSION['nickname'] = $name;
    }

    $nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden";
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title>Chat</title>
    <link href="style/style.css" rel="stylesheet" type="text/css" />
    <script language="javascript" type="text/javascript">
    <!--
    var httpObject = null;
    var link = "";
    var timerID = 0;
    var nickName = "<?php echo $nickname; ?>";

    // Get the HTTP Object
    function getHTTPObject(){
    if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
    else if (window.XMLHttpRequest) return new XMLHttpRequest();
    else {
    alert("Your browser does not support AJAX.");
    return null;
    }
    }

    // Change the value of the outputText field
    function setOutput(){
    if(httpObject.readyState == 4){
    var response = httpObject.responseText;
    var objDiv = document.getElementById("result");
    objDiv.innerHTML += response;
    objDiv.scrollTop = objDiv.scrollHeight;
    var inpObj = document.getElementById("msg");
    inpObj.value = "";
    inpObj.focus();
    }
    }

    // Change the value of the outputText field
    function setAll(){
    if(httpObject.readyState == 4){
    var response = httpObject.responseText;
    var objDiv = document.getElementById("result");
    objDiv.innerHTML = response;
    objDiv.scrollTop = objDiv.scrollHeight;
    }
    }

    // Implement business logic
    function doWork(){
    httpObject = getHTTPObject();
    if (httpObject != null) {
    link = "message.php?nick="+nickName+"&msg="+document.getElementById('msg').value;
    httpObject.open("GET", link , true);
    httpObject.onreadystatechange = setOutput;
    httpObject.send(null);
    }
    }

    // Implement business logic
    function doReload(){
    httpObject = getHTTPObject();
    var randomnumber=Math.floor(Math.random()*10000);
    if (httpObject != null) {
    link = "message.php?all=1&rnd="+randomnumber;
    httpObject.open("GET", link , true);
    httpObject.onreadystatechange = setAll;
    httpObject.send(null);
    }
    }

    function UpdateTimer() {
    doReload();
    timerID = setTimeout("UpdateTimer()", 5000);
    }


    function keypressed(e){
    if(e.keyCode=='13'){
    doWork();
    }
    }
    //-->
    </script>
    </head>
    <body onLoad="UpdateTimer();">
    <div id="main">
    <div id="caption">Chat</div>
    <div id="icon">&nbsp;</div>
    <?php

    if (!isset($_SESSION['nickname']) ){
    createForm();
    } else {
    $name = isset($_POST['name']) ? $_POST['name'] : "Anonimo";
    $_SESSION['nickname'] = $name;
    ?>

    <div id="result">
    <?php
    $data
    = file("msg.html");
    foreach (
    $data as $line) {
    echo
    $line;
    }
    ?>
    </div>
    <div id="sender" onKeyUp="keypressed(event);">
    <input type="text" name="msg" size="45" id="msg" />
    <button onClick="doWork();">Invia</button>
    </div>
    <?php
    }

    ?>
    </div>
    </body>
    message.php
    Codice PHP:
    <?php
    if (isset($_GET['msg'])){
    if (
    file_exists('msg.html')) {
    $f = fopen('msg.html',"a+");
    } else {
    $f = fopen('msg.html',"w+");
    }
    $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
    $msg = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";
    $line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";
    fwrite($f,$line."\r\n");
    fclose($f);

    echo
    $line;

    } else if (isset(
    $_GET['all'])) {
    $flag = file('msg.html');
    $content = "";
    foreach (
    $flag as $value) {
    $content .= $value;
    }
    echo
    $content;

    }
    ?>
    msg.php che contiene i messaggi inviati.

    quello che vorrei fare è nella pagina index.php: rendere impossibile continuare se non si ha inserito il nickname.
    Ho provato con questo, ma niente...
    Codice HTML:
      <SCRIPT LANGUAGE="JavaScript"> 
    function ver() 
       { 
       for (i=0; i<document.forms[0].elements.length; ++i) 
          if(document.forms[0].elements[i].value == "") 
             { 
             alert("Inserire username e password!"); 
             document.forms[0].elements[i].focus(); 
             return false; 
             } 
       return true;  
       } 
    </SCRIPT>
    Grazie!

  2. #2
    Guest

    Predefinito

    Dopo una lettura veloce del codice ti consiglierei di mettere nel file msg.php una cosa del tipo :

    if(isset($_SESSION['username']){
    //tutto il contenuto di msg.php
    }else{
    //alert che ti avverte che non hai messo l'username
    }
    EDIT: No, ho sbagliato. Poi non stampi il contenuto della pagina msg.php, quindi non puoi fare così. Leggo meglio il codice e ti faccio sapere.
    Ultima modifica di enkantar : 24-04-2011 alle ore 11.55.49

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •