簡體   English   中英

PHP&MYSQL:回聲不起作用

[英]PHP & MYSQL: Echo not working

我曾經將所有數據存儲在000webhost中,今天我決定移至托管器。 所以..移動后,我用新的替換了舊的mysql_connect信息。 好吧,這樣做之后,我進行了測試,除了一些回聲功能,其他所有東西都運行良好。

檢查文件(連接到服務器並進行登錄):

    <?php

    $servidorr = "mysql.XXXX.co.uk";
    $bdd = "XXXXXXXX";
    $usuarioo = "XXXXX";
    $senhaa = "XXXXXXX";


    if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {
        header("Location: geton"); exit;
    }


    mysql_connect($servidorr, $usuarioo, $senhaa) or trigger_error(mysql_error());

    mysql_select_db($bdd) or trigger_error(mysql_error());

    $usuario = mysql_real_escape_string($_POST['usuario']);
    $senha = mysql_real_escape_string($_POST['senha']);
    $lang = mysql_real_escape_string($_POST['lang']);


    $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";
    $updatelang = "UPDATE usuarios SET lang='$lang' WHERE usuario='$usuario'";
    $query = mysql_query($sql);
    if (mysql_num_rows($query) != 1) {

        echo "<script>alert('Oops! Looks like there is something wrong with your login! *perhaps a typo or you did not fill out the fields*'); location.href='geton'</script>"; exit;
    } else {

        $resultado = mysql_fetch_assoc($query);
      mysql_query($updatelang);


        if (!isset($_SESSION)) session_start();

        $_SESSION['UsuarioID'] = $resultado['id'];
        $_SESSION['UsuarioNome'] = $resultado['nome'];
      $_SESSION['usuario'] = $resultado['usuario'];
        $_SESSION['UsuarioNivel'] = $resultado['nivel'];
      $_SESSION['lang'] = $resultado['lang'];

        header("Location: http://mapmaking.zz.mu/pages/home"); exit;
    }

    ?>


Home file (these echos are just for testing and this is not the original file, the original one has the same php stuff, except the echo functions, those are in random lines):

<?php


if (!isset($_SESSION)) session_start();

  $tlang = $_SESSION['UsuarioLang'];
  $aclevel = $_SESSION['UsuarioNivel'];
  $nick = $_SESSION['UsuarioNome'];

$neededal = 1;
if (!isset($_SESSION['UsuarioID']) OR ($_SESSION['UsuarioNivel'] < $neededal)) {
    session_destroy();
    header("Location: http://inside.mapmaking.uk.to/geton"); exit;


}

session_start();

echo $tlang;
echo $aclevel;
echo $nick;
echo "$level$tlang$tlang";


?>

[這基本上開始了會話,並檢查所連接的用戶訪問級別是否為1]

回聲$ tlang不起作用! :(不知何故,我不知道為什么; _;

希望你們幫助我,謝謝!

$ _SESSION ['lang']!= $ _SESSION ['UsuarioLang']

您為第一個分配了一個值,但是從第二個分配了一個值。

$_SESSION['lang'] = $resultado['lang'];

$tlang = $_SESSION['UsuarioLang'];

更改此行:

$_SESSION['lang'] = $resultado['lang'];

到以下內容:

$_SESSION['UsuarioLang'] = $resultado['lang'];

您還應該在沒有進行isset檢查的情況下調用session_start() 另外,您應該考慮使用&&代替AND|| 而不是OR ,因為PHP具有奇怪的運算符優先級規則 (賦值=ANDOR具有更高的優先級)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM