2016-08-01 4 views
-2

Ich will bekommen Eingabewert von anderer Seite bekommen und warum funktioniert es nicht? HierKann nicht Eingabewert von anderer Seite

ist der Code:

Seite 1:

<h1 align="center"> 
    <form name="form" action="" method="get"> 
     <input type="text" name="wonorlose" id="wonorlose" value="50"> 
    </form> 
</h1> 

Auf Schaltfläche klicken:

<script> 
    function rollHead(){ 
     var die1 = document.getElementById("die1"); 
     var status = document.getElementById("status"); 
     var d1 = Math.floor(Math.random() * 2) + 1; 
     if(d1 == 1) 
     { 
      die1.innerHTML = "You lose!"; 
      fliped.innerHTML = "Fliped Tail!"; 
      var getsession = new XMLHttpRequest(); 
      getsession.open('POST','getsession.php',true); 
      getsession.send(); 
      var ajax = new XMLHttpRequest(); 
      ajax.open('POST','lose.php',true); 
      ajax.send(); 
     } 
     else if (d1 == 2) 
     { 
      die1.innerHTML = "You won!"; 
      fliped.innerHTML = "Fliped Head!"; 
      var getsession = new XMLHttpRequest(); 
      getsession.open('POST','getsession.php',true); 
      getsession.send(); 
      var ajax = new XMLHttpRequest(); 
      ajax.open('POST','won.php',true); 
      ajax.send(); 
     } 
    } 
</script> 

Seite ajax.php:

<?php 
    session_start(); 
    include_once 'dbconnect.php'; 

    if(!isset($_SESSION['user'])) 
    { 
     header("Location: /manopuslapis/index.php"); 
    } 
    $res=mysql_query("SELECT * FROM users WHERE user_id=".$_SESSION['user']); 
    $userRow=mysql_fetch_array($res); 

    $_SESSION['wonorlose'] = $wonorlose; 
    echo $wonorlose; 
    mysql_query("UPDATE `users` SET credits=credits+'$wonorlose' WHERE user_id=".$_SESSION['user']); 
?> 

Seite getsession.php :

P.S Roll-System funktioniert und ich bekomme Nachricht gewonnen oder verlieren, aber nichts passiert in meiner Datenbank. Wenn ich Seite 2 $winorlose zu Nummer ändere, funktioniert es.

Es könnte etwas falsch mit den Sitzungen sein, denke ich.

+3

haben Sie die Sitzung gestartet? –

+0

Sie können Javascript und PHP nicht mischen. PHP wird vor dem Laden der Seite ausgeführt, Javascript läuft danach. Wenn Sie die Sitzung aktualisieren möchten, müssen Sie einen Ajax-Aufruf an eine PHP-Seite senden. – aynber

+0

'Geld = Geld + '$ wonorlose'' sollte mindestens' Geld = Geld + sein' "$ wonorlose." ' ', Was auch immer noch schlecht ist ... – eisbehr

Antwort

-1

Versuchen Sie, diese

session_start(); 
$_SESSION['wonorlose'] = $wonorlose; 
echo $wonorlose; 
mysql_query("UPDATE `users` SET money=money+'$wonorlose' WHERE user_id=".$_SESSION['user']); 
+0

Ich habe bereits Sitzung gestartet. Ich postete nicht den vollen Code von Seite 2 –

+0

echo this '" UPDATE Benutzer SET Geld = Geld + $ wonorlose WHERE user_id = ". $ _ SESSION ['Benutzer'] und welches Ergebnis? – paranoid

+0

wenn ich mysql_query ändere ("UPDATE' Benutzer 'SET Geld = Geld + '$ wonorlose' WHERE user_id =". $ _ SESSION ['user']); um Geld = Geld + 10 WHERE user_id =“$ _ SESSION [ 'user']); es funktioniert und fügt +10 Geld –

0

Sie keine Sitzung wie folgt erstellen:

<script> 
function rollHead(){ 
    ..... 
    <?php 
    $_SESSION['wonorlose'] = $_GET["wonorlose"]; 
    ?> 
...... 
} 

weil php zum Zeitpunkt der HTML-Analyse auf Browser ausgeführt wird. Technisch gesehen ist also keine Sitzung mit dem Namen "wonorlose" gespeichert.

In diesem Fall müssen Sie einen Ajax-Aufruf machen eine Sitzung und einen weiteren Anruf zu erstellen, es zu lesen.

+0

aktualisiertem Code nachschlagen –

+0

Sie haben einen ajax-Aufruf zum 2 um die Sitzung zu erstellen und als auf Ihrer Seite erhalten Sie es von $ _SESSION mit [ 'wonorlose'] = $ wonorlose; –

+0

ich habe dies und es funktioniert nicht, ich nenne es auf roolhead

Verwandte Themen