2010-04-25 4 views
0

je suis un peu nouveau pour php et bien que j'ai réussi à transmettre des valeurs de variables de session avant que ce morceau de code est quittais me laisse perplexede session ne sont pas passés entre les pages

<form action="team_reg2.php" method="post" name="form1" class="cent" id="form1"> 
<p><strong>Team Registration</strong></p> 
<?php 
    $con=mysql_connect("localhost","root",""); 
    mysql_select_db("databolism",$con); 
    $result=mysql_query("select * from events where id=$_POST[event]",$con); 
    $row=mysql_fetch_assoc($result); 
    $num=$row['max_team']; 
    $_SESSION['max_team']=$num; 
    $_SESSION['event_id']=$_POST['event']; 
    for($i=1;$i<=$num;$i++) 
    { 
     print "<p><span id=\"sprytextfield$i\"\n>"; 
     print "<label>member$i"; 
     print "<input type=\"text\" name=\"mem$i\" id=\"mem$i\" />\n"; 
     print "</label>\n"; 
     print "<span class=\"textfieldInvalidFormatMsg\">Please enter only id</span></span></p>\n"; 
    } 
?> 

maintenant cela passera via post à team_reg2.php

<?php 
    $con=mysql_connect("localhost","root",""); 
    if(!$con) 
     die("could not connect to db"); 
    $db=mysql_select_db("databolism",$con); 
    $num=6; 
    $event=14; 
    $result=mysql_query("select * from events where id=$event",$con) or die(mysql_error()); 
    $row=mysql_fetch_assoc($result); 
    $query='fantasia1_'.$row['name']; 
    $query2="select max(t_id) from $query"; 
    $que=mysql_query($query2,$con); 
    $result=mysql_fetch_array($que) or die(mysql_error()); 
    $chk3=$result['max(t_id)']; 
    if($chk3==NULL) 
    { 
     for($i=1;$i<=$num;$i++) 
     { 
      $name='mem'.$i; 
      if($_POST["$name"]!="") 
      { 
       $query2="insert into $query values(1,'$_POST[$name]')"; 
       $que=mysql_query($query2,$con); 
      } 
     } 

     echo " please note your team id is 1 <br>"; 
     echo " your team members are : <br>"; 
     for($i=1;$i<=$num;$i++) 
     { 
      $name='mem'.$i; 
      echo "$_POST[$name]<br>"; 
     } 

    } 
    else 
    { 
     $str="select * from $query where ("; 
     for($i=1;$i<=$num;$i++) 
     { 
      $name='mem'.$i; 
      $text="p_id='$_POST[$name]'"; 
      if($i==1) 
       $str=$str.$text; 
      else 
       $str=$str.' or '.$text; 
     } 
     $str=$str.')'; 
     $query2=$str; 
     echo "$str<br>"; 
     // echo "$query2</br>"; 
     $que=mysql_query($query2,$con) or die(mysql_error()); 
     $num=mysql_num_rows($que); 
     if($num!=0) 
     { 
      while($result=mysql_fetch_array($que)) 
      { 
       echo "$result[p_id] is already registered in team $result[t_id]<br>";  
      } 
      //include("reg_team.html"); 
     } 
     else if($num==0) 
     { 
      //echo $query; 
      $query2="select max(t_id) from $query"; 
      $que=mysql_query($query2,$con) or die(mysql_error()); 
      //echo "$que<br>"; 
      $result=mysql_fetch_array($que); 
      $max=$result['max(t_id)']; 
      $max++; 
      $num=$_SESSION['max_team']; 
      for($i=1;$i<=$num;$i++) 
      { 
       $name='mem'.$i; 
       if($_POST[$name]!="") 
       { 
        $query2="insert into $query values($max,'$_POST[$name]')"; 
        $que=mysql_query($query2,$con); 
       } 
      } 
      echo " please note your team id is $max <br>"; 
      echo " your team members are : <br>"; 
      for($i=1;$i<=$num;$i++) 
      { 
       $name='mem'.$i; 
       echo "$_POST[$name]<br>"; 
      } 
     } 
    } 
?> 

J'ai terminé session_start(); au début de la page elle-même. Le problème est que l'écho des variables $ _SESSION dans le second fichier n'imprime rien.

quelqu'un s'il vous plaît expliquez-moi ce qui se passe. merci

+1

avez-vous utilisé le 'session_start()' sur la deuxième page également? – Sarfraz

+0

Méfiez-vous de l'injection SQL, d'ailleurs. J'ai repéré un dans ce code (et il y en a probablement plus). – Franz

Répondre

3

Vous avez également besoin de session_start() dans le deuxième fichier.

+0

J'ai utilisé session_start dans le deuxième fichier aussi –

+0

pouvez-vous faire écho à la valeur de $ num. Je pense que votre autre si la condition peut être fausse. –

Questions connexes