Le PHP transfert de donnees

yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   -  
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, je viens encore vous embêter pour quelque chose que j'imagine est évident mais on apprend en faisant des erreurs. Donc je vous explique mon problème. Sur ma page test4.php j'ai crée une fonction pour insérer des données récupéré par le formulaire sur la page test3.php. mais lorsque je charge la page après l'envoi des informations que contient le formulaire la page et vide et lorsque je fait code source rien est affiché sur test4.php j'espère que c clair... je fait de mon mieux :D donc j'ai revérifier plusieurs fois mon code car lorsque sa m'arrive c lorsque j'ai fait une erreur dans le script, mais j'ai mis en commentaires tout mon script php et rien y fait la page s'affiche vide et le code source aussi :S. donc je vous met mon code de ma page (test4.php)

test4.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<!--Head-->
<head>
<title>test4</title>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<?php
$donnees = array("");

function insertion()
{
$infos = $_POST['insert'];

	if isset($infos)
	{
		$donnees[] = $infos;
		foreach($donnees as $don)
		{
			print($don.'<br />');
		}
		
	}
	else
	{
		print('erreur: transfert de données dans la table a échoué');
		
	}
}

?>

<p><b>La Table:</b> 
<?php 

insertion();  

?></p>
</body>
</html>


Merci d'avance et désoler de prendre un peu de votre temps pour corriger mes erreurs :S
Yann
A voir également:

7 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Ca ne fonctionne pas parce que tu fais un isset() sur $infos et comme cette variable existe et ça n'affiche rien parce que $infos est vide !

Fait plutôt un !empty (Renvoie true si c'est vide donc n'oublie pas le ! avant).
<?php
$donnees = array("");

function insertion()
{
$infos = $_POST['insert'];

	if !empty($infos)
	{
		$donnees[] = $infos;
		foreach($donnees as $don)
		{
			print($don.'<br />');
		}
		
	}
	else
	{
		print('erreur: transfert de données dans la table a échoué');
		
	}
}

?>


Ensuite si $infos est vide c'est que tu as sans doute oublier d'ajouter enctype="multipart/form-data" dans la balise <form> :
<form action="cible_envoi.php" method="post" enctype="multipart/form-data">
0
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   100
 
A mon avis ce n'est pas le isset le problème, car elle test l'existence et la non nullité de la variable.
Le problème c'est le test est fait sur $infos alors qu'il devrait être fait plus haut directement sur $_POST['insert'];

<code>
if(isset($_POST['insert'])){
$donnees[] = $_POST['insert'];
foreach($donnees as $don
---
}
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Donc si $_POST['infos'] n'existe pas $infos est donc vide (mais existe).
Ca reviens au même résultat.
0
Dr Zoidberg Messages postés 529 Date d'inscription   Statut Membre Dernière intervention   100 > avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention  
 
Non car ton $infos = $_POST['insert']; va lever un notice pour une variable inexistante. Et ca évite une manip inutile.
0
yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   3
 
d'accord merci bcp pour vos réponses, je vais aller tester tout sa. Mais a quoi sert :
enctype="multipart/form-data"
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
À permettre l'envoie de fichier via un formulaire.
0
yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   3 > avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention  
 
merci bcp F16 je vois que t'aime les avions tu veut devenir pilote ou tu est pilote ?
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507 > yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention  
 
Je veux devenir pilote.
0
yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   3
 
d'ailleurs j'ai un peu bidouiller le code lol avant que vous postiez de réponse et j'ai utiliser la fonction
array_push();
mais sa ne marchai toujours pas :D
0

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

Posez votre question
yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   3
 
j'ai essayer mais je n'arrive pas inclure la valeur du champ dans mon array :S je crois que je vais essayer en utilisant $_POST['']; directement comme le propose DR ZoidBerg.
0
yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   3
 
Voila j'ai réussi en faisant comme ceci j'ai encore du mal a comprendre comment j'ai fait donc des explications sont les bienvenus :D:
<?php


function insertion()
{



	if (isset($_POST['insert']))
	{
		$donnees[] = $_POST['insert'];
		foreach($donnees as $don)
		{
			print($don.'<br />');
		} 
		return true;
		
	}
	else
	{
		print('erreur: transfert de données dans la table a échoué');

		
	}
}

?>

<p><b>La Table:</b> 
<?php 
	$donnees = array(insertion());	
?></p>

Maintenant reste plus qu'a essayer des différentes manières pour voir si je peut le faire aussi avec $infos.
0
yann1123 Messages postés 106 Date d'inscription   Statut Membre Dernière intervention   3
 
mais en fait sa marche mais sa n'enregistre pas dans la table les anciennes valeur du formulaire donc dès que je recommence j'ai une valeur différentes que celle précédente alors que je veut en fait garder les valeurs a l'intérieur de cette table. j'espère que vous me comprenez :-)
0