Php 5 et script en php inférieur

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 : Php 5 et script en php inférieur

par Truc » 07 févr. 2006, 01:34

la BD est-elle remplie ?

tu n'as pas d'erreurs d'exécutions ?

ajoute des messages d'erreurs au ecéxutions de requetes:
mysql_query($query) or die('Erreur SQL !<br />'.$query.' <br />'.mysql_error());
enleve tous les @ qui masquent les eventuelles erreurs

Extension php

par energie13 » 06 févr. 2006, 17:02

Oui la page comporte bien l'extension php.
Lorsque je clique sur la partie dynamique du forulaire (département ou code postal ) les valeurs ne sont pas chargées.

ville.php

Code : Tout sélectionner

<? $table = "villes"; include("_conn.php"); switch($q=@$_GET["q"]) { case "1": // Liste des codes postaux $query = "SELECT DISTINCT Codepos FROM $table" . " WHERE Departement = '".$_POST["champ"]."' ORDER BY 1"; case "2": // Liste des communes if(!@$query) $query = "SELECT Commune,INSEE FROM $table" . " WHERE Codepos = '".$_POST["champ"]."' ORDER BY 1"; echo 'var o = null;'; echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];'; echo 's.options.length = 0;'; if($q<2) echo 's.options[s.options.length] = new Option("Choisir","");'; $result = @mysql_query($query); while($r = mysql_fetch_array($result)) echo 's.options[s.options.length] = new Option("'.$r[0].'","'.((@$r[1])?$r[1]:$r[0]).'");'; echo 'update('.$q.');'; break; default: // Liste des départements $liste_dpt = ""; $SQL = "SELECT DISTINCT Departement FROM $table ORDER BY 1"; $res = mysql_query($SQL); while($val = mysql_fetch_array($res)) $liste_dpt .= "<option value=\"".$val[0]."\">".$val[0]."</option>\n"; // Nom de la commune d'après le code INSEE if(@$adresse["INSEE"]) { $SQL = "SELECT Commune FROM $table WHERE INSEE='".$adresse["INSEE"]."'"; $res = mysql_query($SQL); $adresse["Commune"] = mysql_result($res,0,0); } } @mysql_close(); ?>
formulaire.php

Code : Tout sélectionner

<? // On peut aussi extraire ce tableau d'une DB ;) $adresse = array( "civ"=>@$_POST["civ"], "nom"=>@$_POST["nom"], "prenom"=>@$_POST["prenom"], "adresse"=>@$_POST["adresse"], "adresse2"=>@$_POST["adresse2"], "Departement"=>@$_POST["list0"], "Codepos"=>@$_POST["list1"], "INSEE"=>@$_POST["list2"], ); include("ville.php"); ?><HTML><HEAD> <SCRIPT language="JavaScript"> // Mise à jour des listes via XMLHttpRequest function liste(f,q,t) { var l1 = f.elements["list"+(q-1)]; var l2 = f.elements["list"+q]; var index = l1.selectedIndex; for(i=q;i<=t;i++) f.elements["list"+i].options.length = 0; if(index > 0) { var xhr_object = null; if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("POST", "ville.php?q="+q, true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) eval(xhr_object.responseText); } xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); var data = "champ="+escape(l1.options[index].value) +"&form="+f.name+"&select=list"+q; xhr_object.send(data); } } // Mise à jour du selectedIndex d'une liste function update(L) { v = new Array; v[0] = "<?=@$adresse["Departement"]?>"; v[1] = "<?=@$adresse["Codepos"]?>"; v[2] = "<?=@$adresse["INSEE"]?>"; if(v[L]=="") return; f = document.forms.form_selects; L0 = f.elements["list"+L]; for(i=0;i<L0.options.length;i++) if(L0.options[i].value==v[L]) { L0.selectedIndex=i; if(L<2) liste(f,L+1,2); break; } } // Validation du formulaire function test(f) { if(f.nom.value!="") if(f.adresse.value!="") if(f.elements["list2"].options.length!=0) return true; alert("Formulaire incomplet !"); return false; } </SCRIPT> <STYLE TYPE="text/css"> td,select,input { font:normal 8pt Verdana } .select1 {width:170px} .select2 {width:80px} </STYLE> </HEAD><BODY onload="update(0)"> <strong><?=htmlentities(@$adresse["civ"]." ".ucfirst(@$adresse["prenom"]) ." ".strtoupper(@$adresse["nom"]))?></strong><br/> <?=htmlentities(@$adresse["adresse"])?><br/> <?if(@$adresse["adresse2"]) echo htmlentities($adresse["adresse2"])."<br/>"?> <strong><?=$adresse["Codepos"]." ".@$adresse["Commune"]?></strong><br/> <br/> <table><tr><td><fieldset> <legend>Vos coordonnées&nbsp;</legend> <table><form name="form_selects" id="form_selects" method="POST" onsubmit="return test(this)";> <tr> <td align="right">Civilité&nbsp;:</td> <td><select name="civ"> <?$civ = array("M."=>"Monsieur","Mme"=>"Madame","Mlle"=>"Mademoiselle"); foreach($civ as $c1=>$c2) { ?> <option value="<?=$c1?>" <?if($c1==@$adresse["civ"]) echo "SELECTED"?> ><?=$c2?></option> <? } ?> </select></td> </tr><tr> <td align="right">Nom&nbsp;<font color=red>*</font></td> <td colspan=3><table border=0 cellspacing=0 cellpadding=0><tr> <td><input name="nom" size=21 value="<?=htmlentities(@$adresse["nom"])?>"/></td> <td align="right">&nbsp;Prénom&nbsp;:&nbsp;</td> <td><input name="prenom" size=21 value="<?=htmlentities(@$adresse["prenom"])?>"/></td> </tr></table></td> </tr><tr> <td align="right">Adresse&nbsp;<font color=red>*</font></td> <td colspan=3><input name="adresse" size=55 value="<?=htmlentities(@$adresse["adresse"])?>"/></td> </tr><tr> <td align="right">Complément&nbsp;:</td> <td colspan=3><input name="adresse2" size=55 value="<?=htmlentities(@$adresse["adresse2"])?>"/></td> </tr><tr> <td align="right">Département&nbsp;:</td> <td><select class="select1" name="list0" id="list0" onchange="liste(this.form,1,2)"> <option value="">== Choisir ==</option> <?=$liste_dpt?> </select></td> <td>Code Postal&nbsp;:</td> <td><select class="select2" name="list1" id="list1" onchange="liste(this.form,2,2)"> </select></td> </tr><tr> <td align="right">Commune&nbsp;<font color=red>*</font></td> <td><select class="select1" name="list2" id="list2"> </select></td> </tr><tr> <td colspan=4 align="center"><input type="submit" value="Envoyer"/></td> </tr> </form></table> </fieldset></td></tr></table> </BODY></HTML>

par Truc » 06 févr. 2006, 16:46

Salut, peut tu être plus précis sur
ca ne fonctionne pas.
Pire le code apparait dans mon formulaire quand je lance ma page: :(
Est-ce que la page est as une extension .php ?

Php 5 et script en php inférieur

par energie13 » 06 févr. 2006, 16:37

Bonjour,
Je me penche sur ajax et j'utilise la derniere version de wamp (php5)
Je trouve un super tuto :
http://www.asp-php.net/scripts/asp-php/ajax.php?page=3

voici le résultat :
http://213.186.37.71/~demos/adresse/test.php

Le problème c'est que lorsque je le suis à la lettre en effectuant une bête copie des tables et du script ca ne fonctionne pas. Pire le code apparait dans mon formulaire quand je lance ma page: :(

Code : Tout sélectionner

@$_POST["civ"], "nom"=>@$_POST["nom"], "prenom"=>@$_POST["prenom"], "adresse"=>@$_POST["adresse"], "adresse2"=>@$_POST["adresse2"], "Departement"=>@$_POST["list0"], "Codepos"=>@$_POST["list1"], "INSEE"=>@$_POST["list2"], ); include("ville.php"); ?> "?>
Je ne comprends vraiment pas Si quelqu'un peut me donner une explication.

Merci par avance