Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2008, 14h21   #1
Membre régulier
 
Inscription : mars 2008
Messages : 257
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mars 2008
Messages : 257
Points : 76
Points : 76
Par défaut [PHP-JS] Formulaire PHP avec redirection en JavaScript

Bonjour a tous, je suis entrain de faire un formulaire d'inscription et j'aurai voulu que l'utilisateur soit renvoyé a une page differente selon si l'inscription est bonne ou non.

Je ne peux pas mettre de header("Location: ...") parc'que j'affiche un message different selon le resultat de l'opération et j'aimerai qu'il soit apres l'affichage du message redirigée au bout de 3 secondes vers une autre page... (j'pense pas qu'on puisse mettre ce genre de configuration dans un header )

Habituelment j'utlise un script JavaScript pour faire une redirection de page, mais a s'que j'ai constatée on ne peut pas mettre directement du JavaScript dans du PHP...


J'vous montre mon code php et comment j'ai théoriquement vu la chose, mais ca ne fonctionne pas, si vous avez une sugestion pour rendre cela possible, je suis preneur!!!


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
 
<?php
 
session_start();
 
 
$serveur ="localhost";
$login = "root";
$mot_passe = "";
$base = "artkateo";
 
 
$connexion = mysql_pconnect($serveur, $login, $mot_passe) or die ("impossible de se connecter a MySQL : ".mysql_error());
 
$mabase = mysql_select_db($base) or die ("impossible de ce connecter ma table : ".mysql_error());
 
switch($_POST['action'])
 
	{
		case "ajout_membre" :
 
		if(isset($_POST['pseudo']) or ($_POST['motdepasse']))
 
			{  
 
 
		$requete = "INSERT INTO utilisateur (login, pass) VALUES
		('".$_POST['login']."','".$_POST['motdepasse']."')";
 
		$resultat = mysql_query($requete) or die(mysql_error());
 
		if($resultat == TRUE)
 
		{
 
		echo "L'inscription a bien été transmise";
 
					<SCRIPT LANGUAGE="JavaScript">
 
			function redirect() {
				window.location="corine.php"
			}
			setTimeout("redirect()",3000);
			</SCRIPT>
 
 
		}
			}
 
		else
 
		{
 
		echo "Vous n'avez pas rentré tout les champs obligatoire.";
 
 
 
					<SCRIPT LANGUAGE="JavaScript">
 
            function redirect() {
                window.location="n_membre.php"
            }
            setTimeout("redirect()",3000);
            </SCRIPT>
 
 
 
		}
 
		break;
 
	}
 
		mysql_close();
 
?>


Merci d'avance!!!
DjChat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 17h55   #2
Membre habitué
 
Homme
Développeur Web
Inscription : mars 2007
Messages : 117
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Service public

Informations forums :
Inscription : mars 2007
Messages : 117
Points : 116
Points : 116
bonjour,

il faut que tu mette tes script javascript dans des echo, pour etre prit en compte par php.

Yasen77
yasen77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 20h27   #3
Membre régulier
 
Inscription : mars 2008
Messages : 257
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mars 2008
Messages : 257
Points : 76
Points : 76
J'pense que j'ai du mal comprendre ta reponse, parc'que sa ne fonctionne pas, j'te montre comment j'ai fait...



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
 
switch($_POST['action'])
 
	{
		case "ajout_membre" :
 
		if(isset($_POST['pseudo']) or ($_POST['motdepasse']))
 
			{  
 
 
		$requete = "INSERT INTO utilisateur (login, pass) VALUES
		('".$_POST['login']."','".$_POST['motdepasse']."')";
 
		$resultat = mysql_query($requete) or die(mysql_error());
 
		if($resultat == TRUE)
 
		{
 
		echo "L'inscription a bien été transmise";
 
		 echo <SCRIPT LANGUAGE="JavaScript">
								function redirect() {
					window.location="corine.php"
				}
				setTimeout("redirect()",3000); 		  </SCRIPT>
 
 
 
		}
			}
 
		else
 
		{
 
		echo "Vous n'avez pas rentré tout les champs obligatoire.";
 
        	echo <SCRIPT LANGUAGE="JavaScript">
								function redirect() {
					window.location="n_membre.php"
				}
				setTimeout("redirect()",3000); 		  </SCRIPT>
 
 
 
		}
 
		break;
DjChat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 12h17   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
A priori il te manque des quotes pour que ça fonctionne :
Code :
1
2
3
4
5
echo '<SCRIPT LANGUAGE="JavaScript">
								function redirect() {
					window.location="corine.php"
				}
				setTimeout("redirect()",3000); 		  </SCRIPT>'
Sinon tu peux tout simplement fermer les balises <?php pour placer ton code JS
Mettre du Javascript dans du code PHP
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 14h00   #5
Membre régulier
 
Inscription : mars 2008
Messages : 257
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mars 2008
Messages : 257
Points : 76
Points : 76
Merci pour ta reponse, j'avais fait une recherche dans les tutoriels, mais j'ai du mal m'orienter...

Par contre je peux pas fermer mes balises php vu que je veux mettre mon Javascript dans une condition if...

D'ailleur maintnant ca a l'air de fonctionner mais il me dit qu'il y a une erreur a cause des crochets ferments de mon if et de mon else, je les ai enlevé et forcement sa ne fonctionne plus, avez vous une idée du probleme des crochets?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
switch($_POST['action'])
 
	{
		case "ajout_membre" :
 
		if(isset($_POST['pseudo']) or ($_POST['motdepasse']))
 
			{  
 
 
		$requete = "INSERT INTO utilisateur (login, pass) VALUES
		('".$_POST['login']."','".$_POST['motdepasse']."')";
 
		$resultat = mysql_query($requete) or die(mysql_error());
 
		if($resultat == TRUE)
 
		{
 
		echo "L'inscription a bien été transmise";
 
		echo '<SCRIPT LANGUAGE="JavaScript">
								function redirect() {
					window.location="corine.php"
				}
				setTimeout("redirect()",3000); 		  </SCRIPT>'
 
 
 
 
 
		}
			}
 
		else
 
		{
 
		echo "Vous n'avez pas rentré tout les champs obligatoire.";
 
        echo '<SCRIPT LANGUAGE="JavaScript">
								function redirect() {
					window.location="n_membre.php"
				}
				setTimeout("redirect()",3000); 		  </SCRIPT>'
 
 
 
		}
 
		break;
DjChat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 14h46   #6
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Il te manque un point virgule à la fin de ton dernier echo.

Et tu peux fermer puis rouvrir tes balises <?php sans problème :
Code :
1
2
3
4
5
6
7
8
if (condition) 
{
?>
<script>
....
</script>
<?php
}
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 16h06   #7
Membre régulier
 
Inscription : mars 2008
Messages : 257
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mars 2008
Messages : 257
Points : 76
Points : 76
Effectivement sa fonctionne mieux avec des points virgules...

J'pensait pas que la syntaxe des fermeture de php dans une condition pouvais fonctionner!!!


Merci pour tes précieux conseils!!!
DjChat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h53.


 
 
 
 
Partenaires

Hébergement Web