Besoin d'aide : PHP pas éxécuté

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 : Besoin d'aide : PHP pas éxécuté

par sebwest » 25 sept. 2008, 18:40

Merci pour votre aide!!
En effet calimero je pense avoir pris des mauvaises habitudes du langage C, j'ai toujours un raisonnement linéaire.
Et mon but avec ce code c'était de lui dire d'enlever tous les espaces de début ou de fin, afin que si un utilisateur qui remplis la case avec des tabulations ne soit pas assimilé comme une case rempli.
Donc calimero je vais suivre ton conseil, refaire les tutoriaux.
De plus si il y avait un moyen de pouvoir faire ce que je veux faire vous me conseillerez de faire quoi??? Pour répondre à @rthur mon programme est bien enregistré en PHP.
Encore merci pour votre aide
:D :D

par Calimero » 25 sept. 2008, 17:55

Salut,

effectivement, je pense que tu raisonnes comme dans un programme C sans avoir bien assimilé la spécificité de PHP, qui est un langage qui s'éxécute sur le serveur web (bien que le code soit situé au milieu du html) :-)

La seule ligne de PHP de ton code est celle-ci :
$_GET['titre'] = trim ($_GET['titre']); 
Elle ne produira rien pour deux raisons : les variables du tableau $_GET sont des superglobales que PHP remplit donc tout seul et il n'est pas judicieux d'écrire dedans (on se contente de les lire). D'autre part, cette ligne ne produit aucune action : il ne suffit pas d'écrire dans une variable PHP pour obtenir un effet :-) Il faut soit utiliser les fonctions/objets PHP qui manipulent des sources de données tierces (fichiers, bases de données), soit se greffer dans le code HTML pour produire un affichage qui reflète ce que tu veux faire (par exemple, afficher les variables du formulaire quand celui-ci a été soumis).

Je te conseille de faire les tutoriaux (au moins les premiers) de PHPdébutant pour assimiler ces bases.

par @rthur » 25 sept. 2008, 17:49

Bonjour,

Que cherches-tu à faire exactement?
 <?php
$_GET['titre'] = trim ($_GET['titre']);
 ?> 
Car là juste avec ce code tu ne fais rien de ta variable $_GET['titre'] ensuite donc je ne comprends pas l'intérêt.

par _activmik » 25 sept. 2008, 16:39

Salut,


Ta page est bien enregistrée sous cette forme : mapage.php et non mapage.html ?

Besoin d'aide : PHP pas éxécuté

par sebwest » 25 sept. 2008, 15:48

Bonjour, tout d'abord je tiens à saluer tout le monde sur ce forum étant nouveau c'est la moindre des choses. Donc je viens de me lancer depuis quelques semaines sur le PHP, je connais bien le langage C et je me demande si mon problème vient de là car peut être je dois avoir un mauvais raisonnement sur mon problème. Donc je voici mon code:
<html>
<head>
<script src="prototype.js" type="text/javascript"></script>
<script language="javascript">
	function verif()
	{
		var err= "";
		
		
		if(document.getElementById('idTitre').value=='')
		err = "- titre\n";
		
		if(document.getElementById('idAnnee').value=='')
		err = err+"- année\n";
		
		if(document.getElementById('idGenre').selectedIndex==-1)
		err = err+"- description\n";
		
		if(document.getElementById('idCoulOui').checked==false &&     document.getElementById('idCoulNon').checked==false)
		err = err+"- couleur\n";
		
		if(document.getElementById('idPays').selectedIndex==0)
		err = err+"- pays\n";
		
		if(document.getElementById('idStFr').checked==false && document.getElementById('idStGb').checked==false && document.getElementById('idStEs').checked==false)
		err = err+"- sous titre\n";
		
		if(err!="")
		{
		alert("Formulaire incomplet :\n"+err);
		}
		else if (confirm("Transmettre le formulaire ?"))
		{
		document.getElementById('monform').submit();
		}
	}
</script>
</head>
<body>

<form action="script.php" id="monform">

<label>Titre du film</label>
<input type="text" name="titre" id="idTitre"/><br/>

 <?php

$_GET['titre'] = trim ($_GET['titre']);

 ?>

<label>Année</label>
<input type="text" name="annee" id="idAnnee" maxlength="4"/><br/>

<label>Genre</label>
<select name="genre[]" multiple="yes" size="3" id="idGenre">
 <option value="policier">POLICIER</option>
 <option value="sf">SCIENCE FICTION</option>
 <option value="culte">CULTE</option> 
</select><br/>

<label>Description</label>
<textarea name="description" id="idDescript"></textarea><br/>

<label>Film en couleur</label>
<input type="radio" name="couleur" value="1" id="idCoulOui"/> oui -
<input type="radio" name="couleur" value="0" id="idCoulNon"/> non <br/><br/>

<label>Pays</label>
  <select name="pays" id="idPays">
  <option value=""></option>
  <option value="fr">FRANCE</option>
  <option value="us">USA</option>
  <option value="gb">ANGLETERRE</option> 
</select></br>

 <label>Sous titre</label>
 <input type="checkbox" name="soustitre[]" value="fr" id="idStFr"/> français -
 <input type="checkbox" name="soustitre[]" value="gb" id="idStGb"/> anglais -
 <input type="checkbox" name="soustitre[]" value="es" id="idStEs"/> espagnol - 
 <br/>
 <br/>
<input type="button" value="valider" onClick="verif()"/>
</form>
</body>
</html>
Ainsi mon problème ce situe au niveau de mon code PHP. En effet je voudrais pouvoir grâce à la fonction trim() effacer les espaces, ou les tabulations pour que mon code javascript puisse détecter si l'utilisateur n'a rien écrit. Mais lorsque j'exécute le programme il tient pas compte de cette partie.
Merci de votre aide :D :D