[RESOLU] chaine de caractère défini dans une variable

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] chaine de caractère défini dans une variable

Re: chaine de caractère défini dans une variable

par Ploppys » 19 mars 2013, 15:05

merci je l'avais pas pensé comme ça

mais je débute hein :wink:

Re: chaine de caractère défini dans une variable

par xTG » 19 mars 2013, 14:29

Pourquoi répéter x fois le même traitement ?
if (isset ($_POST['nom']) AND ($_POST['dispo']) AND ($_POST['retour']) AND ($_POST['commentaire'])) //récupération des données
{
  $c_nom_fichier = array(
    'Pierre' => 'data1.txt',
    'Pascal' => 'data2.txt',
    'Paul' => 'data3.txt',
    'Jacques' => 'data4.txt',
    'Fred' => 'data5.txt'
  );

  // on vérifie que la personne existe
  if( array_key_exists($_POST['nom'], $c_nom_fichier) === true ){

    //on place le contenu dans une variable
    $contenu = '';
    $contenu .= $_POST['nom']."\r\n";
    $contenu .= $_POST['dispo']."\r\n";
    $contenu .= $_POST['retour']."\r\n";
    $contenu .= $_POST['commentaire'];
    //on ouvre le fichier et on écrit dedans
    $donnees = fopen($c_nom_fichier[$_POST['nom']], "w+");
    fwrite($donnees, $contenu);
    fclose($donnees);
  }else{
    echo 'Erreur : ce nom ne possède aucun fichier attribué.';
  }
}

Re: chaine de caractère défini dans une variable

par Ploppys » 19 mars 2013, 12:26

en fait je me cassais la tête, il fallait faire un switch

mais bon ça marche quand même pas
mon code ne doit pas être bon
<?php
if (isset ($_POST['nom']) AND ($_POST['dispo']) AND ($_POST['retour']) AND ($_POST['commentaire'])) //récupération des données
{
		$nom = $_POST['nom'];
	switch ($nom)
	 {
	case "Pierre":
		//on place le contenu dans une variable
		$contenu = '';
		$contenu .= $_POST['nom']."\r\n";
		$contenu .= $_POST['dispo']."\r\n";
		$contenu .= $_POST['retour']."\r\n";
		$contenu .= $_POST['commentaire'];
		//on ouvre le fichier et on écrit dedans
		$donnees = fopen("data1.txt", "w+");
		fwrite($donnees, $contenu);
		fclose($donnees);
	break;

	
	case "Pascal":
			//on place le contenu dans une variable
			$contenu = '';
			$contenu .= $_POST['nom']."\r\n";
			$contenu .= $_POST['dispo']."\r\n";
			$contenu .= $_POST['retour']."\r\n";
			$contenu .= $_POST['commentaire'];
			//on ouvre le fichier et on écrit dedans
			$donnees = fopen("data2.txt", "w+");
			fwrite($donnees, $contenu);
			fclose($donnees);
	break;
				
	
	case "Paul":
				//on place le contenu dans une variable
				$contenu = '';
				$contenu .= $_POST['nom']."\r\n";
				$contenu .= $_POST['dispo']."\r\n";
				$contenu .= $_POST['retour']."\r\n";
				$contenu .= $_POST['commentaire'];
				//on ouvre le fichier et on écrit dedans
				$donnees = fopen("data3.txt", "w+");
				fwrite($donnees, $contenu);
				fclose($donnees);
	break;
	
		
	case "Jacques":
				//on place le contenu dans une variable
			$contenu = '';
			$contenu .= $_POST['nom']."\r\n";
			$contenu .= $_POST['dispo']."\r\n";
			$contenu .= $_POST['retour']."\r\n";
			$contenu .= $_POST['commentaire'];
			//on ouvre le fichier et on écrit dedans
			$donnees = fopen("data4.txt", "w+");
			fwrite($donnees, $contenu);
			fclose($donnees);
	break;
		
	case "Fred":
			//on place le contenu dans une variable
			$contenu = '';
			$contenu .= $_POST['nom']."\r\n";
			$contenu .= $_POST['dispo']."\r\n";
			$contenu .= $_POST['retour']."\r\n";
			$contenu .= $_POST['commentaire'];
			//on ouvre le fichier et on écrit dedans
			$donnees = fopen("data5.txt", "w+");
			fwrite($donnees, $contenu);
			fclose($donnees);
	break;
	}
	
}


?>
Si quelqu'un peut m'éclairer??

Re: chaine de caractère défini dans une variable

par Ploppys » 19 mars 2013, 11:45

ok merci ça marche comme ça mais je m'oppose à un autre problème du coup

je pose donc une condition avec le if si la condition répond ça fait l'action jusque là je suis bon
viens ensuite le elseif où j'ai des soucis et ça marche pas
par contre si je met un simple else ça marche mais je sais pas mettre d'autre commande...comme mon discours ne semble pas clair, voici mon code
<?php
if (isset ($_POST['nom']) AND ($_POST['dispo']) AND ($_POST['retour']) AND ($_POST['commentaire'])) //récupération des données
{
	

		$nom = $_POST['nom'];
		$verif = strpos($nom, 'Pierre');   //on vérifie que le contenu de la variable contient ce qu'on veut

		if( $verif !== false)
		{
		//on place le contenu dans une variable
		$contenu = '';
		$contenu .= $_POST['nom']."\r\n";
		$contenu .= $_POST['dispo']."\r\n";
		$contenu .= $_POST['retour']."\r\n";
		$contenu .= $_POST['commentaire'];
		//on ouvre le fichier et on écrit dedans
		$donnees = fopen("data1.txt", "w+");
		fwrite($donnees, $contenu);
		fclose($donnees);
		}

		
		else if ($verif1= strpos($nom, 'Pascal')!== false)
		{
			//on place le contenu dans une variable
			$contenu = '';
			$contenu .= $_POST['nom']."\r\n";
			$contenu .= $_POST['dispo']."\r\n";
			$contenu .= $_POST['retour']."\r\n";
			$contenu .= $_POST['commentaire'];
			//on ouvre le fichier et on écrit dedans
			$donnees = fopen("data2.txt", "w+");
			fwrite($donnees, $contenu);
			fclose($donnees);
		}
}
?>

	

Re: chaine de caractère défini dans une variable

par xTG » 18 mars 2013, 18:54

Retourne la position numérique de l'occurrence relativement au début de la chaîne haystack (indépendamment de l'offset). Notez également que la position dans la chaîne commence à 0, et non pas à 1.

Retourne FALSE si l'occurrence n'a pas été trouvée.
if( $verif !== false){
  echo "l'occurence a été trouvée à la position $verif";
}

Re: chaine de caractère défini dans une variable

par Ploppys » 18 mars 2013, 15:55

$verif affiche 0

en sachant cela, si je fais
if ($verif == 0)

ça devrait marcher, hors c'est pas le cas

tout comme si je mets True comme tu l'as suggérer
En faisant ça, il écrit automatiquement dans le fichier sans prendre compte le nom qui est différent

Re: chaine de caractère défini dans une variable

par BGMaxime » 18 mars 2013, 15:37

Hello,

...
$verif = strpos($nom, 'Pierre');

if ($verif =='')
...

$verif doit contenir une valeur booléenne, et non pas une valeur alpha comme ''.
(voir http://www.php.net/strpos)

ton test devrait être if($verif == true)
ou false, comme tu veux, mais pas ''.


affiche toi la valeur de $verif pour voir ce qu'elle contient.

A+

chaine de caractère défini dans une variable

par Ploppys » 18 mars 2013, 13:53

Bonjour,

Je voudrais arriver à écrire dans un fichier txt différent en fonction du contenu d'une variable $_POST qui est défini dans le formulaire par une liste déroulante

mon idée était la suivante:
<?php
if (isset ($_POST['nom']) AND ($_POST['dispo']) AND ($_POST['retour']) AND ($_POST['commentaire'])) //récupération des données
{
	$nom = $_POST['nom'];
	$verif = strpos($nom, 'Pierre');  

	if ($verif =='')
	{
	//on place le contenu dans une variable
	$contenu = '';
	$contenu .= $_POST['nom']."\r\n";
	$contenu .= $_POST['dispo']."\r\n";
	$contenu .= $_POST['retour']."\r\n";
	$contenu .= $_POST['commentaire'];
	//on ouvre le fichier et on écrit dedans
	$donnees = fopen("data1.txt", "w+");
	fwrite($donnees, $contenu);
	fclose($donnees);
	}
	else
	{
		echo "Faux";
	}
}
?>
mais ça marche pas car peu importe le nom sélectionner ça écrit dans le fichier ou alors je m'y prends mal

merci d'avance pour vos réponses