Aide pour création site d'annonces

ricfred Messages postés 5 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 30 décembre 2008 - 29 déc. 2008 à 22:17
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 31 déc. 2008 à 11:28
Bonjour,


Je suis à la recherche d'aides pour la création de mon site d'annonces.
J'ai déjà créé un site internet il y a quelques annnées mais il
s'agissait que de HTML.

Cette fois il faut avoir des connaissance en PHP et c'est la que les problèmes se posent.

Je suis novice et donc débutant en PHP. Un ami s'y connait un peu plus que moi mais on galère quand même beaucoup.


Il y aura 2 principaux onglet sur ce site:

Un onglet principal qui sera également "l'accueil" de ce site et qui
sera composé d'un mini "moteur de recherche" interne (allant cherché
dans une BDD).

Un onglet "formulaire d'inscription d'annonces" qui alimentera la BDD.


Nous rencontrons plusieurs petits problèmes et notament en ce qui concerne la recherche.


Nous voulons que l'utilisateur puisse faire sa recherche en entrant son
code postal dans un champ. IL validera ensuite ce code postal et il
aura ensuite la liste des communes correspondant à son code postal.
Nous avons une BDD des villes avec leurs codes postaux et leurs
coordonnées GPS pour la géolocalisation.

Il suffira alors qu'il sélectionne sa ville dans cette liste pour qu'elle puisse être validée comme dans le site suivant : http://www.ordi118.fr/

L'utilisateur pourra ensuite entrer une valeur kilomètrique de son
choix (5kms-20kms-40kms-60kms) pour effectuer une recherche dans un
rayon autour de sa ville comme le site suivant : [http://www.paruvendu.fr/auto-moto/recherche/autres-vehicules-occasion/ http://www.paruvendu.fr/auto-moto/rech [...] les-occasion/]


Pouvez-vous nous aider à créer ce script ?


J'ai trouvé 2 liens qui parlent de la sélection d'une ville par son code postal : [codes/RECHERCHE-VILLES-CODES-POSTAUX-FRANCAIS_36429.aspx http://www.phpcs.com/codes/RECHERCHE-V [...] IS_36429.aspx] et [http://www.javascriptfr.com/codes/CODES-POSTAUX-VILLES-DANS-FORMULAIRE_15991.aspx http://www.javascriptfr.com/codes/CODE [...] RE_15991.aspx]


Je ne sais pas par ou commencé.


J'espère que vous pourrez m'aider.

Je ne préfère pas parler rémunération mais sachez que je récompenserai
comme je le pourrai ceux où celui qui pourra vraiment nous aider.


Merci.


Salut et à bientôt !

6 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
29 déc. 2008 à 23:08
Salut,

(je ne fais que passer)
J'ai fait ça en début d'année.
Peux tu poster la structure de ta base ?
Ca te coutera 0 € (mais ce coût risque d'être multiplié par 1000 par la suite )
(... je suis passé)

Kohntark -
0
ricfred Messages postés 5 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 30 décembre 2008
29 déc. 2008 à 23:21
Salut,

La structure de ma base ? Que veux-tu dire ? C'est une base Sql avec nom des villes, codes postaux, codes INSEE, et coordonnées GPS de chaque villes. c'est tout.

Ensuite, j'ai récupèré un script mais il faut que je le réadapte à ma BDD mais je n'y comprends rien du tout.
Quelqu'un peu m'aider à déchiffrer ce script ? Il s'agit du script permettant de saisir une ville avec le code postal, où d'avoir la liste de toutes les villes d'un département si on ne met que les 2 premiers chiffres :

<?php
ob_start ();
?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <link rel="stylesheet" type="text/css" href="css/maindoc.css" />
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
/**
*includes pour php5
*
*/

require_once 'php5/ocity.cls.php';
require_once 'php5/oajax.cls.php';

/**
*includes pour php4
*
*/
/*
require_once 'php4/ocity.cls.php';
require_once 'php4/oajax.cls.php';
*/

$ville = new ocity ('../villes/data.dat');
$ajax = new oajax;
echo $ajax -> setHeader ();
echo $ajax -> buildAjax ();
echo $ajax -> search ();
echo $ajax -> setFooter ();

$sBuffer = ob_get_clean ();
$bCheck = $ville -> getSearch ();
ob_start ();
?>
</head>
   
   
Attente

</html>
<?php
$sBuffer .= ob_get_clean ();
if ($bCheck === false) {
    echo $sBuffer;
}
?>

Salut et à bientôt !
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
30 déc. 2008 à 09:37
Salut,

Il faudrait avoir les 4 fichiers des require_once pour pouvoir t'aider

Cordialement,

Kohntark -
0
ricfred Messages postés 5 Date d'inscription lundi 17 novembre 2008 Statut Membre Dernière intervention 30 décembre 2008
30 déc. 2008 à 10:29
Pas de problèmes :

Voici le php4/ocity.cls.php :

<?php
class oajax {

    function setHeader () {
        $sString = <<<HTML
    <script type="text/javascript">
HTML;
        return $sString;
    }

    function setFooter () {
        $sString = <<<HTML
    </script>
HTML;
        return $sString;
    }

    function buildAjax () {
        $sString =<<<HTML

        if (window.XMLHttpRequest) {
            oXmlhttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            oXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

HTML;
        return $sString;
        }

    function search () {
        $sString =<<<HTML
function search (sS, bSort) {
    if (sS != '') {
        oXmlhttp.open('POST','{$_SERVER['PHP_SELF']}');
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                document.getElementById ('msg').innerHTML = 'Chargement';
            }
            if (oXmlhttp.readyState==2) {
                document.getElementById ('msg').innerHTML = 'Charg&eacute;';
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                document.getElementById ('msg').innerHTML = 'Attente';
                document.getElementById ('divContent').innerHTML = oXmlhttp.responseText;
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                document.getElementById ('divContent').innerHTML = oXmlhttp.responseText;
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'data='+sS+'&sort='+bSort;
        oXmlhttp.send (data);
    }
}

HTML;
    return $sString;
    }
}
?>

et le php4/oajax.cls.php

<?php
function array_intersect_key($arr1, $arr2) {
   $res = array();
   foreach($arr1 as $key=>$value) {
       $push = true;
       for ($i = 1; $i < func_num_args(); $i++) {
           $actArray = func_get_arg($i);
           if (gettype($actArray) != 'array') return false;
           if (!array_key_exists($key, $actArray)) $push = false;
       }
       if ($push) $res[$key] = $arr1[$key];
   }
   return $res;
}

function array_combine($a, $b) {
   $c = array();
   if (is_array($a) && is_array($b))
       while (list(, $va) = each($a))
           if (list(, $vb) = each($b))
               $c[$va] = $vb;
           else
               break 1;
   return $c;
}

class ocity {
    /**
    * private array aVilles : data array
    */
    var $aVilles = array ();
    var $aCP = array ();

    /**
    * public static string sResult : string used to store the result of the query
    */
    var $sResult = '';

    /**
    * public static string sSearch : string used to store the query
    */
    var $sSearch = '';

    /**
    * public function __construct
    * constructor
    * @Param string dataFile : data filename.
    */
    function ocity ($dataFile = 'data.dat') {
        $sVilles = file_get_contents ($dataFile);
        $aLines =explode ("\r", $sVilles);
        $aLines = file ($dataFile);
        foreach ($aLines as $line) {
            $aWord = explode (';', $line);
            $this -> aVilles[] = $aWord[1];
            $this -> aCP[] = $aWord[0];
        }
    }

    /**
    * callback public static function getFirst
    * returns an array with the results of the query
    * @Returns array
    */
    function getFirst ($val) {
        return (substr ($val, 0, strlen ($this -> sSearch)) === $this -> sSearch);
    }

    /**
    * public function getSearch
    * returns the string result, called by the xmlhttp method
    * @Returns string sResult
    */
    function getSearch () {
        if (isset ($_POST['data']) && '' !== trim ($_POST['data'])) {
            $this -> sSearch = strtolower ($_POST['data']);
            if ($this -> sSearch === '*') {
                $aTmpCP = $this -> aCP;
                $aTmpVilles = $this -> aVilles;
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            elseif (is_numeric ($this -> sSearch)) {
                $aTmpCP = array_filter ($this -> aCP, array ($this, 'getFirst'));
                $aTmpVilles = array_intersect_key ($this -> aVilles, $aTmpCP);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '1'))) {
                    array_multisort ($aTmpCP, $aTmpVilles);
                } else {
                    array_multisort ($aTmpVilles, $aTmpCP);
                }
            } else {
                $aTmpVilles = array_filter ($this -> aVilles, array ($this, 'getFirst'));
                $aTmpCP = array_intersect_key ($this -> aCP, $aTmpVilles);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            $iCpt = 0;
            $this -> sResult .= '
sSearch.'\',1);" style="cursor: pointer; margin: 5px;font-weight: bold;text-align: left;width: 100px;">Code sSearch.'\',2);" style="width: 150px;cursor: pointer; margin: 5px;font-weight: bold; text-align: right;">Ville
';
            foreach ($aTmp as $cp => $ville) {                $sColor ($iCpt%2 0)?'background-color: #cccccc;':'background-color: #ffffff;';
                $this -> sResult .= '
'.$cp.''.$ville.'
';
                $iCpt ++;
            }
            echo $this -> sResult;
        } else {
            return false;
        }
    }
}
?>

Puis le php5/ocity.cls.php

<?php
class oajax {

    public function setHeader () {
        $sString = <<<HTML
    <script type="text/javascript">
HTML;
        return $sString;
    }

    public function setFooter () {
        $sString = <<<HTML
    </script>
HTML;
        return $sString;
    }

    public function buildAjax () {
        $sString =<<<HTML

        if (window.XMLHttpRequest) {
            oXmlhttp = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            oXmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

HTML;
        return $sString;
        }

    public function search () {
        $sString =<<<HTML
function search (sS, bSort) {
    if (sS != '') {
        oXmlhttp.open('POST','{$_SERVER['PHP_SELF']}');
        oXmlhttp.onreadystatechange=function() {
            if (oXmlhttp.readyState==1) {
                document.getElementById ('msg').innerHTML = 'Chargement';
            }
            if (oXmlhttp.readyState==2) {
                document.getElementById ('msg').innerHTML = 'Charg&eacute;';
            }
            if (oXmlhttp.readyState==4 && oXmlhttp.status == 200) {
                document.getElementById ('msg').innerHTML = 'Attente';
                document.getElementById ('divContent').innerHTML = oXmlhttp.responseText;
            }
        }
        oXmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        var data = 'data='+sS+'&sort='+bSort;
        oXmlhttp.send (data);
    }
}

HTML;
    return $sString;
    }
}
?>

et le php5/oajax.cls.php

<?php
class ocity {
    /**
    * private array aVilles : data array
    */
    private $aVilles = array ();
    private $aCP = array ();
    /**
    * public static string sResult : string used to store the result of the query
    */
    private $sResult = '';

    /**
    * public static string sSearch : string used to store the query
    */
    private static $sSearch = '';

    /**
    * public function __construct
    * constructor
    * @Param string dataFile : data filename.
    */
    public function __construct ($dataFile = 'data.dat') {
        $sVilles = file_get_contents ($dataFile);
        $aLines =explode ("\r", $sVilles);
        $aLines = file ($dataFile);
        foreach ($aLines as $line) {
            $aWord = explode (';', $line);
            $this -> aVilles[] = $aWord[1];
            $this -> aCP[] = $aWord[0];
        }
    }

    /**
    * callback public static function getFirst
    * returns an array with the results of the query
    * @Returns array
    */
    private static function getFirst ($val) {
        return (substr ($val, 0, strlen (self::$sSearch)) === self::$sSearch);
    }

    /**
    * public function getSearch
    * returns the string result, called by the xmlhttp method
    * @Returns string sResult
    */
    public function getSearch () {
        if (isset ($_POST['data']) && '' !== trim ($_POST['data'])) {
            self::$sSearch = strtolower ($_POST['data']);
            if (self::$sSearch === '*') {
                $aTmpCP = $this -> aCP;
                $aTmpVilles = $this -> aVilles;
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            elseif (is_numeric (self::$sSearch)) {
                $aTmpCP = array_filter ($this -> aCP, array ('self', 'getFirst'));
                $aTmpVilles = array_intersect_key ($this -> aVilles, $aTmpCP);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '1'))) {
                    array_multisort ($aTmpCP, $aTmpVilles);
                } else {
                    array_multisort ($aTmpVilles, $aTmpCP);
                }
            } else {
                $aTmpVilles = array_filter ($this -> aVilles, array ('self', 'getFirst'));
                $aTmpCP = array_intersect_key ($this -> aCP, $aTmpVilles);
                if (isset ($_POST['sort']) && in_array ($_POST['sort'], array ('0', '2'))) {
                    array_multisort ($aTmpVilles, $aTmpCP);
                } else {
                    array_multisort ($aTmpCP, $aTmpVilles);
                }
            }
            $iCpt = 0;
            $this -> sResult .= '
Code Ville
';
            foreach ($aTmpCP as $clef => $cp) {                $sColor ($iCpt%2 0)?'background-color: #cccccc;':'background-color: #ffffff;';
                $this -> sResult .= '
'.$cp.''.$aTmpVilles[$clef].'
';
                $iCpt ++;
            }
            echo $this -> sResult;
        } else {
            return false;
        }
    }
}
?>

J'espère que cela pourra vous aider.
Voyez-vous des choses inutiles ?
Des choses à améliorer ?

Merci.

Salut et à bientôt !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
30 déc. 2008 à 11:06
Kohntark à dit : Salut,
(je ne fais que passer)
J'ai fait ça en début d'année.
Peux tu poster la structure de ta base ?
Ca te coutera 0 € (mais ce coût risque d'être multiplié par 1000 par la suite )
(... je suis passé)
Kohntark -

0€ x 1000 = 0€ donc c'est tout bon pour lui
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
31 déc. 2008 à 11:28
Salut,

Ton projet est intéressant, le problème est, je cite : "mais je n'y comprends rien du tout."
Résultat : tu n'es peut être pas à la bonne adresse, ce n'est pas un forum qui saura répondre à tes attentes, car nous sommes ici pour tenter de trouver des solutions à des problèmes précis, pas pour faire des scripts ou sites "tout cuit". Loin de moi l'idée de "t'envoyer sur les roses", mais ce que tu demandes nécessite plusieurs heures de travail et n'est pas gérable en ces lieux.

A mon humble petit avis :
- fais appel à un développeur
- ou plonge les mains dans le cambouis et fais nous part de tes difficultés (là tu auras des réponses)

A première vue la classe que tu souhaites utiliser ne gère pas la géolocalisation (je n'ai pas bien regardé, mais je ne vois aucun calcul là dessus)

@mike1310 : c'était bien ce que je voulais dire

Cordialement,

Kohntark-

Kohntark -
0
Rejoignez-nous