PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » Pagination et mod_rewrite » 26-12-2013 17:35:02

merci Jc de votre reponse, enfin j'ai un fichier htaccess, qui a des regles, ces regles empechent l'affichage de la pagination du moteur de recherche, par exemple:

si une personne cherche un terme "toto tata", le code execute la cherche et affiche un resultat, par exemple 5 par page, alors la 2eme page serait un lien comme ca:

www.site.com/Search.html?search=toto+tata&start=2

alors dans les regles j'ai ca:


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(\w+)\.html$ index.php?rub=$1 [L]
RewriteRule ^(\w+)/(\w+)\.html$ index.php?rub=$1&srub=$2 [L]
 

Quand je clique pour aller a la 2eme page, il affiche une erreur 404, parce que mes liens sont comme ca:

www.site.com/niveau1/niveau2/niveau3....../niveauN.html

Merci a vous

#2 Forum Général PHP » Pagination et mod_rewrite » 26-12-2013 17:35:02

rimie
Réponses : 3

Bonjour,

Je code un moteur de recherche, avec une pagination, deja j'ai un fichier htaccess comportant les regles du mod_rewrite, le probleme existe en mode pagination:


<?php
if(isset($_POST['submit']))
{
    $search = $_POST['search'];
   
    $findWord = '?search='.$search;    
} else {
    $findWord = '';
}


?>
<form action="<?php echo 'Search.html'.$findWord; ?>" method='POST'>
<center>
<h1>My Search Engine</h1>
<input type='text' size='20' name='search'></br></br>
<input type='submit' name='submit' value='send' ></br></br></br>
</center>
</form>

<?php
if(IsSet($_POST['submit'])){
   
    require_once 'Admins/search.php';
}

?>
 
 

J'obtiens un resultat en bas de page avec url de pagination est comme suite:


http://www.site.com/Search.html?search=test&start=2
 

le resultat de cette url est la page du formulaire par defaut

fichier htaccess:


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(\w+)\.html$ index.php?rub=$1 [L]
RewriteRule ^(\w+)/(\w+)\.html$ index.php?rub=$1&srub=$2 [L]
 

comment resoudre ce probleme en gardant le format normal de l'url, type:


http://www.site.com/Search.html?search=test&start=2
 

merci a vous

#3 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

merci Pierrot, je cherchais une methode afin de ne pas refaire le meme travail en utilisant JSON

#4 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

Pierrot a écrit :

quelle corvée hmm:/:/:(:(:(

a++

???

#5 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

donc pour chaque champs je dois tout verifier individuellement (regex, longueur,...)

#6 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

Jc a écrit :

Concernant ton undefined,

le resultat cote json est:

{"pseudo_check":"caracteres"}


Jc a écrit :

Pour le reste et pour pouvoir te répondre pourquoi as-tu besoin de faire un traitement sur .focus, .blur, et .keyup ????

c'est juste pour appliquer plusieurs evenements sur un seul champs, apprendre c'est tout

#7 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

oui je suis d'accord avec toi, on peut effectuer ces operations sans charger le serveur, cote JS seulement, maintenant on a une fonction:


function check_field(index){

// traitement de donnees

}
 

si on veut mettre 2 ou plusieurs evenements sur cette fonction, tu as mis onblur:

onblur="check_field(1)"

je veux la mettre de cette maniere:


$("#champ_"+index).focus(check_field(index));
$("#champ_"+index).blur(check_field(index));
$("#champ_"+index).keyup(check_field(index));
 

est ce que c'est une bonne methode?

ma question est TOUJOURS: pourquoi au retour des donnees, alert donne UNDEFINED, c'est quoi l'erreur exactement

#8 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

Jc a écrit :

1) Appliquer un pattern qui fonctionne pour tous les champs d'un même formulaire.

le pattern, ou bien une expression reguliere, serait differente d'un cas a un autre, par exemple:
nom: a-z
password: a-zA-Z

avec une fonction PHP:


function checkRegex($regex, $field)
    {
        if(preg_match($regex, $field))
        {
            return TRUE;
        }
            return FALSE;
    }
 

alors avec cette fonction, je vais mettre:

nom:


checkRegex('a-z', $nom)
{
$nom_check = 'Match';
}
{
$nom_check = 'NotMatch';
}
 

password:


checkRegex('a-zA-Z', $password)
{
$pass_check = 'Match';
}
{
$pass_check = 'NotMatch';
}
 

a la fin du document je vais encoder les resultats:


$ret["verif_nom"] = $verif_nom;
$ret["verif_pass"] = $verif_pass;

echo json_encode($ret);
 

cote JS au retour des encode json::


function Chars(data, field)
{  
  if(data.field+'_check' == 'caracteres')
  {            
    $('.'+field+'Error').html('<B>Le champs X contient plus de 40 caracteres ou moins de 5 caracteres</B>').show(1000);
  }
  else
  {
    $('.'+field+'Error').html('<B>OK</B>').show(1000);
  }
}
 

c'est la partie que j'ai pose en demande d'explication, comment integrer cette fonction avec celle du DOM

la partie field est le nom du champs, et field_check, c'est le nom du champs + check

Jc a écrit :

2) Faire matcher une expression au fil de l'eau.

cette partie je ne l'ai pas retenue smile

#9 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

Pierrot a écrit :

elle doit faire quoi ta fonction ?
a++

je cree une fonction pour verifier la regex des champs, par exemple, j'ai 3 formulaires dans mon site, et chaque formulaire a 2 champs, donc un total de 6 verifications regex, au lieu de mettre:


document.ready
{
// verification champs 1 formulaire 1
// verification champs 2 formulaire 1
// verification champs 3 formulaire 1

// etc

// verification champs x formulaire n

}
 

je mets comme ca:


$(id_champs_a_verifier).keyup(fonctionRegex);
 

et fonctionRegex aura tous les parametres necessaires: la regex, la class du champs, la place ou l'erreur va s'afficher,...

j'aurais 6 lignes (6 champs a verifier) au lieu de mettre document.ready + la verification de chaque champs

#10 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

j'utilise firefox 11
je veux bien integrer une la fonction Chars au sein de la methode document

#11 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

on n'oublie pas que je devais utiliser la fonction function Chars(data, field)

#12 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

ret = JSON.parse(data);
          alert(ret);


voila:

JSON.parse: unexpected character

ret = JSON.parse(data);

voila les donnees json:

{"pseudo_check":"caracteres"}

#13 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

voila la reponse:

JSON.Parse is not a function
ret=JSON.Parse(data);

#14 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

je ne sais pas comment le parser, voila le code en entier pour mieux comprendre:

<head>
<script type="text/javascript" src="../../jquery.js"></script>

<script type="text/javascript">

// fonction de verification de la longueur des caracteres
function Chars(data, field)
{  
  if(data.field+'_check' == 'caracteres')
  {            
    $('.'+field+'Error').html('<B>Le champs X contient plus de 40 caracteres ou moins de 5 caracteres</B>').show(1000);
  }
  else
  {
    $('.'+field+'Error').html('<B>OK</B>').show(1000);
  }
}

$(document).ready(function(){

  $('.pseudo').keyup(function(){
   
          var dataString = $('form').serialize();
     
        $.ajax({
        type: "POST",
        url: "verif.php",
        data: dataString,
        dataType: "json",
        success: function(data) {
         
          alert(Chars('data', 'pseudo'));

 
  }
  });
  });
  });

</script>

</head>


<form name="advanced" class="advanced" method="POST" accept="<?php $_SERVER['PHP_SELF']; ?>">
Pseudo: <input type="text" name="pseudo" class="pseudo" /><span class="pseudoError"></span><br />
E-mail: <input type="text" name="email" class="email" /><span class="emailError"></span><br />
</form>

verif.php:

<?php
$pseudo = Isset($_POST['pseudo']) ? $_POST['pseudo']  : $pseudo = Null;

$pseudo_check = 'caracteres';

    $return["pseudo_check"] = $pseudo_check;
    $obj = json_encode($return);
    echo $obj;
    //$obj->return;
    //print_r($obj);
?>

merci a vous

#15 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

c'est la fonction verifierRegex() qui est aus ein de document

#16 Re : Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

ca me retourne undefined, est ce que la methode d'inclure une fonction dans une autre est correcte

#17 Javascript » Fonction regex avec Json et PHP » 03-05-2012 20:51:03

rimie
Réponses : 45

Bonjour!

Je cree une fonction regex, qui va s'appliquer sur tous les champs (nom, prenom,..) en utilisant Json:

<script type="text/javascript">
 
/* je cree une fonction du retour du champs */
function verifierRegex(champs)
{
// je verifie si le message retourne par JSON est Regex
        if(response.champs+'_verif' == 'Regex')
        {            
// j'affiche l'erreur dans la zone concernee
                $('#'+champs).text('Regex mal construite').show();
        }
       
}
 

// DOM
$(document).ready(function(){
 
// au focus sur le nom
        $('.nom').focus(function(){
 
// serlializer les donnees
                var dataString = $('form').serialize();
 
        $.ajax({
        type: 'POST',
        url: 'verif.php',
        data: dataString,
        dataType: 'json',
        success: function(response) {
 
// appeller la fonction
                verifierRegex('nom'));
 
        }
        })
        });
        });
 
</script>

verif.php

<?php
// poster le nom
$nom    = $_POST['nom'];

// j'ai mis par defaut Regex afin de tester
$nom_verif = 'Regex';

// je recupere le retour
$retour['nom_verif'] = $nom_verif;

// je l encode en JSON
echo json_encode($retour);
?>

merci a vous

#18 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48

est ce qu'il n y a pas une solution, ou bien je dois changer la structure de mes tables?

#19 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48

est ce qu'il y a une solution pour la facon de grouper les etudiants par jour?

#20 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48

le but de l'exemple c'est de comprendre bien les JOINTURES et leurs comportements, maintenant, il me reste juste la bonne mise en forme comme cite ci-dessus

#21 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48

cet exemple que j'ai donne n'est que pour apprendre les jointures entre tables, a chaque fois je mets un exemple, je le comprends, je pass a un autre, c'est pour cela je change pas la structure des tables, j'utilise les meme tables pour plusieurs exemple, c'est le cas pour extraire les etudiants qui ont passe l'examen pour tel jour telle annee smile

#22 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48

voila:


SELECT jours.id_c, jours.annee, jours.jour, etudiants.nom, GROUP_CONCAT(etudiants.nom)
              FROM joinTables
              INNER JOIN etudiants ON joinTables.idetudiant = etudiants.ide
              INNER JOIN jours ON joinTables.idjour = jours.jour AND joinTables.annee = jours.annee
              INNER JOIN classes ON jours.id_c = classes.idc
              WHERE jours.annee = "'.$type.'" AND  classes.classe = "'.$cat.'"
              GROUP BY jours.id_c, jours.annee, jours.jour
 

resultat comme celui que j'ai recu auparavant:

jour1: 1
jour2: 3
jour3: 1

#23 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48

j'ai teste par plusieurs propositions, que dois je mettre dans GROUP_CONCAT et GROUP BY

#24 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48

deja teste avec: GROUP_CONCAT(joinTables.idetudiant) et GROUP BY joinTables.idetudiant mais ca donne le meme resultat:

jour1: etudiant1
jour1: etudiant2
...
etc

et avec GROUP_CONCAT(joinTables.idetudiant) SEULS, ca donne:

jour1: etudiant1

et avec GROUP BY jours.jour

jour1: etudiant2
jour2: etudiant4
jour3: etudiant6

#25 Re : Forum Général PHP » Lister les etudiants d'une classe par jour d'examen » 15-02-2012 12:49:48


SELECT *, GROUP_CONCAT(joinTables.idjour)
          FROM joinTables
          INNER JOIN etudiants ON joinTables.idetudiant = etudiants.ide
          INNER JOIN jours ON joinTables.idjour = jours.jour
          WHERE jours.annee = "'.$type.'" AND jours.id_c = (SELECT idc FROM classes WHERE classe = "'.$cat.'")
                AND joinTables.idclasse = jours.id_c
                AND joinTables.annee = jours.annee
                GROUP BY jours.id_c, jours.annee, jours.jour
       

 

ca donne:

jour1: etudiant2
jour2: etudiant4
jour3: etudiant6

Pied de page des forums

Propulsé par FluxBB