[RESOLU] Requêtes dysfonctionnelles

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Requêtes dysfonctionnelles

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 23:50

suffisant pour quoi ? que doit faire ce code ?

Re: Requêtes dysfonctionnelles

par clickern » 07 nov. 2021, 23:46

Étrange..
Soudain cela fonctionne. J’ai vidé la mémoire cache, sur différents navigateurs. J’ai essayé sur plusieurs système (smartphone, portable, et MacBook) et le lien accède aux sessions.
 <?php
  require('database.php');
  session_start();
  if(isset($_SESSION["email"]))
  {
    session_destroy();
  }
?>
Cela serait-ce suffisant..? Je l’avais testé et cela avait échoué.

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 23:05

qu'est-ce qui ne fonctionne pas dans ce code ? autrement dit, que se passe-t-il quand on va sur cette page ?

Re: Requêtes dysfonctionnelles

par clickern » 07 nov. 2021, 23:00

il n'y a pas de paramètre dans l'url.
Mais pourquoi ceci ne fonctionne pas :
 <?php
  require('database.php');
  session_start();
  if(isset($_SESSION["email"]))
  {
    session_destroy();
  }
  
  $ref=@$_GET['q'];		
    
    $email = $_POST['email'];
    $pass = md5($_POST['password']);
    $email = stripslashes($email);
    $email = addslashes($email);
    $pass = stripslashes($pass); 
    $pass = addslashes($pass);
    $email = mysqli_real_escape_string($con,$email);
    $pass = mysqli_real_escape_string($con,$pass);					
    $str = "SELECT * FROM users WHERE email='$email' and password='$pass'";
    $result = mysqli_query($con,$str);
    
    $_SESSION['logged']=$email;
    $row=mysqli_fetch_array($result);
    $_SESSION['name']=$row[1];
    $_SESSION['id']=$row[0];
    $_SESSION['email']=$row[2];
    $_SESSION['password']=$row[3];
    header('location: welcome.php?q=1'); 					
    
  
?>

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 22:44

sur https://alphavit.college/centrexam/welcome.php on a un lien accueil qui pointe vers
https://alphavit.college/centrexam/welcome.php?q=1

vu que le php commence par un test :
<?php if(@$_GET['q']==1)
{
$result = mysqli_query($con,"SELECT * FROM quiz ORDER BY date DESC") or die('Error');
echo '<div class="panel"><div class="table-responsive"><table class="table table-striped title1">
<tr><td><center><b>Nb.</b></center></td><td><center><b>Sujets</b></center></td><td><center><b>total des questions</b></center></td><td><center><b>Notes</center></b></td><td><center><b>Action</b></center></td></tr>';

il est normal que rien ne s'affiche quand il n'y a pas de paramètre dans l'url.

Re: Requêtes dysfonctionnelles

par clickern » 07 nov. 2021, 22:25

Le système de questions doit être accessible sur le lien suivant :

alphavit.college/php/centrexam/welcome.php

Mais, accessible en utilisant le chemin suivant sans loguer via le système que vous avez utilisé :

https://alphavit.college/php/welcome.php
(Même login et password)

sur la gauche vous avez une icône : exercice.
Le quiz que vous avez fait doit être disponible via ce lien.

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 21:52

à quelle étape cela ne fonctionne pas ? car, j'ai pu me loguer, répondre aux 10 questions des 2 quizzs.

Re: Requêtes dysfonctionnelles

par clickern » 07 nov. 2021, 21:41

L'url est celle-ci :
https://alphavit.college/centrexam/welcome.php
_____
vous pouvez y accéder via l'url suivant : https://alphavit.college/centrexam/login.php
login : [email protected]
pass : penbed19

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 21:26

non

rien n'est clair.

<div class="row">
<div class="col-md-12">
<?php if(@$_GET['q']==1)
{
$result = mysqli_query($con,"SELECT * FROM quiz ORDER BY date DESC") or die('Error');

quelle est l'url de la page dans laquelle ce code s'exécute ?

Re: Requêtes dysfonctionnelles

par clickern » 07 nov. 2021, 21:23

Comment faut-il comprendre ?

<form method="post" action="login.php" enctype="multipart/form-data">

doit être remplacé par : echo '<form action="update.php?q=quiz&step=2&eid='.$eid.'&n='.$sn.'&t='.$total.'&qid='.$qid.'" method="POST" class="form-horizontal">

Est-ce que vous voulez dire cela ?

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 21:10

echo '<form action="update.php?q=quiz&step=2&eid='.$eid.'&n='.$sn.'&t='.$total.'&qid='.$qid.'" method="POST" class="form-horizontal">

génère comme code html :

<form method="post" action="login.php" enctype="multipart/form-data">

????????????????

Re: Requêtes dysfonctionnelles

par clickern » 07 nov. 2021, 20:48

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta http-equiv="X-UA-Compatible" content="ie=edge">
		<title>Login | Online Quiz System</title>
		<link rel="stylesheet" href="scripts/bootstrap/bootstrap.min.css">
		<link rel="stylesheet" href="scripts/ionicons/css/ionicons.min.css">
		<link rel="stylesheet" href="css/form.css">
        <style type="text/css">
            body{
                  width: 100%;
                  background: url(image/book.png) ;
                  background-position: center center;
                  background-repeat: no-repeat;
                  background-attachment: fixed;
                  background-size: cover;
                }
          </style>
	</head>

	<body>
		<section class="login first grey">
			<div class="container">
				<div class="box-wrapper">				
					<div class="box box-border">
						<div class="box-body">
						<center> <h5 style="font-family: Noto Sans;">Login to </h5><h4 style="font-family: Noto Sans;">Online Quiz System</h4></center><br>
							<form method="post" action="login.php" enctype="multipart/form-data">
								<div class="form-group">
									<label>Enter Your Email Id:</label>
									<input type="email" name="email" class="form-control">
								</div>
								<div class="form-group">
									<label class="fw">Enter Your Password:
										<a href="javascript:void(0)" class="pull-right">Forgot Password?</a>
									</label>
									<input type="password" name="password" class="form-control">
								</div> 
								<div class="form-group text-right">
									<button class="btn btn-primary btn-block" name="submit">Login</button>
								</div>
								<div class="form-group text-center">
									<span class="text-muted">Don't have an account?</span> <a href="register.php">Register</a> Here..
								</div>
							</form>
						</div>
					</div>
				</div>
			</div>
		</section>

		<script src="js/jquery.js"></script>
		<script src="scripts/bootstrap/bootstrap.min.js"></script>
	</body>
</html>

Je ne sais pas si le projet est clair. Je souhaiterais accéder à la mise en page sans passer par le formulaire. De fait, les éléments de la base de donnée (composés de 3 tables) ont déjà été ouverts par une seule requête constituée dans une page 'config.php'. Je souhaite donc un clic sur une icône qui envoie les utilisateur vers la liste des examens qu'ils sont sensé passer.

:)

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 20:18

il nous faudrait le code html du formulaire.
ctrl + u dans firefox pour voir la source et nous donner le résultat de l'exécution du php.

Re: Requêtes dysfonctionnelles

par clickern » 07 nov. 2021, 19:48

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Welcome | Online Quiz System</title>
    <link  rel="stylesheet" href="css/bootstrap.min.css"/>
    <link  rel="stylesheet" href="css/bootstrap-theme.min.css"/>    
    <link rel="stylesheet" href="css/welcome.css">
    <link  rel="stylesheet" href="css/font.css">
    <script src="js/jquery.js" type="text/javascript"></script>
    <script src="js/bootstrap.min.js"  type="text/javascript"></script>
</head>
<body>
    <nav class="navbar navbar-default title1">
        <div class="container-fluid">
            <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        <a class="navbar-brand" href="#"><b>Session de contrôle d'examen</b></a>
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav navbar-left">
            <li <?php if(@$_GET['q']==1) echo'class="active"'; ?> ><a href="welcome.php?q=1"><span class="glyphicon glyphicon-home" aria-hidden="true"></span>&nbsp;accueil<span class="sr-only">(current)</span></a></li>
            <li <?php if(@$_GET['q']==2) echo'class="active"'; ?>> <a href="welcome.php?q=2"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span>&nbsp;archive</a></li>
            <li <?php if(@$_GET['q']==3) echo'class="active"'; ?>> <a href="welcome.php?q=3"><span class="glyphicon glyphicon-stats" aria-hidden="true"></span>&nbsp;Classement</a></li>
            
        </ul>
        <ul class="nav navbar-nav navbar-right">
        <li <?php echo''; ?> > <a href="logout.php?q=welcome.php"><span class="glyphicon glyphicon-log-out" aria-hidden="true"></span>&nbsp;Log out</a></li>
        </ul>
        
            
           
       
        </div>
    </div>
    </nav>
    <br><br>
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <?php if(@$_GET['q']==1) 
                {
                    $result = mysqli_query($con,"SELECT * FROM quiz ORDER BY date DESC") or die('Error');
                    echo  '<div class="panel"><div class="table-responsive"><table class="table table-striped title1">
                    <tr><td><center><b>Nb.</b></center></td><td><center><b>Sujets</b></center></td><td><center><b>total des questions</b></center></td><td><center><b>Notes</center></b></td><td><center><b>Action</b></center></td></tr>';
                    $c=1;
                    while($row = mysqli_fetch_array($result)) {
                        $title = $row['title'];
                        $total = $row['total'];
                        $sahi = $row['sahi'];
                        $eid = $row['eid'];
                    $q12=mysqli_query($con,"SELECT score FROM history WHERE eid='$eid' AND email='$email'" )or die('Error98');
                    $rowcount=mysqli_num_rows($q12);	
                    if($rowcount == 0){
                        echo '<tr><td><center>'.$c++.'</center></td><td><center>'.$title.'</center></td><td><center>'.$total.'</center></td><td><center>'.$sahi*$total.'</center></td><td><center><b><a href="welcome.php?q=quiz&step=2&eid='.$eid.'&n=1&t='.$total.'" class="btn sub1" style="color:black;margin:0px;background:#1de9b6"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span>&nbsp;<span class="title1"><b>Start</b></span></a></b></center></td></tr>';
                    }
                    else
                    {
                    echo '<tr style="color:#99cc32"><td><center>'.$c++.'</center></td><td><center>'.$title.'&nbsp;<span title="Vous avez déjà répondu à ce questionnaire" class="glyphicon glyphicon-ok" aria-hidden="true"></span></center></td><td><center>'.$total.'</center></td><td><center>'.$sahi*$total.'</center></td><td><center><b><a href="update.php?q=quizre&step=25&eid='.$eid.'&n=1&t='.$total.'" class="pull-right btn sub1" style="color:black;margin:0px;background:red"><span class="glyphicon glyphicon-repeat" aria-hidden="true"></span>&nbsp;<span class="title1"><b>Refaire</b></span></a></b></center></td></tr>';
                    }
                    }
                    $c=0;
                    echo '</table></div></div>';
                }?>

                <?php
                    if(@$_GET['q']== 'quiz' && @$_GET['step']== 2) 
                    {
                        $eid=@$_GET['eid'];
                        $sn=@$_GET['n'];
                        $total=@$_GET['t'];
                        $q=mysqli_query($con,"SELECT * FROM questions WHERE eid='$eid' AND sn='$sn' " );
                        echo '<div class="panel" style="margin:5%">';
                        while($row=mysqli_fetch_array($q) )
                        {
                            $qns=$row['qns'];
                            $qid=$row['qid'];
                            echo '<b>Question &nbsp;'.$sn.'&nbsp;::<br /><br />'.$qns.'</b><br /><br />';
                        }
                        $q=mysqli_query($con,"SELECT * FROM options WHERE qid='$qid' " );
                        echo '<form action="update.php?q=quiz&step=2&eid='.$eid.'&n='.$sn.'&t='.$total.'&qid='.$qid.'" method="POST"  class="form-horizontal">
                        <br />';

                        while($row=mysqli_fetch_array($q) )
                        {
                            $option=$row['option'];
                            $optionid=$row['optionid'];
                            echo'<input type="radio" name="ans" value="'.$optionid.'">&nbsp;'.$option.'<br /><br />';
                        }
                        echo'<br /><button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span>&nbsp;Submit</button></form></div>';
                    }

                    if(@$_GET['q']== 'result' && @$_GET['eid']) 
                    {
                        $eid=@$_GET['eid'];
                        $q=mysqli_query($con,"SELECT * FROM history WHERE eid='$eid' AND email='$email' " )or die('Error157');
                        echo  '<div class="panel">
                        <center><h1 class="title" style="color:#660033">Result</h1><center><br /><table class="table table-striped title1" style="font-size:20px;font-weight:1000;">';

                        while($row=mysqli_fetch_array($q) )
                        {
                            $s=$row['score'];
                            $w=$row['wrong'];
                            $r=$row['sahi'];
                            $qa=$row['level'];
                            echo '<tr style="color:#66CCFF"><td>Questions totales</td><td>'.$qa.'</td></tr>
                                <tr style="color:#99cc32"><td>réponses correctesr&nbsp;<span class="glyphicon glyphicon-ok-circle" aria-hidden="true"></span></td><td>'.$r.'</td></tr> 
                                <tr style="color:red"><td>réponses fausses&nbsp;<span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span></td><td>'.$w.'</td></tr>
                                <tr style="color:#66CCFF"><td>Points&nbsp;<span class="glyphicon glyphicon-star" aria-hidden="true"></span></td><td>'.$s.'</td></tr>';
                        }
                        $q=mysqli_query($con,"SELECT * FROM rank WHERE  email='$email' " )or die('Error157');
                        while($row=mysqli_fetch_array($q) )
                        {
                            $s=$row['score'];
                            echo '<tr style="color:#990000"><td>Overall Score&nbsp;<span class="glyphicon glyphicon-stats" aria-hidden="true"></span></td><td>'.$s.'</td></tr>';
                        }
                        echo '</table></div>';
                    }
                ?>

                <?php
                    if(@$_GET['q']== 2) 
                    {
                        $q=mysqli_query($con,"SELECT * FROM history WHERE email='$email' ORDER BY date DESC " )or die('Error197');
                        echo  '<div class="panel title">
                        <table class="table table-striped title1" >
                        <tr style="color:black;"><td><center><b>S.N.</b></center></td><td><center><b>Quiz</b></center></td><td><center><b>Question Solved</b></center></td><td><center><b>Right</b></center></td><td><center><b>Wrong<b></center></td><td><center><b>Score</b></center></td>';
                        $c=0;
                        while($row=mysqli_fetch_array($q) )
                        {
                        $eid=$row['eid'];
                        $s=$row['score'];
                        $w=$row['wrong'];
                        $r=$row['sahi'];
                        $qa=$row['level'];
                        $q23=mysqli_query($con,"SELECT title FROM quiz WHERE  eid='$eid' " )or die('Error208');

                        while($row=mysqli_fetch_array($q23) )
                        {  $title=$row['title'];  }
                        $c++;
                        echo '<tr><td><center>'.$c.'</center></td><td><center>'.$title.'</center></td><td><center>'.$qa.'</center></td><td><center>'.$r.'</center></td><td><center>'.$w.'</center></td><td><center>'.$s.'</center></td></tr>';
                        }
                        echo'</table></div>';
                    }

                    if(@$_GET['q']== 3) 
                    {
                        $q=mysqli_query($con,"SELECT * FROM rank ORDER BY score DESC " )or die('Error223');
                        echo  '<div class="panel title"><div class="table-responsive">
                        <table class="table table-striped title1" >
                        <tr style="color:red"><td><center><b>Rank</b></center></td><td><center><b>Name</b></center></td><td><center><b>Email</b></center></td><td><center><b>Score</b></center></td></tr>';
                        $c=0;

                        while($row=mysqli_fetch_array($q) )
                        {
                            $e=$row['email'];
                            $s=$row['score'];
                            $q12=mysqli_query($con,"SELECT * FROM users WHERE email='$e' " )or die('Error231');
                            while($row=mysqli_fetch_array($q12) )
                            {
                                $name=$row['name'];
                            }
                            $c++;
                            echo '<tr><td style="color:black"><center><b>'.$c.'</b></center></td><td><center>'.$name.'</center></td><td><center>'.$e.'</center></td><td><center>'.$s.'</center></td></tr>';
                        }
                        echo '</table></div></div>';
                    }
                ?>
</body>
</html>

Voici donc toute la page HTML ..

Re: Requêtes dysfonctionnelles

par or 1 » 07 nov. 2021, 18:39

il vaut mieux enlever le @ de
$ref=@$_GET['q'];
il nous faudrait le code html du formulaire.